@Override public void typeResolve(Environment base) { if (typeParams != null) { FlatCheckedEnvironment params = new FlatCheckedEnvironment(getTypeParamDefinitions(), base, NameScope.NAMES); type = type.typeResolve(params, null); } else { type = type.typeResolve(base, null); } if (base.isVDMPP()) { name.setTypeQualifier(type.parameters); } if (body instanceof TCSubclassResponsibilityExpression || body instanceof TCNotYetSpecifiedExpression) { isUndefined = true; } if (precondition != null) { predef.typeResolve(base); } if (postcondition != null) { postdef.typeResolve(base); } for (TCPatternList pp : paramPatternList) { pp.typeResolve(base); } }