public void ScriptNamespaceRetrievedOnConstructorArgumentType() { var tree = CSharpSyntaxTree.ParseText(@" namespace Namespace1 { [ScriptNamespace(""OverridenNamespace"")] public class Class1 { } public class Class2 { public Class2(Class1 parameter) { } } } "); // Loading MSCoreLib var semanticModel = (CSharpCompilation.Create("TestAssembly") .AddReferences( MetadataReference.CreateFromFile( typeof(object).Assembly.Location)) .AddSyntaxTrees(tree).AddScriptNamespaceReference().GetSemanticModel(tree)); var node = new NodeLocator(tree).LocateFirst(typeof(ConstructorDeclarationSyntax)); Assert.IsNotNull(node); var ctorDeclarationNode = node as ConstructorDeclarationSyntax; Assert.IsNotNull(ctorDeclarationNode); var parameters = new ConstructorDeclaration(ctorDeclarationNode, semanticModel).Parameters; Assert.AreEqual(1, parameters.Count(), "1 argument expected"); var typeReference = parameters.ElementAt(0).Type; Assert.AreEqual("OverridenNamespace.Class1", typeReference.FullName, "ScriptNamespace overriden namespace not detected!"); }