Beispiel #1
0
 internal override BoundExpression Replacement(CSharpSyntaxNode node, FramePointerMaker makeFrame)
 {
     // By returning the same replacement each time, it is possible we
     // are constructing a DAG instead of a tree for the translation.
     // Because the bound trees are immutable that is usually harmless.
     return(replacement);
 }
Beispiel #2
0
        internal override BoundExpression Replacement(CSharpSyntaxNode node, FramePointerMaker makeFrame)
        {
            var frame = makeFrame(this.field.ContainingType);
            var field = this.field.AsMember((NamedTypeSymbol)frame.Type);

            return(new BoundFieldAccess(node, frame, field, default(ConstantValue)));
        }
Beispiel #3
0
 internal override BoundExpression Replacement(CSharpSyntaxNode node, FramePointerMaker makeFrame)
 {
     // By returning the same replacement each time, it is possible we
     // are constructing a DAG instead of a tree for the translation.
     // Because the bound trees are immutable that is usually harmless.
     return replacement;
 }
Beispiel #4
0
 /// <summary>
 /// Rewrite the replacement expression for the hoisted local so all synthesized field are accessed as members
 /// of the appropriate frame.
 /// </summary>
 internal abstract BoundExpression Replacement(CSharpSyntaxNode node, FramePointerMaker makeFrame);
Beispiel #5
0
 internal override BoundExpression Replacement(CSharpSyntaxNode node, FramePointerMaker makeFrame)
 {
     var frame = makeFrame(this.field.ContainingType);
     var field = this.field.AsMember((NamedTypeSymbol)frame.Type);
     return new BoundFieldAccess(node, frame, field, default(ConstantValue));
 }
Beispiel #6
0
 /// <summary>
 /// Rewrite the replacement expression for the hoisted local so all synthesized field are accessed as members
 /// of the appropriate frame.
 /// </summary>
 internal abstract BoundExpression Replacement(CSharpSyntaxNode node, FramePointerMaker makeFrame);