private static void FixMissingType(SyntaxNode node, Scope scope) { var type = node .Ancestors() .OfType <TypeDeclarationSyntax>() .FirstOrDefault(); if (type != null) { var typeScope = scope.GetScope <SyntaxToken, SyntaxNode, SemanticModel>(type); if (typeScope != null) { SyntaxNode realType = typeScope.get <SyntaxNode>("__tdef" + node.ToString()); if (realType != null) { realType = RoslynCompiler.Mark(realType); //make sure not to duplicate nodes var document = scope.GetDocument <SyntaxToken, SyntaxNode, SemanticModel>(); document.change(node, RoslynCompiler.ReplaceNode(realType)); } } } }