public override bool Walk(FunctionExpression node) {
            if (WalkFunction(node.Function, true)) {
                node.Function.Body.Walk(this);

                EnvironmentRecord funcScope;
                VariableDef funcVarDef;
                if (node.Function.Name != null &&
                    _scope.GlobalEnvironment.TryGetNodeEnvironment(node.Function, out funcScope) &&
                    !funcScope.TryGetVariable(node.Function.Name, out funcVarDef)) {
                    // the function variable gets added if it's not
                    // already declared.
                    var funcDef = funcScope.AddLocatedVariable(
                        node.Function.Name,
                        node.Function,
                        _curUnit
                    );
                    funcDef.AddTypes(
                        _curUnit,
                        ((FunctionEnvironmentRecord)funcScope).Function.Proxy
                    );
                }
                PostWalk(node.Function);
            }
           return false;
        }
Ejemplo n.º 2
0
 public override bool Walk(FunctionExpression functionExpression)
 {
     return(true);
 }
Ejemplo n.º 3
0
 public override bool Walk(FunctionExpression functionExpression) { AddNode(functionExpression); return true; }
 public override bool Walk(FunctionExpression functionExpression)
 {
     return true;
 }