private bool Validate(SmalltalkNameScope globalNameScope, IIntermediateCodeValidationErrorSink errorSink, Func<SmalltalkRuntime, InitializerCompilationResult> func)
 {
     return AstIntermediateMethodCode.Validate(this.ParseTree, errorSink, delegate()
     {
         Expression rt = Expression.Parameter(typeof(SmalltalkRuntime), "rt");
         Expression self = Expression.Parameter(typeof(object), "self");
         return func(globalNameScope.Runtime);
     });
 }
 public override bool ValidateProgramInitializer(SmalltalkNameScope globalNameScope, IIntermediateCodeValidationErrorSink errorSink)
 {
     return this.Validate(globalNameScope, errorSink, rt => this.CompileProgramInitializer(rt, globalNameScope));
 }
 protected override bool InternalValidateMethod(IInstallerContext installer, SmalltalkClass cls, IIntermediateCodeValidationErrorSink errorSink)
 {
     return this.IntermediateCode.ValidateClassMethod(cls, installer.NameScope, errorSink);
 }