Exemple #1
0
            public override void VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatementSyntax node)
            {
                if (!node.Name.IsMissing && !string.IsNullOrWhiteSpace(node.Name.Name))
                {
                    var variable = Scope.CreateVariable(VariableKind.Local, node.Name.Name, node);
                    _variables.Add(node.Name, variable);
                    variable.AddWriteLocation(node);
                    variable.AddReferencingScope(Scope);
                    Scope.AddReferencedVariable(variable);
                }

                var scope = CreateFunctionScope(node);

                try
                {
                    foreach (var parameter in node.Parameters.Parameters)
                    {
                        _variables.Add(parameter, CreateParameter(scope, parameter));
                    }
                    Visit(node.Body);
                }
                finally
                {
                    PopScope(scope);
                }
            }
Exemple #2
0
            public override void VisitLocalFunctionDeclarationStatement(LocalFunctionDeclarationStatementSyntax node)
            {
                var variable = Scope.CreateVariable(VariableKind.Local, node.Name.Name, node);

                _variables[node.Name] = variable;
                variable.AddWriteLocation(node);
                variable.AddReferencingScope(Scope);
                Scope.AddReferencedVariable(variable);

                var scope = CreateFunctionScope(node);

                try
                {
                    foreach (var parameter in node.Parameters.Parameters)
                    {
                        CreateParameter(scope, parameter);
                    }
                    Visit(node.Body);
                }
                finally
                {
                    PopScope(scope);
                }
            }