projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #5636 from BrzVlad/fix-xmm-scan
[mono.git]
/
mcs
/
mcs
/
lambda.cs
diff --git
a/mcs/mcs/lambda.cs
b/mcs/mcs/lambda.cs
index 9c804ceca575e6730e194e54a8bce5735a24cb81..360c5c9463002d0d8e1956573bfcb688702589e4 100644
(file)
--- a/
mcs/mcs/lambda.cs
+++ b/
mcs/mcs/lambda.cs
@@
-188,6
+188,11
@@
namespace Mono.CSharp {
public override Expression CreateExpressionTree (ResolveContext ec)
{
public override Expression CreateExpressionTree (ResolveContext ec)
{
+ if (Expr is ReferenceExpression) {
+ ec.Report.Error (8155, Expr.Location, "Lambda expressions that return by reference cannot be converted to expression trees");
+ return null;
+ }
+
return Expr.CreateExpressionTree (ec);
}
return Expr.CreateExpressionTree (ec);
}
@@
-216,6
+221,12
@@
namespace Mono.CSharp {
if (Expr == null)
return false;
if (Expr == null)
return false;
+ if (Expr is ReferenceExpression) {
+ // CSC: should be different error code
+ ec.Report.Error (8149, loc, "By-reference returns can only be used in lambda expressions that return by reference");
+ return false;
+ }
+
statement = Expr as ExpressionStatement;
if (statement == null) {
var reduced = Expr as IReducedExpressionStatement;
statement = Expr as ExpressionStatement;
if (statement == null) {
var reduced = Expr as IReducedExpressionStatement;