Пример #1
0
        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));
                    }
                }
            }
        }