superClass = CStdType.Object;
setSuperClass(CStdType.Object);
  public void checkInterface(final CContext context) throws PositionedError {    checkModifiers(context);    if (superClass == null) {      if (sourceClass.getType().equals(CStdType.Object)) {	// java/lang/Object	// superClass = null;	// superClass1 = null;      } else {	superClass = CStdType.Object;      }    } else {      try {	superClass.checkType(context);      } catch (UnpositionedError e) {	throw e.addPosition(getTokenReference());      }    }    // check access    if (superClass != null) {      CClass	clazz = superClass.getCClass();      check(context,             clazz.isAccessible(getCClass()),	    KjcMessages.CLASS_ACCESSPARENT, superClass.getQualifiedName());      check(context,	    !clazz.isFinal(),	    KjcMessages.CLASS_PARENT_FINAL, superClass.getQualifiedName());      check(context,	    !clazz.isInterface(),	    KjcMessages.CLASS_EXTENDS_INTERFACE, superClass.getQualifiedName());    }    CClassContext	self = new CClassContext(context, sourceClass, this);    statInit = constructInitializers(true);    if (statInit != null) {      statInit.checkInterface(self);    }    int	i = 0;    for (; i < methods.length; i++) {      if (methods[i] instanceof JConstructorDeclaration) {	break;      }    }    if (i == methods.length && getDefaultConstructor() == null) {      setDefaultConstructor(constructDefaultConstructor());    }    instanceInit = constructInitializers(false);    if (instanceInit != null) {      instanceInit.checkInterface(self);    }    getCClass().setSuperClass(superClass);    super.checkInterface(context, superClass);    // Check inners    for (int k = 0; k  < inners.length; k++) {      if (!inners[k].getCClass().isStatic()) inners[k].addOuterThis();    }  }