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 }; }
private BoundExpression InferTypeForDiscard(BoundDiscardExpression op1, BoundExpression op2, DiagnosticBag diagnostics) { if (op2.Type == null) { return op1.FailInference(this, diagnostics); } else { return op1.SetInferredType(op2.Type); } }