From 6839b6c7ffc2e25bad71181959c91da2549eefd0 Mon Sep 17 00:00:00 2001 From: Ivan Tyulyandin Date: Fri, 7 Oct 2022 14:07:35 +0300 Subject: [PATCH] [CTS] Add tests for chapter 5 Signed-off-by: Ivan Tyulyandin --- .../list.extends_throwable.yaml | 6 +++++ .../list.self_dependency.yaml | 12 ++++++---- .../list.type_param_in_static_context.yaml | 9 ++++++++ .../list.wrong_constraints.yaml | 3 +-- ...ts => n.generic_class_self_dependency.ets} | 3 ++- .../n.generic_class_static_context.ets | 16 +++++++++++++ .../n.generic_class_subclass_throwable.ets | 21 +++++++++++++++++ ...s => n.generic_class_wrong_constraint.ets} | 2 +- .../list.self_dependency.yaml | 9 ++++++++ .../list.static_members_with_type_param.yaml | 6 +++++ .../list.wrong_constraints.yaml | 19 +++++++++++++++ .../n.generic_interface_self_dependency.ets | 14 +++++++++++ .../n.generic_interface_static_member.ets | 16 +++++++++++++ .../n.generic_interface_wrong_constraint.ets | 14 +++++++++++ ...list.abstr_or_native_method_modifiers.yaml | 7 ++++++ .../list.method_modifiers.yaml | 6 +++++ .../list.wrong_constraints.yaml | 19 +++++++++++++++ ...ethod_abstr_or_native_wrong_constraint.ets | 19 +++++++++++++++ ...eric_method_with_body_wrong_constraint.ets | 19 +++++++++++++++ .../list.wrong_constraints.yaml | 19 +++++++++++++++ .../n.generic_function_wrong_constraint.ets | 14 +++++++++++ .../01.type_arguments/list.bounds.yaml | 5 ++++ .../list.type_with_one_generic.yaml | 6 +++++ .../list.wrong_constraints.yaml | 19 +++++++++++++++ .../n.wrong_wildcard_bound.ets | 23 +++++++++++++++++++ .../list.generic_types.yaml | 23 +++++++++++++++++++ .../list.non_generics.yaml | 6 +++++ ...lformed_parameterized_decl_non_generic.ets | 16 +++++++++++++ ...ameterized_decl_not_same_params_number.ets | 15 ++++++++++++ 29 files changed, 357 insertions(+), 9 deletions(-) create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.extends_throwable.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.type_param_in_static_context.yaml rename migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/{n.generic_class_self_dependency.sts => n.generic_class_self_dependency.ets} (87%) create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_static_context.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_subclass_throwable.ets rename migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/{n.generic_class_wrong_constraint.sts => n.generic_class_wrong_constraint.ets} (83%) create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.self_dependency.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.static_members_with_type_param.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.wrong_constraints.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_self_dependency.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_static_member.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_wrong_constraint.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.abstr_or_native_method_modifiers.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.method_modifiers.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.wrong_constraints.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_abstr_or_native_wrong_constraint.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_with_body_wrong_constraint.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/list.wrong_constraints.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/n.generic_function_wrong_constraint.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.bounds.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.type_with_one_generic.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.wrong_constraints.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/n.wrong_wildcard_bound.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.generic_types.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.non_generics.yaml create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_non_generic.ets create mode 100644 migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_not_same_params_number.ets diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.extends_throwable.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.extends_throwable.yaml new file mode 100644 index 000000000..15c6b2a49 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.extends_throwable.yaml @@ -0,0 +1,6 @@ +--- # Extends Throwable + +- Throwable +- SomeThrowable +- SomeSomeThrowable + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.self_dependency.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.self_dependency.yaml index 5ae3aeb53..5a56217d0 100644 --- a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.self_dependency.yaml +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.self_dependency.yaml @@ -1,7 +1,9 @@ --- # Self dependency tests -- T -- U -- U> -- U> -- T +- T extends T +- U +- U> +- U> +- T extends U, U extends T +- T extends U, U extends W, W extends T + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.type_param_in_static_context.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.type_param_in_static_context.yaml new file mode 100644 index 000000000..2060789a0 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.type_param_in_static_context.yaml @@ -0,0 +1,9 @@ +--- # Type variable in static context + +- "static class InnerX {wrong_type_field: T}" +- "static foo(T wrong_type_arg): void {}" +- "static foo(): void {let wrong_type_variable: T;}" +- "static wrong_type_field: T;" +- "const static wrong_type_field: T;" +- "static {let wrong_type_in_static_init: T}" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.wrong_constraints.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.wrong_constraints.yaml index bed00fe09..40496e255 100644 --- a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.wrong_constraints.yaml +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/list.wrong_constraints.yaml @@ -16,5 +16,4 @@ - void - "enum Color { Red, Green, Blue }" - "int[]" -- "int, extends Object" -- "Object, extends int" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_self_dependency.sts b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_self_dependency.ets similarity index 87% rename from migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_self_dependency.sts rename to migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_self_dependency.ets index d63f0678c..627d84574 100644 --- a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_self_dependency.sts +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_self_dependency.ets @@ -8,9 +8,10 @@ params: > {{.cm}} ---*/ -{{.cm}} class T<{{.sd}}> {} +{{.cm}} class X<{{.sd}}> {} function main(): void {} {% endfor %} {% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_static_context.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_static_context.ets new file mode 100644 index 000000000..124cbc3f3 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_static_context.ets @@ -0,0 +1,16 @@ +{% for tsc in type_param_in_static_context %} + +/*--- +desc: type parameter of a generic class cannot be used in static context +params: > + {{.tsc}} +---*/ + +class X { + {{.tsc}} +} + +function main(): void {} + +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_subclass_throwable.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_subclass_throwable.ets new file mode 100644 index 000000000..626abd3bb --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_subclass_throwable.ets @@ -0,0 +1,21 @@ +{% for et in extends_throwable %} +{% for cm in toplevel_class_modifiers %} + +/*--- +desc: generic class cannot be a subclass of Throwable +params: > + {{.et}} + {{.cm}} +---*/ + +class SomeThrowable extends Throwable {} + +class SomeSomeThrowable extends SomeThrowable {} + +{{.cm}} class X extends {{.et}} {} + +function main(): void {} + +{% endfor %} +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_wrong_constraint.sts b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_wrong_constraint.ets similarity index 83% rename from migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_wrong_constraint.sts rename to migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_wrong_constraint.ets index 7c6fbddb0..b55ca5ddd 100644 --- a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_wrong_constraint.sts +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/01.generic_classes/n.generic_class_wrong_constraint.ets @@ -2,7 +2,7 @@ {% for cm in toplevel_class_modifiers %} /*--- -desc: Self-dependency is prohibited +desc: wrong constraints for type variable params: > {{.wc}} {{.cm}} diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.self_dependency.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.self_dependency.yaml new file mode 100644 index 000000000..5a56217d0 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.self_dependency.yaml @@ -0,0 +1,9 @@ +--- # Self dependency tests + +- T extends T +- U +- U> +- U> +- T extends U, U extends T +- T extends U, U extends W, W extends T + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.static_members_with_type_param.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.static_members_with_type_param.yaml new file mode 100644 index 000000000..11334e9af --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.static_members_with_type_param.yaml @@ -0,0 +1,6 @@ +--- # Interfaces with static members and type parameters inside + +- "static foo(): X" +- "static foo(): void {let x:X;}" +- "static class InnerC {innerVar: X}" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.wrong_constraints.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.wrong_constraints.yaml new file mode 100644 index 000000000..40496e255 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/list.wrong_constraints.yaml @@ -0,0 +1,19 @@ +--- # Wrong type constraints for generic parameters + +- boolean +- byte +- char +- double +- float +- int +- int && Object +- int && Object && String +- long +- Object && int +- Object && int && String +- Object && String && int +- short +- void +- "enum Color { Red, Green, Blue }" +- "int[]" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_self_dependency.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_self_dependency.ets new file mode 100644 index 000000000..d909f3c6f --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_self_dependency.ets @@ -0,0 +1,14 @@ +{% for sd in self_dependency %} + +/*--- +desc: Self-dependency is prohibited +params: > + {{.sd}} +---*/ + +interface X<{{.sd}}> {} + +function main(): void {} + +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_static_member.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_static_member.ets new file mode 100644 index 000000000..138c4bd32 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_static_member.ets @@ -0,0 +1,16 @@ +{% for stm in static_members_with_type_param %} + +/*--- +desc: wrong usage of type variable in static member +params: > + {{.stm}} +---*/ + +interface I { + {{.stm}} +} + +function main(): void {} + +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_wrong_constraint.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_wrong_constraint.ets new file mode 100644 index 000000000..d37fe7a92 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/02.generic_interfaces/n.generic_interface_wrong_constraint.ets @@ -0,0 +1,14 @@ +{% for wc in wrong_constraints %} + +/*--- +desc: wrong constraints for type variable +params: > + {{.wc}} +---*/ + +interface Point {} + +function main(): void {} + +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.abstr_or_native_method_modifiers.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.abstr_or_native_method_modifiers.yaml new file mode 100644 index 000000000..b0275fdae --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.abstr_or_native_method_modifiers.yaml @@ -0,0 +1,7 @@ +--- # Method modifiers for implemented methods + +- abstract +- static native +- native static +- native + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.method_modifiers.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.method_modifiers.yaml new file mode 100644 index 000000000..589af37c9 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.method_modifiers.yaml @@ -0,0 +1,6 @@ +--- # Method modifiers for implemented methods + +- static +- override +- open + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.wrong_constraints.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.wrong_constraints.yaml new file mode 100644 index 000000000..40496e255 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/list.wrong_constraints.yaml @@ -0,0 +1,19 @@ +--- # Wrong type constraints for generic parameters + +- boolean +- byte +- char +- double +- float +- int +- int && Object +- int && Object && String +- long +- Object && int +- Object && int && String +- Object && String && int +- short +- void +- "enum Color { Red, Green, Blue }" +- "int[]" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_abstr_or_native_wrong_constraint.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_abstr_or_native_wrong_constraint.ets new file mode 100644 index 000000000..e34dd3ebe --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_abstr_or_native_wrong_constraint.ets @@ -0,0 +1,19 @@ +{% for wc in wrong_constraints %} +{% for mm in abstr_or_native_method_modifiers %} + +/*--- +desc: wrong constraints for type variable +params: > + {{.wc}} + {{.mm}} +---*/ + +class Point { + {{.mm}} foo(): void; +} + +function main(): void {} + +{% endfor %} +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_with_body_wrong_constraint.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_with_body_wrong_constraint.ets new file mode 100644 index 000000000..76ac23546 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/03.generic_methods/n.generic_method_with_body_wrong_constraint.ets @@ -0,0 +1,19 @@ +{% for wc in wrong_constraints %} +{% for mm in method_modifiers %} + +/*--- +desc: wrong constraints for type variable +params: > + {{.wc}} + {{.mm}} +---*/ + +class Point { + {{.mm}} foo(): void {}; +} + +function main(): void {} + +{% endfor %} +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/list.wrong_constraints.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/list.wrong_constraints.yaml new file mode 100644 index 000000000..40496e255 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/list.wrong_constraints.yaml @@ -0,0 +1,19 @@ +--- # Wrong type constraints for generic parameters + +- boolean +- byte +- char +- double +- float +- int +- int && Object +- int && Object && String +- long +- Object && int +- Object && int && String +- Object && String && int +- short +- void +- "enum Color { Red, Green, Blue }" +- "int[]" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/n.generic_function_wrong_constraint.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/n.generic_function_wrong_constraint.ets new file mode 100644 index 000000000..f723ac2fe --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/01.generic_declarations/05.generic_functions/n.generic_function_wrong_constraint.ets @@ -0,0 +1,14 @@ +{% for wc in wrong_constraints %} + +/*--- +desc: wrong constraints for type variable +params: > + {{.wc}} +---*/ + +function foo(): void {}; + +function main(): void {} + +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.bounds.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.bounds.yaml new file mode 100644 index 000000000..38a78383c --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.bounds.yaml @@ -0,0 +1,5 @@ +--- # Bounds for wildcards + +- super +- extends + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.type_with_one_generic.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.type_with_one_generic.yaml new file mode 100644 index 000000000..41386e479 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.type_with_one_generic.yaml @@ -0,0 +1,6 @@ +--- # Generic types declarations with one type parameter + +- {decl: "class ClassGener {}", type: "ClassGener", curly_if_need: "{}"} +- {decl: "interface IfaceGener {}", type: "IfaceGener", curly_if_need: "{}"} +- {decl: "function FuncGener(): void {}", type: "FuncGener", curly_if_need: ""} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.wrong_constraints.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.wrong_constraints.yaml new file mode 100644 index 000000000..40496e255 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/list.wrong_constraints.yaml @@ -0,0 +1,19 @@ +--- # Wrong type constraints for generic parameters + +- boolean +- byte +- char +- double +- float +- int +- int && Object +- int && Object && String +- long +- Object && int +- Object && int && String +- Object && String && int +- short +- void +- "enum Color { Red, Green, Blue }" +- "int[]" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/n.wrong_wildcard_bound.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/n.wrong_wildcard_bound.ets new file mode 100644 index 000000000..a3fd36cd2 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/01.type_arguments/n.wrong_wildcard_bound.ets @@ -0,0 +1,23 @@ +{% for wc in wrong_constraints %} +{% for tog in type_with_one_generic %} +{% for bd in bounds %} + +/*--- +desc: Self-dependency is prohibited +params: > + {{.wc}} + {{.tog}} + {{.bd}} +---*/ + + +{{.tog.decl}} + +function main(): void { + let x = {{.tog.type}}{{.tog.curly_if_need}}; +} + +{% endfor %} +{% endfor %} +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.generic_types.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.generic_types.yaml new file mode 100644 index 000000000..580cbcb15 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.generic_types.yaml @@ -0,0 +1,23 @@ +--- # Generic declarations and its wrong parameterization + +- {decl: "class NonGeneric {}", bad_param: "NonGeneric"} +- {decl: "class OneGeneric {}", bad_param: "OneGeneric"} +- {decl: "class OneGeneric {}", bad_param: "OneGeneric"} +- {decl: "class TwoGenerics {}", bad_param: "TwoGenerics"} +- {decl: "class TwoGenerics {}", bad_param: "TwoGenerics"} +- {decl: "class TwoGenerics {}", bad_param: "TwoGenerics"} + +- {decl: "function NonGeneric(): void {}", bad_param: "NonGeneric"} +- {decl: "function OneGeneric(): void {}", bad_param: "OneGeneric"} +- {decl: "function OneGeneric(): void {}", bad_param: "OneGeneric"} +- {decl: "function TwoGenerics(): void {}", bad_param: "TwoGenerics"} +- {decl: "function TwoGenerics(): void {}", bad_param: "TwoGenerics"} +- {decl: "function TwoGenerics(): void {}", bad_param: "TwoGenerics"} + +- {decl: "interface NonGeneric {}", bad_param: "NonGeneric"} +- {decl: "interface OneGeneric {}", bad_param: "OneGeneric"} +- {decl: "interface OneGeneric {}", bad_param: "OneGeneric"} +- {decl: "interface TwoGenerics {}", bad_param: "TwoGenerics"} +- {decl: "interface TwoGenerics {}", bad_param: "TwoGenerics"} +- {decl: "interface TwoGenerics {}", bad_param: "TwoGenerics"} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.non_generics.yaml b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.non_generics.yaml new file mode 100644 index 000000000..2e357c21d --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/list.non_generics.yaml @@ -0,0 +1,6 @@ +--- # Non generic declarations + +- "class NonGeneric {}" +- "interface NonGeneric {}" +- "function NonGeneric(): void {}" + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_non_generic.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_non_generic.ets new file mode 100644 index 000000000..cad2fe5f2 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_non_generic.ets @@ -0,0 +1,16 @@ +{% for ng in non_generics %} + +/*--- +desc: "malformed parameterized generics: use of generics with non generic" +params: > + {{.ng}} +---*/ + +{{.ng}} + +function main(): void { + let ng: NonGeneric; +} + +{% endfor %} + diff --git a/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_not_same_params_number.ets b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_not_same_params_number.ets new file mode 100644 index 000000000..78b59ec17 --- /dev/null +++ b/migrator/test/staticTS/CTS/05.generic_and_parameterized_declarations/02.parameterized_declarations/n.malformed_parameterized_decl_not_same_params_number.ets @@ -0,0 +1,15 @@ +{% for gt in generic_types %} + +/*--- +desc: "malformed parameterized generics: wrong amount of type parameters" +params: > + {{.gt}} +---*/ + +{{.gt.decl}} + +function main(): void { + let gt: {{.gt.bad_param}}; +} + +{% endfor %} -- Gitee