ec.Report.Error (185, loc,
"`{0}' is not a reference type as required by the lock statement",
expr.Type.GetSignatureForError ());
- return false;
}
ec.StartFlowBranching (this);
protected override void EmitPreTryBody (EmitContext ec)
{
expr_copy.EmitAssign (ec, expr);
- lock_taken.EmitAssign (ec, new BoolLiteral (false, loc));
+
+ if (lock_taken != null) {
+ //
+ // Initialize ref variable
+ //
+ lock_taken.EmitAssign (ec, new BoolLiteral (false, loc));
+ }
}
protected override void EmitTryBody (EmitContext ec)