示例#1
0
 public void VisitExpression(IExpressionNode node)
 {
     if (ExpressionVisitor != null)
     {
         node.AcceptExpressionVisitor(ExpressionVisitor);
     }
 }
示例#2
0
 public IType GetExpressionType(IExpressionNode node)
 {
     if (!_expressionResultTypes.TryGetValue(node, out IType type))
     {
         TypeCheckVisitor visitor = new TypeCheckVisitor(_context, _typeManager, _errors, this);
         node.AcceptExpressionVisitor(visitor);
         type = visitor.Type;
         _expressionResultTypes[node] = type;
     }
     return(type);
 }
示例#3
0
 public void VisitExpression(IExpressionNode node)
 {
     node.AcceptExpressionVisitor(this);
 }
 private Scope?GetLifetime(IExpressionNode node)
 {
     _lifetimeResolver.Reset();
     node.AcceptExpressionVisitor(_lifetimeResolver);
     return(_lifetimeResolver.Lifetime);
 }