builder = null;
}
+ public override bool ContainsEmitWithAwait ()
+ {
+ return false;
+ }
+
public override Expression CreateExpressionTree (ResolveContext ec)
{
Arguments args = new Arguments (1);
if (builder == null)
throw new InternalErrorException ("Emit without Store, or after Release");
- ec.Emit (OpCodes.Ldloc, builder, type);
+ ec.Emit (OpCodes.Ldloc, builder);
}
#region IAssignMethod Members
if (builder == null)
builder = ec.GetTemporaryLocal (type);
- ec.Emit (OpCodes.Stloc, builder, type);
+ ec.Emit (OpCodes.Stloc, builder);
}
public void AddressOf (EmitContext ec, AddressOp mode)
// if is_address, than this is just the address anyways,
// so we just return this.
//
- ec.Emit (OpCodes.Ldloc, builder, type);
+ ec.Emit (OpCodes.Ldloc, builder);
} else {
- ec.Emit (OpCodes.Ldloca, builder, type);
+ ec.Emit (OpCodes.Ldloca, builder);
}
}
}
this.loc = loc;
}
- public override Expression CreateExpressionTree (ResolveContext ec)
- {
- ec.Report.Error (832, loc, "An expression tree cannot contain an assignment operator");
- return null;
- }
-
public Expression Target {
get { return target; }
}
}
}
+ public override bool ContainsEmitWithAwait ()
+ {
+ return target.ContainsEmitWithAwait () || source.ContainsEmitWithAwait ();
+ }
+
+ public override Expression CreateExpressionTree (ResolveContext ec)
+ {
+ ec.Report.Error (832, loc, "An expression tree cannot contain an assignment operator");
+ return null;
+ }
+
protected override Expression DoResolve (ResolveContext ec)
{
bool ok = true;