예제 #1
0
 private void CheckDiscard(BoundDiscardExpression argument)
 {
     if (_inExpressionLambda)
     {
         Error(ErrorCode.ERR_ExpressionTreeContainsDiscard, argument);
     }
 }
 internal BoundLocal MakeTempForDiscard(BoundDiscardExpression node, ArrayBuilder<LocalSymbol> temps)
 {
     LocalSymbol temp;
     BoundLocal result = MakeTempForDiscard(node, out temp);
     temps.Add(temp);
     return result;
 }
        internal BoundLocal MakeTempForDiscard(BoundDiscardExpression node, out LocalSymbol temp)
        {
            temp = new SynthesizedLocal(this.CurrentMethod, node.Type, SynthesizedLocalKind.LoweringTemp);

            return new BoundLocal(node.Syntax, temp, constantValueOpt: null, type: node.Type) { WasCompilerGenerated = true };
        }
예제 #4
0
 private BoundExpression InferTypeForDiscard(BoundDiscardExpression op1, BoundExpression op2, DiagnosticBag diagnostics)
 {
     if (op2.Type == null)
     {
         return op1.FailInference(this, diagnostics);
     }
     else
     {
         return op1.SetInferredType(op2.Type);
     }
 }