fact: Definition typeDecl (isClass:bool) (mods:list Modifier) (name:ClassName) (ext:Extends) (impls:list Implements) (fields:list Field) (modelFields:list ModelField) (methods:list Method) (ts:TypeSpec) := let (superClass, weaklyExtends) := match ext with | extends name => (Some name, false) | extends_weakly name => (Some name, true) | no_extends => (None, true) end in let type0 := TYPEDEF.Build_t isClass name (javaVisibility ClassEK mods) (specVisibility ClassEK mods) superClass weaklyExtends (implementsList impls) (weaklyImplementsList impls) fields modelFields methods (hasModifier mods final) (hasModifier mods abstract) ts in rewriteTypeDef type0.
imports: JML(Prelude) Coq(ZArith) Coq(Bool) Coq(List) JML(TaggedList) JML(ListHelpers) JML(ListFunctions) JML(OptionHelpers) JML(JMLProgramPlusImpl) JML(JMLFull2Basic) JML(JMLExpressionNotations)