@@ -232,6 +232,48 @@ SCENARIO(
232
232
test_data.should_return_value = true ;
233
233
validate_lamdba_assignement (symbol_table, instructions, test_data);
234
234
}
235
+ THEN (
236
+ " The local variable should be assigned a temp object implementing "
237
+ " ReturningLambdaReference" )
238
+ {
239
+ lambda_assignment_test_datat test_data;
240
+
241
+ test_data.lambda_variable_id = std::regex (
242
+ function_prefix_regex_str + " ::\\ d+::returnReferenceLambda" );
243
+
244
+ test_data.lambda_interface = " java::ReturningLambdaReference" ;
245
+
246
+ test_data.lambda_interface_method_descriptor =
247
+ " .Execute:()Ljava/lang/Object;" ;
248
+
249
+ // "java::LocalLambdas.lambda$test$0:()V"
250
+ test_data.lambda_function_id =
251
+ " java::LocalLambdas.lambda$test$4:()Ljava/lang/Object;" ;
252
+ test_data.expected_params = {};
253
+ test_data.should_return_value = true ;
254
+ validate_lamdba_assignement (symbol_table, instructions, test_data);
255
+ }
256
+ THEN (
257
+ " The local variable should be assigned a temp object implementing "
258
+ " ReturningLambdaSpecalisedGeneric" )
259
+ {
260
+ lambda_assignment_test_datat test_data;
261
+
262
+ test_data.lambda_variable_id = std::regex (
263
+ function_prefix_regex_str +
264
+ " ::\\ d+::returningSpecalisedGenericLambda" );
265
+
266
+ test_data.lambda_interface = " java::ReturningLambdaSpecalisedGeneric" ;
267
+
268
+ test_data.lambda_interface_method_descriptor =
269
+ " .Execute:()LDummyGeneric;" ;
270
+ test_data.lambda_function_id =
271
+ " java::LocalLambdas.lambda$test$5:()LDummyGeneric;" ;
272
+ test_data.expected_params = {};
273
+ test_data.should_return_value = true ;
274
+ validate_lamdba_assignement (symbol_table, instructions, test_data);
275
+ }
276
+ // TODO[TG-2482]: Tests for local lambdas that capture variables
235
277
}
236
278
}
237
279
});
0 commit comments