- Expr = Expr.Resolve (ec);
- if (Expr == null)
- return false;
-
- if (ec.ReturnType == null){
- ec.ReturnType = Expr.Type;
- } else {
- if (Expr.Type != ec.ReturnType) {
- Expression nExpr = Convert.ImplicitConversionRequired (
- ec, Expr, ec.ReturnType, loc);
- if (nExpr == null){
- Report.Error (1662, loc, "Could not implicitly convert from {0} to {1}",
- TypeManager.CSharpName (Expr.Type),
- TypeManager.CSharpName (ec.ReturnType));
- return false;
- }
- Expr = nExpr;
- }
+ public override void Emit (EmitContext ec)
+ {
+ if (statement != null) {
+ statement.EmitStatement (ec);
+ ec.Emit (OpCodes.Ret);
+ return;