public bool Compatible (EmitContext ec) { // TODO: Implement clone aec = new EmitContext ( ec.ResolveContext, ec.TypeContainer, ec.DeclContainer, Location, null, ReturnType, (ec.InUnsafe ? Modifiers.UNSAFE : 0), /* No constructor */ false); aec.CurrentAnonymousMethod = this; aec.IsStatic = ec.IsStatic; IDisposable aec_dispose = null; EmitContext.Flags flags = 0; if (ec.InferReturnType) flags |= EmitContext.Flags.InferReturnType; if (ec.IsInProbingMode) flags |= EmitContext.Flags.ProbingMode; if (ec.IsInFieldInitializer) flags |= EmitContext.Flags.InFieldInitializer; if (ec.IsInUnsafeScope) flags |= EmitContext.Flags.InUnsafe; // HACK: Flag with 0 cannot be set if (flags != 0) aec_dispose = aec.Set (flags); bool unreachable; bool res = aec.ResolveTopBlock (ec, Block, Block.Parameters, null, out unreachable); if (ec.InferReturnType) ReturnType = aec.ReturnType; if (aec_dispose != null) { aec_dispose.Dispose (); } return res; }