public override BoundNode VisitBaseReference(BoundBaseReference node)
        {
            // TODO: fix up the type of the resulting node to be the base type
            CapturedSymbolReplacement proxy = proxies[this.originalMethod.ThisParameter];

            Debug.Assert(proxy != null);
            return(proxy.Replacement(F.Syntax, frameType => F.This()));
        }
Exemplo n.º 2
0
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     if (_inExpressionLambda)
     {
         Error(ErrorCode.ERR_ExpressionTreeContainsBaseAccess, node);
     }
     CheckReferenceToThisOrBase(node);
     return(base.VisitBaseReference(node));
 }
        public override BoundNode VisitBaseReference(BoundBaseReference node)
        {
            if (inExpressionLambda)
            {
                Error(ErrorCode.ERR_ExpressionTreeContainsBaseAccess, node);
            }

            return base.VisitBaseReference(node);
        }
Exemplo n.º 4
0
        public override BoundNode VisitBaseReference(BoundBaseReference node)
        {
            // TODO: fix up the type of the resulting node to be the base type

            // if "this" is cached, return it.
            if ((object)this.cachedThis != null)
            {
                return(F.Local(this.cachedThis));
            }

            CapturedSymbolReplacement proxy = proxies[this.OriginalMethod.ThisParameter];

            Debug.Assert(proxy != null);
            return(proxy.Replacement(F.Syntax, frameType => F.This()));
        }
 private BoundExpression VisitBaseReference(BoundBaseReference node)
 {
     // should have been reported earlier.
     // Diagnostics.Add(ErrorCode.ERR_ExpressionTreeContainsBaseAccess, node.Syntax.Location);
     return new BoundBadExpression(node.Syntax, 0, ImmutableArray<Symbol>.Empty, ImmutableArray.Create<BoundNode>(node), ExpressionType);
 }
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     Capture(this.topLevelMethod.ThisParameter, node.Syntax);
     return(base.VisitBaseReference(node));
 }
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     variablesCaptured.Add(topLevelMethod.ThisParameter, node.Syntax);
     return(base.VisitBaseReference(node));
 }
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     Capture(_topLevelMethod.ThisParameter, node.Syntax);
     return base.VisitBaseReference(node);
 }
Exemplo n.º 9
0
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     ReferenceVariable(node.Syntax, _topLevelMethod.ThisParameter);
     return(base.VisitBaseReference(node));
 }
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     // TODO: fix up the type of the resulting node to be the base type
     CapturedSymbolReplacement proxy = proxies[this.originalMethod.ThisParameter];
     Debug.Assert(proxy != null);
     return proxy.Replacement(F.Syntax, frameType => F.This());
 }
Exemplo n.º 11
0
 private BoundExpression VisitBaseReference(BoundBaseReference node)
 {
     // should have been reported earlier.
     // Diagnostics.Add(ErrorCode.ERR_ExpressionTreeContainsBaseAccess, node.Syntax.Location);
     return(new BoundBadExpression(node.Syntax, 0, ImmutableArray <Symbol> .Empty, ImmutableArray.Create <BoundExpression>(node), ExpressionType));
 }
Exemplo n.º 12
0
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     ReferenceVariable(node.Syntax, _topLevelMethod.ThisParameter);
     return base.VisitBaseReference(node);
 }
Exemplo n.º 13
0
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     AddIfCaptured(_analysis._topLevelMethod.ThisParameter);
     return(base.VisitBaseReference(node));
 }
        public override BoundNode VisitBaseReference(BoundBaseReference node)
        {
            // TODO: fix up the type of the resulting node to be the base type

            // if "this" is cached, return it.
            if ((object)this.cachedThis != null)
            {
                return F.Local(this.cachedThis);
            }

            CapturedSymbolReplacement proxy = proxies[this.OriginalMethod.ThisParameter];
            Debug.Assert(proxy != null);
            return proxy.Replacement(F.Syntax, frameType => F.This());
        }
Exemplo n.º 15
0
 public override BoundNode VisitBaseReference(BoundBaseReference node)
 {
     return((currentMethod.ContainingType == topLevelMethod.ContainingType)
         ? node
         : FramePointer(node.Syntax, topLevelMethod.ContainingType)); // technically, not the correct static type
 }