Concrete implementation of a parametric interface blows up the language server if inherited interface method has a function as one of its parametres.
Steps to Reproduce
Try to compile this code:
FooModule<public> := module:
# Case 1 inteface
test_interface<public>(t:type) := interface:
Foo<public>(Bar:t):void
test_interface_implementation<public> := class(test_interface(float)):
Foo<override>(Bar: float):void={} # Case 1 implementation: works fine
# Case 2 interface
test_interface_func<public>(t:type) := interface:
Foo<public>(Callback:t->void):void
test_interface_func_implementation := class(test_interface_func(float)):
Foo<override>(Callback: float->void):void={} # Case 2 implementation: language server crashes, if attempting to build verse UEFN crashes too
Expected Result
A compiler error if this is not supported of for it to work if it is supported,
Observed Result
This code will crash language server in VS code or entire UEFN if you try to compile it.
Using a value of type type{_(:player->void)<transacts>:cancelable} as a value of type type{_(:any->void)<transacts>:cancelable} is not yet implemented.(3502)
when i try to override the Subscribe function of the subscribable.
@sharpneck Thank you for your report! Can you please re-post using the “New Issue” option on the Issues and Bug Reporting forums? Posts with this feature are connected directly into our development team so we can quickly get to them!For more information, such as how to get the reference ID, please check out the article here: Using the Creative and UEFN Bug Reporting Form