[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