internal override AST PartiallyEvaluate(){
if (this.isAlreadyPartiallyEvaluated) return this;
this.isAlreadyPartiallyEvaluated = true;
this.IsExpando(); //Evaluate the custom attributes, run up the inheritance chain and add expando property if necessary
this.classob.SetParent(new WithObject(this.enclosingScope, this.superIR, true));
Globals.ScopeStack.Push(this.classob);
try{
this.body.PartiallyEvaluate();
if (this.implicitDefaultConstructor != null)
this.implicitDefaultConstructor.PartiallyEvaluate();
}finally{
Globals.ScopeStack.Pop();
}
foreach (JSMemberField field in this.fields) field.CheckOverloadsForDuplicates();
this.CheckIfValidExtensionOfSuperType();
this.CheckThatAllAbstractSuperClassMethodsAreImplemented();
return this;
}