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 <[email protected]> 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: [email protected] > [mailto:[email protected]] 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" <[email protected]> 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 - [email protected] > http://lists.ximian.com/mailman/listinfo/mono-list _______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
