public void TestWhetherANodeIsPartOfATreeOrASemanticModel()
{
var source = @"
using System;
class C
{
}
class Program
{
public static void Main()
{
var c = new C(); Console.WriteLine(c.ToString());
}
}";
var tree = SyntaxTree.ParseText(source);
var other = SyntaxTree.ParseText(source);
var compilation = Compilation.Create("MyCompilation")
.AddReferences(MetadataReference.CreateAssemblyReference("mscorlib"))
.AddSyntaxTrees(tree);
var model = compilation.GetSemanticModel(tree);
SyntaxNode nodeFromTree = tree.GetRoot();
SyntaxToken tokenNotFromTree = Syntax.Token(SyntaxKind.ClassKeyword);
SyntaxNode nodeNotFromTree = other.GetRoot();
Assert.IsTrue(nodeFromTree.SyntaxTree == tree);
Assert.IsTrue(nodeFromTree.SyntaxTree == model.SyntaxTree);
Assert.IsFalse(tokenNotFromTree.SyntaxTree == tree);
Assert.IsFalse(nodeNotFromTree.SyntaxTree == model.SyntaxTree);
Assert.IsTrue(nodeNotFromTree.SyntaxTree == other);
}