@@ -92,6 +92,11 @@ encapsulated package Elements
9292 SCode.PARTS({}, {}, {}, {}, {}, {}, {}, NONE()),
9393 SCode.noComment, Absyn.dummyInfo);
9494
95+ constant SCode.Element ANY = SCode.CLASS("polymorphic" ,
96+ SCode.defaultPrefixes, SCode.NOT_ENCAPSULATED(), SCode.NOT_PARTIAL(), SCode.R_TYPE(),
97+ SCode.PARTS({}, {}, {}, {}, {}, {}, {}, NONE()),
98+ SCode.noComment, Absyn.dummyInfo);
99+
95100 constant SCode.Element STATESELECT = SCode.CLASS("StateSelect" ,
96101 SCode.defaultPrefixes, SCode.NOT_ENCAPSULATED(), SCode.NOT_PARTIAL(), SCode.R_TYPE(),
97102 SCode.ENUMERATION({
@@ -108,16 +113,22 @@ end Elements;
108113// InstNodes for the builtin types. These have empty class trees to prevent
109114// access to the attributes via dot notation (which is not needed for
110115// modifiers and illegal in other cases).
116+ constant InstNode ANYTYPE_NODE = InstNode.CLASS_NODE("polymorphic" ,
117+ Elements.ANY,
118+ Pointer.createImmutable(Class.PARTIAL_BUILTIN(Type.ANY_TYPE("unknown" ), NFClassTree.EMPTY, Modifier.NOMOD())),
119+ arrayCreate(NFInstNode.NUMBER_OF_CACHES, NFInstNode.CachedData.NO_CACHE()),
120+ InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
121+
111122constant InstNode REAL_NODE = InstNode.CLASS_NODE("Real" ,
112123 Elements.REAL,
113124 Pointer.createImmutable(Class.PARTIAL_BUILTIN(Type.REAL(), NFClassTree.EMPTY, Modifier.NOMOD())),
114- Pointer.createImmutable( NFInstNode.CachedData.NO_CACHE()),
125+ arrayCreate(NFInstNode.NUMBER_OF_CACHES, NFInstNode.CachedData.NO_CACHE()),
115126 InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
116127
117128constant InstNode INTEGER_NODE = InstNode.CLASS_NODE("Integer" ,
118129 Elements.INTEGER,
119130 Pointer.createImmutable(Class.PARTIAL_BUILTIN(Type.INTEGER(), NFClassTree.EMPTY, Modifier.NOMOD())),
120- Pointer.createImmutable( NFInstNode.CachedData.FUNCTION({NFBuiltinFuncs.INTEGER}, true , false )),
131+ listArray({ NFInstNode.CachedData.FUNCTION({NFBuiltinFuncs.INTEGER}, true , false ), NFInstNode.CachedData.NO_CACHE(), NFInstNode.CachedData.NO_CACHE()} ),
121132 InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
122133
123134constant ComponentRef INTEGER_CREF =
@@ -126,7 +137,7 @@ constant ComponentRef INTEGER_CREF =
126137constant InstNode BOOLEAN_NODE = InstNode.CLASS_NODE("Boolean" ,
127138 Elements.BOOLEAN,
128139 Pointer.createImmutable(Class.PARTIAL_BUILTIN(Type.BOOLEAN(), NFClassTree.EMPTY, Modifier.NOMOD())),
129- Pointer.createImmutable( NFInstNode.CachedData.NO_CACHE()),
140+ arrayCreate(NFInstNode.NUMBER_OF_CACHES, NFInstNode.CachedData.NO_CACHE()),
130141 InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
131142
132143constant ComponentRef BOOLEAN_CREF =
@@ -135,10 +146,15 @@ constant ComponentRef BOOLEAN_CREF =
135146constant InstNode STRING_NODE = InstNode.CLASS_NODE("String" ,
136147 Elements.STRING,
137148 Pointer.createImmutable(Class.PARTIAL_BUILTIN(Type.STRING(), NFClassTree.EMPTY, Modifier.NOMOD())),
138- Pointer.createImmutable(NFInstNode.CachedData.FUNCTION({
139- NFBuiltinFuncs.STRING_ENUM, NFBuiltinFuncs.STRING_INT,
140- NFBuiltinFuncs.STRING_BOOL, NFBuiltinFuncs.STRING_REAL,
141- NFBuiltinFuncs.STRING_REAL_FORMAT}, true , false )),
149+ listArray({ NFInstNode.CachedData.FUNCTION({
150+ NFBuiltinFuncs.STRING_ENUM, NFBuiltinFuncs.STRING_INT,
151+ NFBuiltinFuncs.STRING_BOOL, NFBuiltinFuncs.STRING_REAL,
152+ NFBuiltinFuncs.STRING_REAL_FORMAT
153+ },
154+ true , false ),
155+ NFInstNode.CachedData.NO_CACHE(),
156+ NFInstNode.CachedData.NO_CACHE()}
157+ ),
142158 InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
143159
144160constant ComponentRef STRING_CREF =
@@ -147,7 +163,7 @@ constant ComponentRef STRING_CREF =
147163constant InstNode ENUM_NODE = InstNode.CLASS_NODE("enumeration" ,
148164 Elements.ENUMERATION,
149165 Pointer.createImmutable(Class.PARTIAL_BUILTIN(Type.ENUMERATION_ANY(), NFClassTree.EMPTY, Modifier.NOMOD())),
150- Pointer.createImmutable( NFInstNode.CachedData.NO_CACHE()),
166+ arrayCreate(NFInstNode.NUMBER_OF_CACHES, NFInstNode.CachedData.NO_CACHE()),
151167 InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
152168
153169constant Type STATESELECT_TYPE = Type.ENUMERATION(
@@ -156,7 +172,7 @@ constant Type STATESELECT_TYPE = Type.ENUMERATION(
156172constant InstNode STATESELECT_NODE = InstNode.CLASS_NODE("StateSelect" ,
157173 Elements.STATESELECT,
158174 Pointer.createImmutable(Class.PARTIAL_BUILTIN(STATESELECT_TYPE, NFClassTree.EMPTY, Modifier.NOMOD())),
159- Pointer.createImmutable( NFInstNode.CachedData.NO_CACHE()),
175+ arrayCreate(NFInstNode.NUMBER_OF_CACHES, NFInstNode.CachedData.NO_CACHE()),
160176 InstNode.EMPTY_NODE(), InstNodeType.NORMAL_CLASS());
161177
162178constant ComponentRef STATESELECT_CREF =
0 commit comments