@@ -77,10 +77,16 @@ SCENARIO(
77
77
field.type (), symbol_typet (" java::Generic" ));
78
78
THEN (" The pointer should be generic" )
79
79
{
80
+ const java_generic_typet &generic_field =
81
+ require_type::require_java_generic_type (
82
+ field.type (),
83
+ {{require_type::type_argument_kindt::Inst, " java::Generic" }});
84
+
85
+ const typet &type_argument_1 =
86
+ generic_field.generic_type_arguments ().at (0 );
80
87
require_type::require_java_generic_type (
81
- field.type (),
82
- {{require_type::type_argument_kindt::Inst, " java::Generic" }});
83
- // TODO extend when nested generics are parsed correctly - TG-1301
88
+ type_argument_1,
89
+ {{require_type::type_argument_kindt::Var, class_prefix + " ::T" }});
84
90
}
85
91
}
86
92
@@ -92,10 +98,24 @@ SCENARIO(
92
98
field.type (), symbol_typet (" java::Generic" ));
93
99
THEN (" The pointer should be generic" )
94
100
{
101
+ const java_generic_typet &generic_field =
102
+ require_type::require_java_generic_type (
103
+ field.type (),
104
+ {{require_type::type_argument_kindt::Inst, " java::Generic" }});
105
+
106
+ const typet &type_argument_1 =
107
+ generic_field.generic_type_arguments ().at (0 );
108
+ const java_generic_typet &generic_type_argument_1 =
109
+ require_type::require_java_generic_type (
110
+ type_argument_1,
111
+ {{require_type::type_argument_kindt::Inst, " java::Generic" }});
112
+
113
+ const typet &type_argument_1_1 =
114
+ generic_type_argument_1.generic_type_arguments ().at (0 );
95
115
require_type::require_java_generic_type (
96
- field. type () ,
97
- {{require_type::type_argument_kindt::Inst, " java::Generic " }});
98
- // TODO extend when nested generics are parsed correctly - TG-1301
116
+ type_argument_1_1 ,
117
+ {{require_type::type_argument_kindt::Inst,
118
+ " java::java.lang.Integer " }});
99
119
}
100
120
}
101
121
@@ -188,13 +208,29 @@ SCENARIO(
188
208
field.type (), symbol_typet (" java::GenericTwoParam" ));
189
209
THEN (" The pointer should be generic" )
190
210
{
211
+ const java_generic_typet &generic_field =
212
+ require_type::require_java_generic_type (
213
+ field.type (),
214
+ {{require_type::type_argument_kindt::Inst,
215
+ " java::Generic" },
216
+ {require_type::type_argument_kindt::Inst,
217
+ " java::GenericTwoParam" }});
218
+
219
+ const typet &type_argument_1 =
220
+ generic_field.generic_type_arguments ().at (0 );
191
221
require_type::require_java_generic_type (
192
- field.type (),
193
- {{require_type::type_argument_kindt::Inst,
194
- " java::Generic" },
222
+ type_argument_1,
223
+ {{require_type::type_argument_kindt::Var,
224
+ class_prefix + " ::T" }});
225
+
226
+ const typet &type_argument_2 =
227
+ generic_field.generic_type_arguments ().at (1 );
228
+ require_type::require_java_generic_type (
229
+ type_argument_2,
230
+ {{require_type::type_argument_kindt::Var,
231
+ class_prefix + " ::S" },
195
232
{require_type::type_argument_kindt::Inst,
196
- " java::GenericTwoParam" }});
197
- // TODO extend when nested generics are parsed correctly - TG-1301
233
+ " java::java.lang.Integer" }});
198
234
}
199
235
}
200
236
}
0 commit comments