Index: tests/BooCompiler.Tests/ClrExtensionsIntegrationTestFixture.cs =================================================================== --- tests/BooCompiler.Tests/ClrExtensionsIntegrationTestFixture.cs (Revision 3072) +++ tests/BooCompiler.Tests/ClrExtensionsIntegrationTestFixture.cs (Arbeitskopie) @@ -16,8 +16,13 @@ public void clrextensions_2() { RunCompilerTestCase(@"clrextensions-2.boo"); - } - + } + + [Test] + public void clrextensions_3() + { + RunCompilerTestCase( @"clrextensions-3.boo" ); + } override protected string GetRelativeTestCasesPath() { Index: tests/testcases/integration/clrextensions/clrextensions-3.boo =================================================================== --- tests/testcases/integration/clrextensions/clrextensions-3.boo (Revision 0) +++ tests/testcases/integration/clrextensions/clrextensions-3.boo (Revision 0) @@ -0,0 +1,33 @@ +""" +string +""" +import System +import Boo.Lang.Compiler.MetaProgramming + +extensionAttribute = Type.GetType("System.Runtime.CompilerServices.ExtensionAttribute, System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") +if extensionAttribute is null: + print "string" + return + +extensionAssembly = extensionAttribute.Assembly + +library = [| + namespace ClrExtensions + + class Bar: + def Foo(o as object): + print 'object' +|] + +code = [| + import ClrExtensions + + [System.Runtime.CompilerServices.ExtensionAttribute] + def Foo(bar as Bar,s as string): + print 'string' + + b = Bar(); + b.Foo('test') +|] +compile(code, compile(library, extensionAssembly), extensionAssembly).EntryPoint.Invoke(null, (null,)) +