[Mono-list] Possible Bug

Abe Gillespie abe.gillespie at gmail.com
Tue Feb 16 10:27:08 EST 2010


I'll be happy to file a bug ... I just need more info.  In visual
studio you do *not* need a reference to System.Core to compile OK.  So
does csc.exe handle this differently from gmcs.exe or does visual
studio automatically add a System.Core reference on-the-fly when a
compile is fired off?

Essentially, what bug(s) / what product(s) should I file this against?

Thanks.
-Abe

On Sat, Feb 13, 2010 at 8:06 PM, Dino Viehland <dinov at microsoft.com> wrote:
> Rather than just looking for System.Core MonoDevelop should really look for
> the System.Runtime.CompilerServices.ExtensionAttribute in any of the
> referenced assemblies.  You can define this type in your own assembly and
> not reference System.Core and still use extension methods.  We do this in
> IronPython so we can run on .NET 2.0SP1 and above but compile w/ the 3.5
> compiler.
>
>
>
> From: mono-list-bounces at lists.ximian.com
> [mailto:mono-list-bounces at lists.ximian.com] On Behalf Of Michael Hutchinson
> Sent: Saturday, February 13, 2010 3:36 PM
> To: Abe Gillespie
> Cc: mono-list
> Subject: Re: [Mono-list] Possible Bug
>
>
>
> I guess MonoDevelop should not provide completion for extension methods when
> System.Core is not referenced. MD should also reference System.Core by
> default in new 3.5+ projects. Please file bugs. Arguably gmcs should give a
> better error message too, so please file a separate bug against gmcs for
> that.
>
> On Feb 13, 2010 11:37 AM, "Abe Gillespie" <abe.gillespie at gmail.com> wrote:
>
> Not sure if this is a bug or just some sugar that VS.NET does.  If you
> have extension methods in one assembly and then use those extension
> methods in another, if you do not reference System.Core then the
> compiler can't find those methods.  I think the big problem is it's
> hard to diagnose.  MonoDevelop will happily offer code-completion for
> those extension methods.  However, when you compile, it fails.
> Unfortunately the error info doesn't give you any sort of clue that
> it's a missing System.Core reference and *NOT* a missing method.
> VS.NET will happily offer code-completion *and* compile.  Example of
> an error message:
>
> Messenger.cs(34,34): Error CS1061: Type
> `Dimebrain.TweetSharp.Fluent.IFluentTwitter' does not contain a
> definition for `AuthenticateAs' and no extension method
> `AuthenticateAs' of type `Dimebrain.TweetSharp.Fluent.IFluentTwitter'
> could be found (are you missing a using directive or an assembly
> reference?) (CS1061) (Infrastructure)
>
> The last part - "are you missing a using directive [...]" - is
> misleading because that makes me think I need to add a reference to
> TweetSharp.  But what it really needs is the System.Core reference.
>
> Hope that's useful.
>
> Thanks!
> -Abe
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list


More information about the Mono-list mailing list