[Mono-devel-list] Weird warnings using mcs svn on Windows
Marek Safar
marek.safar at seznam.cz
Tue Apr 19 04:05:49 EDT 2005
Hello,
> Hi,
>
> I made a fix for this problem; the type for Finalize() is not
> System.Object unless the type which is being added is System.Object.
Based on your patch I committed better fix.
Thanks,
Marek
>
> Atsushi Eno
>
> Raja R Harinath wrote:
>
>> Hi,
>>
>> "Gert Driesen" <gert.driesen at telenet.be> writes:
>>
>>
>>> As of recently, I get the following warning (numerous times) when
>>> using mcs
>>> svn to compile even the simplest app on Windows:
>>>
>>> warning CS8028: The method 'System.Object.Finalize()' is marked
>>> 'override',
>>> but
>>> doesn't appear to override any virtual or abstract method: it may be
>>> ignored
>>> dur
>>> ing overload resolution
>>> C:\cygwin\usr\local\lib\mono\1.0\mscorlib.dll: 'System.Object.Finalize'
>>> (name of
>>> symbol related to previous warning
>>>
>>> Any idea what might be causing this ?
>>
>>
>>
>> A method is marked with the 'Virtual' MethodAttribute, but doesn't have
>> 'NewSlot' is treated as an "override" function. The C# compiler tries
>> to find the underlying "virtual" function that it overrides. In some
>> cases, it's unable to do so. We can't get into this situation when
>> compiling C# code. So, this warning is typically issued when some dll
>> was generated by SRE or written in IL.
>>
>> However, it turns out that several compiler-generated functions are also
>> being marked this way. It's the case with a delegates .Invoke () on
>> NET 1.1 and mono.
>>
>> I suspect that CSC 1.1 also emits the .Finalize () function this way,
>> too. I'll try to fix this soon. However, I believe this warning is
>> harmless in this case, since Finalize cannot be invoked such that it
>> takes part in overload resolution.
>>
>> - Hari
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>>
>
>------------------------------------------------------------------------
>
>Index: decl.cs
>===================================================================
>--- decl.cs (revision 43229)
>+++ decl.cs (working copy)
>@@ -1438,8 +1438,7 @@
> //
> if ((member.Name != "Invoke" ||
> !type.IsSubclassOf (TypeManager.multicast_delegate_type)) &&
>- (member.Name != "Finalize" ||
>- type != TypeManager.object_type)) {
>+ member.Name != "Finalize") {
> Report.SymbolRelatedToPreviousError (base_method);
> Report.Warning (-28,
> "The method '{0}' is marked 'override'," +
>
>
More information about the Mono-devel-list
mailing list