From e72e8a9f2ca977829f61f4b6c87577594180b277 Mon Sep 17 00:00:00 2001 From: xingzeng Date: Mon, 1 Sep 2025 11:39:36 +0800 Subject: [PATCH] Remove unboxed method for Built-In Type Classes Issue: https://gitee.com/openharmony/arkcompiler_runtime_core/issues/ICVOSZ Reason: The es2panda front-en emits toByte&co instead of unboxed in lowering. The public unboxed() method is slated for removal now that we don't have primitives at the language level. Meaning: Transfer from relying on primitive types to not relying on primitive types, with promise that in new language compiling framework it stiil can process type cast correctly. Signed-off-by: xingzeng --- static_core/plugins/ets/BUILD.gn | 16 +- static_core/plugins/ets/CMakeLists.txt | 20 +- static_core/plugins/ets/GenerateStdLib.cmake | 2 +- .../abc2program/abc2program_ets_plugin.cpp | 4 +- .../plugins/ets/arkts_header/CMakeLists.txt | 35 + .../plugins/ets/arkts_header/arkts_header.cpp | 90 + .../ets/arkts_header/header_writer.cpp | 157 + .../plugins/ets/arkts_header/header_writer.h | 88 + .../ets_codegen_intrinsics_gen.inc.erb | 3 +- .../visitors/codegen_visitors.inc | 7 - static_core/plugins/ets/cmake/ani.cmake | 18 - .../plugins/ets/cmake/ets_package.cmake | 2 - static_core/plugins/ets/cmake/import.cmake | 1 - .../plugins/ets/compiler/CMakeLists.txt | 1 - .../ets/compiler/codegen_intrinsics_ets.cpp | 89 +- .../ets/compiler/ets_compiler_interface.h | 30 - .../compiler/intrinsics_ir_build_ets.inl.h | 11 +- .../intrinsics_ir_build_static_call_ets.inl | 5 - .../intrinsics_ir_build_virtual_call_ets.inl | 18 +- .../compiler/intrinsics_peephole_ets.inl.h | 1 - .../ets/compiler/ir_build_intrinsics_ets.cpp | 225 +- .../optimizer/ets_codegen_extensions.cpp | 9 + .../ets_intrinsics_inlining_expansion.cpp | 7 +- .../optimizer/ets_intrinsics_peephole.cpp | 26 +- .../optimizer/ir_builder/ets_inst_builder.cpp | 32 +- .../optimizer/ir_builder/ets_inst_builder.h | 1 - .../ir_builder/ets_inst_templates.yaml | 2 - .../js_interop/js_interop_inst_builder.cpp | 6 +- .../plugins/ets/compiler/product_options.h | 32 - static_core/plugins/ets/dfx/heap_helpers.cpp | 95 - static_core/plugins/ets/dfx/heap_helpers.h | 35 - static_core/plugins/ets/doc/build-docs.sh | 29 - static_core/plugins/ets/doc/build_all.bat | 23 - .../plugins/ets/doc/build_annotations.bat | 23 - .../plugins/ets/doc/build_cookbook.bat | 23 - static_core/plugins/ets/doc/build_runtime.bat | 23 - static_core/plugins/ets/doc/build_spec.bat | 23 - static_core/plugins/ets/doc/build_stdlib.bat | 23 - static_core/plugins/ets/doc/build_system.bat | 23 - .../plugins/ets/doc/build_tutorial.bat | 23 - .../doc/concurrency/02_concurrency_stdlib.rst | 38 +- .../plugins/ets/doc/concurrency/conf.py | 42 +- .../ets/doc/cookbook/TS_compatibility.rst | 25 - .../plugins/ets/doc/cookbook/recipes.rst | 87 - .../plugins/ets/doc/runtime/04_names.rst | 131 +- .../plugins/ets/doc/runtime/05_imports.rst | 10 - .../plugins/ets/doc/spec/0_authors.rst | 1 - .../plugins/ets/doc/spec/10_interfaces.rst | 336 +- static_core/plugins/ets/doc/spec/11_enums.rst | 55 +- .../plugins/ets/doc/spec/12_errors.rst | 13 +- .../plugins/ets/doc/spec/13_modules.rst | 533 +- .../plugins/ets/doc/spec/14_ambients.rst | 298 +- .../plugins/ets/doc/spec/15_semantics.rst | 2816 ++++------ .../plugins/ets/doc/spec/16_concurrency.rst | 168 +- .../plugins/ets/doc/spec/17_experimental.rst | 2271 +++----- .../plugins/ets/doc/spec/18_annotations.rst | 231 +- static_core/plugins/ets/doc/spec/1_intro.rst | 375 +- .../ets/doc/spec/20_implementation.rst | 135 +- .../plugins/ets/doc/spec/21_grammar.rst | 206 +- .../plugins/ets/doc/spec/2_lexical.rst | 184 +- static_core/plugins/ets/doc/spec/3_types.rst | 1043 ++-- static_core/plugins/ets/doc/spec/4_names.rst | 738 +-- .../plugins/ets/doc/spec/5_generics.rst | 398 +- .../plugins/ets/doc/spec/6_conversions.rst | 322 +- .../plugins/ets/doc/spec/7_expressions.rst | 3106 +++++------ .../plugins/ets/doc/spec/8_statements.rst | 431 +- .../plugins/ets/doc/spec/9_classes.rst | 1610 ++---- .../ets/doc/stdlib/packages/escompat.rst | 28 +- .../plugins/ets/ets_plugin_options.yaml | 7 - .../plugins/ets/irtoc_scripts/CMakeLists.txt | 4 - .../plugins/ets/irtoc_scripts/common.irt | 33 - .../ets/irtoc_scripts/escompat_array.irt | 43 - .../irtoc_scripts/interpreter_handlers.irt | 9 +- .../irtoc_scripts/interpreter_main_loop.irt | 2 - static_core/plugins/ets/irtoc_scripts/map.irt | 141 - .../ets/irtoc_scripts/map_set_common.irt | 519 -- static_core/plugins/ets/irtoc_scripts/set.irt | 15 - .../plugins/ets/irtoc_scripts/string.irt | 442 +- .../ets/irtoc_scripts/string_builder.irt | 32 +- .../ets/irtoc_scripts/to_string_cache.irt | 5 +- .../ets/irtoc_scripts/typed_arrays.irt | 312 +- static_core/plugins/ets/isa/isa.yaml | 19 +- .../ets_llvm_ir_constructor_gen.inl | 2 +- .../ets_llvm_ir_constructor_h_gen.inl | 88 +- .../ets/playground/backend/docker/config.yaml | 190 +- .../ets/playground/backend/pyproject.toml | 2 +- .../backend/src/arkts_playground/config.py | 9 +- .../src/arkts_playground/deps/runner.py | 2 +- .../playground/backend/tests/fixtures/app.py | 30 +- .../ets/playground/backend/tests/test_api.py | 18 +- .../playground/backend/tests/test_runner.py | 2 +- .../ets/playground/frontend/public/env.js | 18 - .../ets/playground/frontend/src/index.css | 4 - .../playground/frontend/src/models/logs.ts | 25 - .../src/pages/codeEditor/ArkTSEditor.test.tsx | 4 +- .../src/pages/codeEditor/ArkTSEditor.tsx | 30 - .../frontend/src/store/actions/code.ts | 3 - .../frontend/src/store/actions/logs.ts | 5 +- .../src/store/selectors/appState.test.ts | 1 - .../frontend/src/store/selectors/logs.test.ts | 10 - .../frontend/src/store/selectors/logs.ts | 4 +- .../frontend/src/store/slices/logs.ts | 21 +- .../ets/playground/frontend/tsconfig.json | 3 +- .../plugins/ets/runtime/CMakeLists.txt | 57 +- static_core/plugins/ets/runtime/ani/ani.h | 956 +--- .../plugins/ets/runtime/ani/ani_helpers.cpp | 487 -- .../plugins/ets/runtime/ani/ani_helpers.h | 24 - .../ets/runtime/ani/ani_interaction_api.cpp | 1448 ++--- .../plugins/ets/runtime/ani/ani_mangle.cpp | 42 +- .../plugins/ets/runtime/ani/ani_options.cpp | 96 - .../plugins/ets/runtime/ani/ani_options.h | 81 +- .../ets/runtime/ani/ani_options_parser.cpp | 237 - .../ets/runtime/ani/ani_options_parser.h | 122 +- .../plugins/ets/runtime/ani/ani_vm_api.cpp | 94 +- .../plugins/ets/runtime/ani/docs/mangling.md | 188 - .../ets/runtime/ani/scoped_objects_fix.h | 81 +- .../ets/runtime/asm_defines/asm_defines.def | 36 +- .../plugins/ets/runtime/asm_defines/defines.h | 4 - .../plugins/ets/runtime/ets_annotation.cpp | 26 +- .../plugins/ets/runtime/ets_annotation.h | 6 +- .../ets/runtime/ets_class_linker_context.cpp | 38 +- .../ets/runtime/ets_class_linker_context.h | 2 +- .../runtime/ets_class_linker_extension.cpp | 217 +- .../ets/runtime/ets_class_linker_extension.h | 15 +- .../plugins/ets/runtime/ets_class_root.h | 5 +- .../ets/runtime/ets_compiler_intrinsics.yaml | 12 - .../plugins/ets/runtime/ets_coroutine.cpp | 63 +- .../plugins/ets/runtime/ets_coroutine.h | 10 +- .../plugins/ets/runtime/ets_entrypoints.cpp | 31 +- .../plugins/ets/runtime/ets_entrypoints.h | 5 +- .../plugins/ets/runtime/ets_entrypoints.yaml | 891 +--- .../plugins/ets/runtime/ets_exceptions.cpp | 3 +- .../plugins/ets/runtime/ets_exceptions.h | 32 +- .../ets/runtime/ets_language_context.h | 15 +- .../ets/runtime/ets_libbase_runtime.yaml | 1820 +------ .../plugins/ets/runtime/ets_mark_word.h | 4 +- .../plugins/ets/runtime/ets_modifiers.h | 28 + .../runtime/ets_namespace_manager_impl.cpp | 2 +- .../ets/runtime/ets_namespace_manager_impl.h | 10 +- .../plugins/ets/runtime/ets_napi_env.cpp | 6 +- .../plugins/ets/runtime/ets_napi_env.h | 13 +- .../runtime/ets_native_library_provider.cpp | 27 +- .../ets/runtime/ets_native_library_provider.h | 10 +- .../ets/runtime/ets_panda_file_items.h | 41 +- .../ets/runtime/ets_platform_types.cpp | 247 +- .../plugins/ets/runtime/ets_platform_types.h | 211 +- .../ets/runtime/ets_runtime_interface.cpp | 156 +- .../ets/runtime/ets_runtime_interface.h | 26 +- .../plugins/ets/runtime/ets_stdlib_cache.cpp | 78 - .../plugins/ets/runtime/ets_stdlib_cache.h | 38 - .../plugins/ets/runtime/ets_stubs-inl.h | 5 +- static_core/plugins/ets/runtime/ets_stubs.cpp | 528 +- static_core/plugins/ets/runtime/ets_stubs.h | 32 - static_core/plugins/ets/runtime/ets_utils.cpp | 138 - static_core/plugins/ets/runtime/ets_utils.h | 10 - static_core/plugins/ets/runtime/ets_vm.cpp | 357 +- static_core/plugins/ets/runtime/ets_vm.h | 85 +- .../plugins/ets/runtime/ets_vm_api.cpp | 20 +- static_core/plugins/ets/runtime/ets_vm_api.h | 6 +- .../ets/runtime/ets_vtable_builder.cpp | 95 +- .../finalization_registry_manager.cpp | 14 +- .../ets/runtime/hybrid/mem/external-gc.cpp | 88 +- .../ets/runtime/hybrid/mem/external-gc.h | 27 - .../hybrid/mem/static_object_operator.cpp | 91 +- .../hybrid/mem/static_object_operator.h | 26 +- .../ets/runtime/integrate/ets_ani_expo.cpp | 12 - .../ets/runtime/integrate/ets_ani_expo.h | 1 - .../plugins/ets/runtime/interop_js/BUILD.gn | 2 +- .../ets/runtime/interop_js/CMakeLists.txt | 15 +- .../runtime/interop_js/call/arg_convertors.h | 10 +- .../ets/runtime/interop_js/call/call_ets.cpp | 9 +- .../ets/runtime/interop_js/call/call_js.cpp | 19 +- .../runtime/interop_js/call/proto_reader.h | 4 +- .../ets/runtime/interop_js/code_scopes-inl.h | 57 - .../ets/runtime/interop_js/code_scopes.cpp | 58 - .../ets/runtime/interop_js/code_scopes.h | 58 +- .../ets_interop_runtime_interface-inl.h | 2 +- .../ets_proxy/ets_class_wrapper.cpp | 176 +- .../interop_js/ets_proxy/ets_class_wrapper.h | 32 +- .../ets_proxy/ets_field_wrapper.cpp | 6 +- .../interop_js/ets_proxy/ets_method_set.cpp | 13 +- .../interop_js/ets_proxy/ets_method_set.h | 23 +- .../ets_proxy/ets_method_wrapper.cpp | 2 +- .../interop_js/ets_proxy/ets_proxy.cpp | 13 +- .../ets_proxy/shared_reference_storage.cpp | 30 +- .../shared_reference_storage_verifier.cpp | 7 +- .../ets/runtime/interop_js/ets_vm_plugin.cpp | 10 +- .../runtime/interop_js/event_loop_module.cpp | 55 +- .../runtime/interop_js/event_loop_module.h | 18 +- .../ets/runtime/interop_js/interop_common.cpp | 7 - .../ets/runtime/interop_js/interop_common.h | 20 +- .../runtime/interop_js/interop_context.cpp | 53 +- .../ets/runtime/interop_js/interop_context.h | 6 +- .../intrinsics/std_js_jsruntime.cpp | 89 +- .../intrinsics/std_js_jsruntime.yaml | 166 +- .../interop_js/intrinsics_api_impl.cpp | 642 +-- .../runtime/interop_js/intrinsics_api_impl.h | 70 +- .../ets/runtime/interop_js/js_convert.h | 81 +- .../ets/runtime/interop_js/js_convert_base.h | 3 + .../ets/runtime/interop_js/js_job_queue.cpp | 14 +- .../runtime/interop_js/js_proxy/js_proxy.cpp | 3 - .../ets/runtime/interop_js/js_refconvert.cpp | 27 - .../interop_js/js_refconvert_builtin.cpp | 93 +- .../interop_js/js_refconvert_function.cpp | 88 +- .../interop_js/js_refconvert_function.h | 13 +- .../interop_js/js_refconvert_record.cpp | 8 +- .../interop_js/js_refconvert_tuple.cpp | 221 - .../runtime/interop_js/js_refconvert_tuple.h | 58 - .../interop_js/js_refconvert_union.cpp | 41 - .../runtime/interop_js/js_refconvert_union.h | 37 - .../ets/runtime/interop_js/js_value.cpp | 26 +- .../plugins/ets/runtime/interop_js/js_value.h | 67 - .../interop_js/napi_impl/ark_napi_helper.h | 55 - .../napi_impl/detail/enumerate_napi.h | 2 - .../interop_js/napi_impl/napi_impl.cpp | 25 +- .../interop_js/native_api/arkts_esvalue.cpp | 106 + .../interop_js/native_api/arkts_esvalue.h | 25 + .../native_api/arkts_interop_js_api_impl.cpp | 208 - .../native_api/arkts_interop_js_api_impl.h | 53 - .../interop_js/sts_vm_interface_impl.cpp | 27 - .../interop_js/sts_vm_interface_impl.h | 3 - .../runtime/interop_js/timer_helper/timer.cpp | 7 +- .../runtime/interop_js/timer_helper/timer.h | 3 + .../ets/runtime/interop_js/timer_module.cpp | 12 +- .../ets/runtime/interop_js/xgc/xgc.cpp | 58 +- .../plugins/ets/runtime/interop_js/xgc/xgc.h | 13 - .../runtime/interop_js/xgc/xgc_vm_adaptor.cpp | 13 - .../runtime/interop_js/xgc/xgc_vm_adaptor.h | 11 - .../interop_js/xref_object_operator.cpp | 580 -- .../runtime/interop_js/xref_object_operator.h | 83 - .../ets/runtime/interpreter/any_opcodes.inc | 103 - .../ets/runtime/interpreter/interpreter-inl.h | 25 - .../intrinsics/compiler_intrinsics.cpp | 7 - .../ets/runtime/intrinsics/escompat_Array.cpp | 689 +-- .../intrinsics/escompat_ArrayBuffer.cpp | 34 +- .../ets/runtime/intrinsics/escompat_Map.cpp | 55 - .../runtime/intrinsics/escompat_Reflect.cpp | 10 +- .../runtime/intrinsics/escompat_RegExp.cpp | 449 ++ .../ets/runtime/intrinsics/escompat_Set.cpp | 21 - .../intrinsics/escompat_TypedArrays.cpp | 1198 +---- .../runtime/intrinsics/escompat_taskpool.cpp | 24 +- .../helpers/array_buffer_helper.cpp | 312 +- .../intrinsics/helpers/array_buffer_helper.h | 2 +- .../helpers/ets_intrinsics_helpers.cpp | 3 +- .../helpers/ets_intrinsics_helpers.h | 7 +- .../helpers/ets_to_string_cache.cpp | 6 +- .../intrinsics/helpers/json_helper.cpp | 91 +- .../runtime/intrinsics/helpers/json_helper.h | 1 - .../intrinsics/std_concurrency_Launch.cpp | 75 +- .../ets/runtime/intrinsics/std_core.cpp | 181 +- .../runtime/intrinsics/std_core_AbcFile.cpp | 26 +- .../intrinsics/std_core_AbcRuntimeLinker.cpp | 2 +- .../intrinsics/std_core_AniHelpers.cpp | 11 - .../runtime/intrinsics/std_core_Arrays.cpp | 183 +- .../ets/runtime/intrinsics/std_core_Char.cpp | 5 - .../runtime/intrinsics/std_core_Double.cpp | 16 +- .../intrinsics/std_core_ExclusiveLauncher.cpp | 133 +- .../ets/runtime/intrinsics/std_core_Float.cpp | 5 + .../ets/runtime/intrinsics/std_core_Job.cpp | 2 +- .../runtime/intrinsics/std_core_Promise.cpp | 31 +- .../runtime/intrinsics/std_core_Runtime.cpp | 29 +- .../runtime/intrinsics/std_core_String.cpp | 372 +- .../intrinsics/std_core_SyncPrimitives.cpp | 42 - .../ets/runtime/intrinsics/std_core_Type.cpp | 67 +- .../intrinsics/std_core_TypeCreator.cpp | 8 +- .../std_core_finalization_registry.cpp | 6 +- .../ets/runtime/intrinsics/std_core_gc.cpp | 22 +- .../ets/runtime/intrinsics/std_math.cpp | 34 +- .../ets/runtime/intrinsics/unsafe_memory.cpp | 98 +- .../ets/runtime/intrinsics_declaration.h | 4 - .../ets/runtime/libani_helpers/CMakeLists.txt | 7 +- .../libani_helpers/ani_signature_builder.cpp | 142 +- .../libani_helpers/ani_signature_builder.h | 17 +- .../libani_helpers/concurrency_helpers.cpp | 39 - .../libani_helpers/concurrency_helpers.h | 8 - .../libani_helpers/interop_js/BUILD.gn | 1 - .../interop_js/arkts_esvalue.cpp | 4 +- .../libani_helpers/interop_js/arkts_esvalue.h | 5 +- .../interop_js/arkts_interop_js_api.cpp | 79 - .../interop_js/arkts_interop_js_api.h | 63 - .../interop_js/hybridgref_ani.cpp | 20 +- .../interop_js/hybridgref_napi.cpp | 9 - .../plugins/ets/runtime/mem/ets_gc_stat.cpp | 45 - .../plugins/ets/runtime/mem/ets_gc_stat.h | 41 - .../plugins/ets/runtime/mem/ets_reference.h | 57 +- .../runtime/mem/ets_reference_processor.cpp | 27 +- .../ets/runtime/mem/ets_reference_processor.h | 10 +- .../plugins/ets/runtime/napi/CMakeLists.txt | 14 + .../arch/amd64/ets_async_entry_point_amd64.S | 0 .../arch/amd64/ets_napi_entry_point_amd64.S | 0 .../arch/arm32/ets_async_entry_point_arm32.S | 0 .../arm32/ets_async_entry_point_arm32hf.S | 0 .../arch/arm32/ets_napi_entry_point_arm32.S | 0 .../arch/arm32/ets_napi_entry_point_arm32hf.S | 0 .../arm64/ets_async_entry_point_aarch64.S | 0 .../arch/arm64/ets_napi_entry_point_aarch64.S | 0 .../plugins/ets/runtime/napi/ets_mangle.cpp | 84 + .../plugins/ets/runtime/napi/ets_mangle.h | 30 + .../plugins/ets/runtime/napi/ets_napi.h | 1595 ++++++ .../ets/runtime/napi/ets_napi_helpers.cpp | 481 ++ .../ets/runtime/napi/ets_napi_helpers.h | 24 + .../ets/runtime/napi/ets_napi_internal.h | 29 + .../napi/ets_napi_invoke_interface.cpp | 358 ++ .../runtime/napi/ets_napi_invoke_interface.h | 28 + .../ets/runtime/napi/ets_napi_macros.h | 139 + .../napi/ets_napi_native_interface.cpp | 3111 +++++++++++ .../runtime/napi/ets_napi_native_interface.h | 24 + .../ets/runtime/napi/ets_scoped_objects_fix.h | 348 ++ .../ets/runtime/napi/etsnative/BUILD.gn | 45 + .../ets/runtime/napi/etsnative/CMakeLists.txt | 25 + .../ets/runtime/napi/etsnative/etsnative.cpp | 34 + .../plugins/ets/runtime/product_options.h | 53 - .../escompat => runtime}/regexp/regexp.cpp | 36 +- .../plugins/ets/runtime/regexp/regexp.h | 57 + .../plugins/ets/runtime/regexp/regexp_16.cpp | 141 + .../plugins/ets/runtime/regexp/regexp_16.h | 35 + .../plugins/ets/runtime/regexp/regexp_8.cpp | 135 + .../plugins/ets/runtime/regexp/regexp_8.h | 35 + .../ets/runtime/regexp/regexp_executor.cpp | 94 + .../ets/runtime/regexp/regexp_executor.h | 46 + .../ets/runtime/static_object_accessor.cpp | 116 - .../ets/runtime/static_object_accessor.h | 45 - .../ets/runtime/static_type_converter.cpp | 133 - .../ets/runtime/static_type_converter.h | 35 - .../plugins/ets/runtime/tooling/helpers.h | 4 +- .../runtime/types/ets_abc_runtime_linker.h | 8 - .../plugins/ets/runtime/types/ets_array.h | 5 - .../ets/runtime/types/ets_arraybuffer.h | 18 +- .../ets/runtime/types/ets_atomic_flag.h | 8 +- .../ets/runtime/types/ets_atomic_int.h | 132 - .../plugins/ets/runtime/types/ets_bigint.h | 24 +- .../plugins/ets/runtime/types/ets_class.cpp | 290 +- .../plugins/ets/runtime/types/ets_class.h | 168 +- .../plugins/ets/runtime/types/ets_error.h | 2 - .../ets/runtime/types/ets_error_options.h | 12 +- .../ets/runtime/types/ets_escompat_array.h | 109 +- .../plugins/ets/runtime/types/ets_field.h | 5 +- .../plugins/ets/runtime/types/ets_job.h | 2 +- .../plugins/ets/runtime/types/ets_map.cpp | 281 - .../plugins/ets/runtime/types/ets_map.h | 245 - .../plugins/ets/runtime/types/ets_method.cpp | 50 +- .../plugins/ets/runtime/types/ets_method.h | 60 +- .../ets/runtime/types/ets_method_signature.h | 17 +- .../plugins/ets/runtime/types/ets_module.h | 4 +- .../plugins/ets/runtime/types/ets_namespace.h | 9 +- .../plugins/ets/runtime/types/ets_object.h | 6 +- .../plugins/ets/runtime/types/ets_promise.cpp | 18 +- .../plugins/ets/runtime/types/ets_promise.h | 26 +- .../plugins/ets/runtime/types/ets_set.h | 45 - .../runtime/types/ets_stacktrace_element.h | 10 +- .../plugins/ets/runtime/types/ets_string.cpp | 350 -- .../plugins/ets/runtime/types/ets_string.h | 416 +- .../ets/runtime/types/ets_string_builder.cpp | 27 +- .../ets/runtime/types/ets_sync_primitives.cpp | 75 - .../ets/runtime/types/ets_sync_primitives.h | 161 +- .../plugins/ets/runtime/types/ets_taskpool.h | 28 - .../plugins/ets/runtime/types/ets_tuple.h | 199 - .../plugins/ets/runtime/types/ets_type.h | 34 +- .../plugins/ets/runtime/types/ets_typeapi.h | 31 +- .../ets/runtime/types/ets_typeapi_create.cpp | 2 +- .../ets/runtime/types/ets_typeapi_method.h | 8 - .../ets/runtime/types/ets_typed_arrays.h | 12 +- .../runtime/types/ets_typed_unsigned_arrays.h | 24 +- .../plugins/ets/runtime/types/ets_value.h | 25 +- .../ets/runtime/types/ets_weak_reference.cpp | 32 + .../ets/runtime/types/ets_weak_reference.h | 22 +- .../unhandled_object_manager.cpp | 309 -- .../unhandled_object_manager.h | 89 - static_core/plugins/ets/runtime_options.yaml | 10 +- static_core/plugins/ets/sdk/CMakeLists.txt | 1 + .../plugins/ets/sdk/api/@ohos.base.ets | 12 +- .../plugins/ets/sdk/api/@ohos.buffer.ets | 1821 +++---- static_core/plugins/ets/sdk/api/@ohos.uri.ets | 1284 ++--- static_core/plugins/ets/sdk/api/@ohos.url.ets | 1198 ++--- .../ets/sdk/api/@ohos.util.ArrayList.ets | 115 +- .../plugins/ets/sdk/api/@ohos.util.Deque.ets | 89 +- .../ets/sdk/api/@ohos.util.HashMap.ets | 18 +- .../ets/sdk/api/@ohos.util.HashSet.ets | 14 +- .../ets/sdk/api/@ohos.util.LightWeightMap.ets | 111 +- .../ets/sdk/api/@ohos.util.LightWeightSet.ets | 90 +- .../ets/sdk/api/@ohos.util.LinkedList.ets | 192 +- .../plugins/ets/sdk/api/@ohos.util.List.ets | 142 +- .../ets/sdk/api/@ohos.util.PlainArray.ets | 139 +- .../plugins/ets/sdk/api/@ohos.util.Queue.ets | 14 +- .../plugins/ets/sdk/api/@ohos.util.Stack.ets | 18 +- .../ets/sdk/api/@ohos.util.TreeMap.ets | 19 +- .../ets/sdk/api/@ohos.util.TreeSet.ets | 17 +- .../plugins/ets/sdk/api/@ohos.util.ets | 269 +- .../plugins/ets/sdk/api/@ohos.util.json.ets | 57 +- .../plugins/ets/sdk/api/@ohos.util.stream.ets | 2305 ++------ static_core/plugins/ets/sdk/api/@ohos.xml.ets | 882 ++-- .../plugins/ets/sdk/api/UtilHelper.ets | 4 +- .../ets/sdk/arkts/@arkts.collections.ets | 427 +- .../ets/sdk/arkts/@arkts.math.Decimal.ets | 2430 ++------- static_core/plugins/ets/sdk/arktsconfig.json | 2 +- .../plugins/ets/sdk/native/CMakeLists.txt | 2 - .../plugins/ets/sdk/native/api/Util.cpp | 154 +- static_core/plugins/ets/sdk/native/api/Util.h | 39 +- .../ets/sdk/native/api/ani_stringdecoder.cpp | 114 +- .../ets/sdk/native/api/ani_stringdecoder.h | 3 + .../ets/sdk/native/api/ani_textdecoder.cpp | 139 +- .../ets/sdk/native/api/ani_textdecoder.h | 10 +- .../ets/sdk/native/api/ani_textencoder.cpp | 115 +- .../ets/sdk/native/api/ani_textencoder.h | 6 +- .../ets/sdk/native/api/ani_xmlpullparser.cpp | 1405 ----- .../ets/sdk/native/api/ani_xmlpullparser.h | 212 - static_core/plugins/ets/sdk/native/main.cpp | 82 +- static_core/plugins/ets/stdlib/BUILD.gn | 9 +- .../plugins/ets/stdlib/escompat/Array.ets | 633 ++- .../ets/stdlib/escompat/ArrayBuffer.ets | 55 +- .../plugins/ets/stdlib/escompat/ArrayLike.ets | 6 +- .../plugins/ets/stdlib/escompat/Atomics.ets | 302 +- .../plugins/ets/stdlib/escompat/BigInt.ets | 78 +- .../plugins/ets/stdlib/escompat/DataView.ets | 456 +- .../plugins/ets/stdlib/escompat/Date.ets | 921 +--- .../plugins/ets/stdlib/escompat/Error.ets | 21 +- .../ets/stdlib/escompat/ErrorHandler.ets | 77 - .../plugins/ets/stdlib/escompat/Errors.ets | 13 - .../plugins/ets/stdlib/escompat/Functions.ets | 66 +- .../plugins/ets/stdlib/escompat/Global.ets | 352 +- .../plugins/ets/stdlib/escompat/Map.ets | 160 +- .../plugins/ets/stdlib/escompat/Math.ets | 104 +- .../plugins/ets/stdlib/escompat/Process.ets | 293 +- .../plugins/ets/stdlib/escompat/Proxy.ets | 668 +++ .../ets/stdlib/escompat/ReadonlyArray.ets | 4 +- .../core => escompat}/ReadonlyArrayProxy.ets | 23 +- .../plugins/ets/stdlib/escompat/Reflect.ets | 672 +++ .../plugins/ets/stdlib/escompat/RegExp.ets | 951 +--- .../ets/stdlib/escompat/RejectedHandler.ets | 50 +- .../plugins/ets/stdlib/escompat/Set.ets | 9 +- .../ets/stdlib/escompat/TypedArrays.ets | 3430 ++++++------ .../ets/stdlib/escompat/TypedUArrays.ets | 2590 ++++----- .../plugins/ets/stdlib/escompat/WeakMap.ets | 4 +- .../plugins/ets/stdlib/escompat/deepcopy.ets | 47 +- .../plugins/ets/stdlib/escompat/json.ets | 1117 +--- .../plugins/ets/stdlib/escompat/taskpool.ets | 627 +-- .../ets/stdlib/native/core/IntlCollator.cpp | 20 +- .../stdlib/native/core/IntlDateTimeFormat.cpp | 92 +- .../stdlib/native/core/IntlDisplayNames.cpp | 22 +- .../native/core/IntlFormattersCache.cpp | 26 +- .../stdlib/native/core/IntlFormattersCache.h | 1 - .../ets/stdlib/native/core/IntlListFormat.cpp | 33 +- .../ets/stdlib/native/core/IntlLocale.cpp | 43 +- .../stdlib/native/core/IntlLocaleMatch.cpp | 55 +- .../ets/stdlib/native/core/IntlLocaleMatch.h | 8 +- .../stdlib/native/core/IntlNumberFormat.cpp | 110 +- .../stdlib/native/core/IntlPluralRules.cpp | 36 +- .../native/core/IntlRelativeTimeFormat.cpp | 97 +- .../ets/stdlib/native/core/IntlSegmenter.cpp | 42 +- .../stdlib/native/core/stdlib_ani_helpers.cpp | 5 +- .../stdlib/native/core/stdlib_ani_helpers.h | 4 +- .../ets/stdlib/native/escompat/Process.cpp | 199 +- .../ets/stdlib/native/escompat/RegExp.cpp | 430 -- .../ets/stdlib/native/escompat/RegExp.h | 27 - .../stdlib/native/escompat/regexp/regexp.h | 66 - .../native/escompat/regexp/regexp_16.cpp | 233 - .../stdlib/native/escompat/regexp/regexp_16.h | 40 - .../native/escompat/regexp/regexp_8.cpp | 227 - .../stdlib/native/escompat/regexp/regexp_8.h | 41 - .../escompat/regexp/regexp_exec_result.h | 39 - .../ets/stdlib/native/init_native_methods.cpp | 2 - .../plugins/ets/stdlib/package_stdlib.py | 163 - .../plugins/ets/stdlib/package_stdlib.sh | 31 + .../std/annotations/moduleDeclaration.ets | 21 - .../ets/stdlib/std/concurrency/AsyncLock.ets | 99 +- .../std/concurrency/AsyncLockManager.ets | 62 +- .../std/concurrency/ConcurrencyHelpers.ets | 21 - .../ets/stdlib/std/concurrency/EventLoop.ets | 1 + .../ets/stdlib/std/concurrency/Launch.ets | 96 +- .../ets/stdlib/std/concurrency/Message.ets | 138 - .../stdlib/std/concurrency/MessageHandler.ets | 154 - .../stdlib/std/concurrency/WorkerLocal.ets | 102 - .../ets/stdlib/std/containers/AVLTree.ets | 424 ++ .../stdlib/std/containers/ArrayAsList.ets.j2 | 386 +- .../std/containers/ArrayAsList.ets.stub | 6 +- .../stdlib/std/containers/ArrayAsListInt.ets | 489 +- .../std/containers/ArrayAsListObject.ets | 314 ++ .../std/containers/ArrayAsListString.ets | 489 +- .../std/containers/ArrayBlockingQueue.ets | 414 +- .../stdlib/std/containers/BlockingQueue.ets | 121 +- .../std/containers/ConcurrencyHelpers.ets | 27 - .../std/containers/ConcurrentHashMap.ets | 1063 ++-- .../stdlib/std/containers/ConcurrentSet.ets | 302 +- .../std/containers/LinkedBlockingQueue.ets | 573 +- .../ets/stdlib/std/containers/List.ets.j2 | 133 +- .../ets/stdlib/std/containers/ListInt.ets | 132 +- .../ets/stdlib/std/containers/ListObject.ets | 132 +- .../ets/stdlib/std/containers/ListString.ets | 133 +- .../stdlib/std/containers/UndefinableArray.j2 | 225 +- .../std/containers/UndefinableObjectArray.ets | 239 +- .../std/containers/UndefinableStringArray.ets | 256 +- .../plugins/ets/stdlib/std/core/AbcFile.ets | 11 +- .../ets/stdlib/std/core/AbcRuntimeLinker.ets | 21 - .../plugins/ets/stdlib/std/core/Boolean.ets | 99 +- .../plugins/ets/stdlib/std/core/Box.ets | 2 +- .../ets/stdlib/std/core/BuiltinArray.ets | 1321 +++-- .../std/core/BuiltinArrayAlgorithms.ets | 206 +- .../ets/stdlib/std/core/BuiltinArraySort.ets | 2763 +++++++--- .../plugins/ets/stdlib/std/core/Byte.ets | 119 +- .../plugins/ets/stdlib/std/core/Char.ets | 110 +- .../plugins/ets/stdlib/std/core/Class.ets | 4 +- .../plugins/ets/stdlib/std/core/Console.ets | 443 +- .../ets/stdlib/std/core/ConsoleHelper.ets | 116 +- .../stdlib/std/core/CreateFromJSONValue.ets | 181 - .../ets/stdlib/std/core/DateTimeFormat.ets | 137 +- .../plugins/ets/stdlib/std/core/Double.ets | 232 +- .../plugins/ets/stdlib/std/core/EAWorker.ets | 681 +-- .../plugins/ets/stdlib/std/core/Errors.ets | 30 +- .../ets/stdlib/std/core/Exceptions.ets | 100 +- .../plugins/ets/stdlib/std/core/Field.ets | 15 +- .../stdlib/std/core/FinalizationRegistry.ets | 10 +- .../plugins/ets/stdlib/std/core/Float.ets | 118 +- .../plugins/ets/stdlib/std/core/Function.ets | 171 +- .../plugins/ets/stdlib/std/core/GC.ets | 68 +- .../plugins/ets/stdlib/std/core/Int.ets | 117 +- .../plugins/ets/stdlib/std/core/Job.ets | 2 +- .../plugins/ets/stdlib/std/core/Json.ets | 65 +- .../plugins/ets/stdlib/std/core/Locale.ets | 18 +- .../plugins/ets/stdlib/std/core/Long.ets | 119 +- .../stdlib/std/core/MemoryRuntimeLinker.ets | 2 +- .../plugins/ets/stdlib/std/core/Method.ets | 40 +- .../plugins/ets/stdlib/std/core/Null.ets | 26 - .../plugins/ets/stdlib/std/core/NullValue.ets | 26 + .../ets/stdlib/std/core/NumberFormat.ets | 37 +- .../plugins/ets/stdlib/std/core/Numeric.ets | 54 - .../plugins/ets/stdlib/std/core/Object.ets | 70 +- .../plugins/ets/stdlib/std/core/Parameter.ets | 2 +- .../ets/stdlib/std/core/PluralRules.ets | 35 +- .../plugins/ets/stdlib/std/core/Promise.ets | 215 +- .../plugins/ets/stdlib/std/core/Proxy.ets | 973 ---- .../stdlib/std/core/RelativeTimeFormat.ets | 60 +- .../plugins/ets/stdlib/std/core/Runtime.ets | 89 +- .../plugins/ets/stdlib/std/core/Segmenter.ets | 8 +- .../plugins/ets/stdlib/std/core/Short.ets | 111 +- .../plugins/ets/stdlib/std/core/String.ets | 219 +- .../ets/stdlib/std/core/SyncPrimitives.ets | 88 +- .../plugins/ets/stdlib/std/core/Type.ets | 155 +- .../ets/stdlib/std/core/TypeCreator.ets | 153 +- .../plugins/ets/stdlib/std/core/Value.ets | 143 +- .../plugins/ets/stdlib/std/core/Void.ets | 1 - .../ets/stdlib/std/debug/RuntimeDebug.ets | 25 - .../std/debug/concurrency/CoroutineExtras.ets | 14 - .../plugins/ets/stdlib/std/hiddable_APIs.json | 213 - .../ets/stdlib/std/interop/ESValue.ets | 163 +- .../std/interop/InteropSerializeHelper.ets | 91 - .../ets/stdlib/std/interop/js/ESError.ets | 12 +- .../std/interop/js/InteropTransferHelper.ets | 30 +- .../ets/stdlib/std/interop/js/JSRuntime.ets | 262 +- .../stdlib/std/interop/js/PromiseInterop.ets | 4 +- .../plugins/ets/stdlib/std/math/math.ets | 189 +- .../plugins/ets/stdlib/std/testing/README.md | 20 +- .../ets/stdlib/std/testing/arktest.ets | 473 +- static_core/plugins/ets/subproject_sources.gn | 60 +- .../ets/templates/stdlib/Array_builtin.erb | 54 +- .../stdlib/Array_builtin_algorithms.ets.j2 | 134 +- .../stdlib/Array_builtin_sort.ets.j2 | 276 +- .../ets/templates/stdlib/Array_code.rb | 2 +- .../ets/templates/stdlib/Array_common.erb | 180 +- .../stdlib/Array_common_top_scope.erb | 6 +- .../ets/templates/stdlib/Array_escompat.erb | 459 +- .../ets/templates/stdlib/Array_header.erb | 4 - .../ets/templates/stdlib/DataView.ets.j2 | 91 +- .../ets/templates/stdlib/Function.ets.j2 | 29 +- .../stdlib/InteropTransferHelper.ets.j2 | 10 +- .../ets/templates/stdlib/typedArray.ets.j2 | 693 ++- .../ets/templates/stdlib/typedUArray.ets.j2 | 631 +-- static_core/plugins/ets/tests/CMakeLists.txt | 92 +- .../plugins/ets/tests/ani/CMakeLists.txt | 1 - .../ets/tests/ani/ani_gtest/ani_gtest.h | 10 +- .../plugins/ets/tests/ani/app/CMakeLists.txt | 58 - .../plugins/ets/tests/ani/app/app/app.ets | 30 - .../ets/tests/ani/app/arktsconfig.json | 5 - .../ets/tests/ani/app/interface/ability.ets | 18 - .../plugins/ets/tests/ani/app/main.cpp | 275 - .../ets/tests/ani/app/plugin/plugin.cpp | 126 - .../ets/tests/ani/app/plugin/plugin.ets | 27 - .../ets/tests/ani/cmake/ani_tests.cmake | 10 +- .../tests/ani/fuzztest/common/test_common.h | 2 +- .../ets/tests/ani/tests/ani_c/CMakeLists.txt | 24 - .../ets/tests/ani/tests/ani_c/ani_ctest.cpp | 34 - .../ets/tests/ani/tests/ani_c/ani_ctest.ets | 19 - .../ets/tests/ani/tests/ani_c/lib/ani_clib.c | 26 - .../tests/ani/tests/any_ops/CMakeLists.txt | 41 - .../tests/any_ops/any_call_method_test.cpp | 71 - .../tests/any_ops/any_call_method_test.ets | 26 - .../tests/ani/tests/any_ops/any_call_test.cpp | 141 - .../tests/ani/tests/any_ops/any_call_test.ets | 69 - .../tests/any_ops/any_get_property_test.cpp | 203 - .../tests/any_ops/any_get_property_test.ets | 55 - .../ani/tests/any_ops/any_instanceof_test.cpp | 61 - .../tests/ani/tests/any_ops/any_new_test.cpp | 53 - .../tests/ani/tests/any_ops/any_new_test.ets | 24 - .../tests/any_ops/any_set_property_test.cpp | 193 - .../tests/any_ops/any_set_property_test.ets | 58 - .../tests/ani/tests/array_ops/CMakeLists.txt | 22 +- .../ani_gtest_array_ops.h | 0 .../array_compatibility_test.cpp | 16 +- .../array_compatibility_test.ets | 8 +- .../tests/array_ops/array_get_length_test.cpp | 58 +- .../tests/array_ops/array_get_ref_test.cpp | 4 +- .../tests/array_ops/array_get_ref_test.ets | 4 +- .../tests/array_ops/array_get_set_test.cpp | 125 - .../ani/tests/array_ops/array_gtest_helper.h | 73 - .../tests/array_ops/array_managed_test.cpp | 111 - .../tests/array_ops/array_managed_test.ets | 32 - .../tests/array_ops/array_new_ref_test.cpp | 27 +- .../tests/array_ops/array_push_pop_test.cpp | 95 - .../array_ops/array_region_boolean_test.cpp | 34 +- .../array_ops/array_region_boolean_test.ets | 22 +- .../array_ops/array_region_byte_test.cpp | 38 +- .../array_ops/array_region_byte_test.ets | 24 +- .../array_ops/array_region_char_test.cpp | 18 +- .../array_ops/array_region_char_test.ets | 24 +- .../array_ops/array_region_double_test.cpp | 38 +- .../array_ops/array_region_double_test.ets | 48 +- .../array_ops/array_region_float_test.cpp | 38 +- .../array_ops/array_region_float_test.ets | 48 +- .../tests/array_ops/array_region_int_test.cpp | 38 +- .../tests/array_ops/array_region_int_test.ets | 26 +- .../array_ops/array_region_long_test.cpp | 38 +- .../array_ops/array_region_long_test.ets | 30 +- .../array_ops/array_region_short_test.cpp | 38 +- .../array_ops/array_region_short_test.ets | 26 +- .../tests/array_ops/array_set_ref_test.cpp | 83 +- .../tests/array_ops/array_set_ref_test.ets | 37 +- .../array_ops/fixedarray_new_ref_test.cpp | 93 +- .../tests/arraybuffer_ops/accessors_test.cpp | 8 +- .../tests/arraybuffer_ops/accessors_test.ets | 2 +- .../arraybuffer_get_info_test.cpp | 6 +- .../tests/ani/tests/bind_ops/CMakeLists.txt | 6 - .../class_bind_native_methods_test.cpp | 167 +- .../class_bind_native_methods_test.ets | 20 +- .../class_bind_static_native_methods_test.cpp | 135 - .../class_bind_static_native_methods_test.ets | 34 - .../module_bind_native_functions_test.cpp | 106 +- .../module_bind_native_functions_test.ets | 5 - .../namespace_bind_native_functions_test.cpp | 95 +- .../namespace_bind_native_functions_test.ets | 6 - .../tests/ani/tests/bridges/CMakeLists.txt | 145 - .../tests/ani/tests/bridges/j2/arrays.cpp.j2 | 111 - .../tests/ani/tests/bridges/j2/arrays.ets.j2 | 48 - .../tests/ani/tests/bridges/j2/returns.cpp.j2 | 106 - .../tests/ani/tests/bridges/j2/returns.ets.j2 | 50 - .../ani/tests/bridges/j2/returns_ref.cpp.j2 | 58 - .../ani/tests/bridges/j2/returns_ref.ets.j2 | 51 - .../tests/ani/tests/bridges/j2/types.cpp.j2 | 111 - .../tests/ani/tests/bridges/j2/types.ets.j2 | 82 - .../ani/tests/bridges/j2/types_ref.cpp.j2 | 122 - .../ani/tests/bridges/j2/types_ref.ets.j2 | 98 - .../tests/bridges/scripts/gen_test_files.py | 102 - .../tests/bridges/scripts/gen_test_files.sh | 36 - .../call_static_method_bool_test.cpp | 38 +- .../call_static_method_byte_test.cpp | 38 +- .../call_static_method_byte_test.ets | 12 +- .../call_static_method_char_test.cpp | 38 +- .../call_static_method_char_test.ets | 28 +- .../call_static_method_double_test.cpp | 38 +- .../call_static_method_float_test.cpp | 38 +- .../class_ops/call_static_method_int_test.cpp | 38 +- .../call_static_method_long_test.cpp | 38 +- .../class_ops/call_static_method_ref_test.cpp | 42 +- .../call_static_method_short_test.cpp | 38 +- .../call_static_method_short_test.ets | 12 +- .../call_static_method_void_test.cpp | 36 +- ...all_static_method_by_name_boolean_test.cpp | 84 +- ...s_call_static_method_by_name_byte_test.cpp | 74 +- ...s_call_static_method_by_name_byte_test.ets | 20 +- ...s_call_static_method_by_name_char_test.cpp | 96 +- ...s_call_static_method_by_name_char_test.ets | 48 +- ...call_static_method_by_name_double_test.cpp | 84 +- ..._call_static_method_by_name_float_test.cpp | 84 +- ...ss_call_static_method_by_name_int_test.cpp | 84 +- ...s_call_static_method_by_name_long_test.cpp | 84 +- ...ss_call_static_method_by_name_ref_test.cpp | 96 +- ..._call_static_method_by_name_short_test.cpp | 84 +- ..._call_static_method_by_name_short_test.ets | 20 +- ...s_call_static_method_by_name_void_test.cpp | 86 +- ...s_call_static_method_by_name_void_test.ets | 4 +- .../tests/class_ops/class_find_field_test.cpp | 22 +- .../tests/class_ops/class_find_field_test.ets | 4 +- ...lass_find_indexable_getter_setter_test.cpp | 22 +- .../class_ops/class_find_iterator_test.cpp | 10 +- .../class_find_method_in_module_test.cpp | 14 +- .../class_ops/class_find_method_test.cpp | 285 +- .../class_ops/class_find_method_test.ets | 61 +- .../class_find_setter_getter_test.cpp | 20 +- .../class_find_static_field_test.cpp | 6 +- .../class_get_static_field_boolean_test.cpp | 24 +- ...ass_get_static_field_by_name_bool_test.cpp | 24 +- ...ass_get_static_field_by_name_byte_test.cpp | 24 +- ...ass_get_static_field_by_name_char_test.cpp | 26 +- ...ass_get_static_field_by_name_char_test.ets | 4 +- ...s_get_static_field_by_name_double_test.cpp | 24 +- ...ss_get_static_field_by_name_float_test.cpp | 24 +- ...ss_get_static_field_by_name_float_test.ets | 8 +- ...lass_get_static_field_by_name_int_test.cpp | 24 +- ...ass_get_static_field_by_name_long_test.cpp | 24 +- ...lass_get_static_field_by_name_ref_test.cpp | 22 +- ...ss_get_static_field_by_name_short_test.cpp | 24 +- .../class_get_static_field_byte_test.cpp | 24 +- .../class_get_static_field_char_test.cpp | 22 +- .../class_get_static_field_char_test.ets | 7 +- .../class_get_static_field_double_test.cpp | 24 +- .../class_get_static_field_float_test.cpp | 24 +- .../class_get_static_field_float_test.ets | 14 +- .../class_get_static_field_int_test.cpp | 24 +- .../class_get_static_field_long_test.cpp | 24 +- .../class_get_static_field_ref_test.cpp | 22 +- .../class_get_static_field_short_test.cpp | 24 +- .../class_set_static_field_boolean_test.cpp | 22 +- ...ass_set_static_field_by_name_bool_test.cpp | 20 +- ...ass_set_static_field_by_name_byte_test.cpp | 20 +- ...ass_set_static_field_by_name_char_test.cpp | 22 +- ...s_set_static_field_by_name_double_test.cpp | 20 +- ...ss_set_static_field_by_name_float_test.cpp | 20 +- ...lass_set_static_field_by_name_int_test.cpp | 20 +- ...ass_set_static_field_by_name_long_test.cpp | 20 +- ...lass_set_static_field_by_name_ref_test.cpp | 20 +- ...ss_set_static_field_by_name_short_test.cpp | 20 +- .../class_set_static_field_byte_test.cpp | 22 +- .../class_set_static_field_char_test.cpp | 22 +- .../class_set_static_field_double_test.cpp | 20 +- .../class_set_static_field_float_test.cpp | 20 +- .../class_set_static_field_float_test.ets | 8 +- .../class_set_static_field_int_test.cpp | 20 +- .../class_set_static_field_long_test.cpp | 20 +- .../class_set_static_field_ref_test.cpp | 18 +- .../class_set_static_field_short_test.cpp | 22 +- .../enum_ops/enum_item_get_enum_test.ets | 8 +- .../enum_ops/enum_item_get_index_test.cpp | 16 +- .../enum_ops/enum_item_get_name_test.cpp | 12 +- .../enum_ops/enum_item_get_value_test.cpp | 16 +- .../ani/tests/enum_ops/get_enum_item_test.cpp | 28 +- .../tests/error_ops/error_handling_test.cpp | 17 +- .../ani/tests/examples/calls/example.cpp | 10 +- .../finalization_registry/fin_reg_test.cpp | 20 +- .../finalization_registry/fin_reg_test.ets | 2 +- .../ani/tests/find_ops/find_class_test.cpp | 10 +- .../ani/tests/find_ops/find_enum_test.cpp | 26 +- .../ani/tests/find_ops/find_module_test.cpp | 8 +- .../find_namespace_combine_scenes_test.cpp | 6 +- .../tests/find_ops/find_namespace_test.cpp | 18 +- .../ani/tests/fixedarray_ops/CMakeLists.txt | 75 - .../fixedarray_get_length_test.cpp | 89 - .../fixedarray_get_ref_test.cpp | 54 - .../fixedarray_get_ref_test.ets | 18 - .../fixedarray_new_ref_test.cpp | 210 - .../fixedarray_region_boolean_test.cpp | 179 - .../fixedarray_region_boolean_test.ets | 42 - .../fixedarray_region_byte_test.cpp | 233 - .../fixedarray_region_byte_test.ets | 49 - .../fixedarray_region_char_test.cpp | 188 - .../fixedarray_region_char_test.ets | 47 - .../fixedarray_region_double_test.cpp | 238 - .../fixedarray_region_double_test.ets | 50 - .../fixedarray_region_float_test.cpp | 235 - .../fixedarray_region_float_test.ets | 51 - .../fixedarray_region_int_test.cpp | 229 - .../fixedarray_region_int_test.ets | 49 - .../fixedarray_region_long_test.cpp | 226 - .../fixedarray_region_long_test.ets | 49 - .../fixedarray_region_short_test.cpp | 226 - .../fixedarray_region_short_test.ets | 49 - .../fixedarray_set_ref_test.cpp | 166 - .../fixedarray_set_ref_test.ets | 38 - .../function_call_boolean_test.cpp | 58 +- .../function_ops/function_call_byte_test.cpp | 58 +- .../function_ops/function_call_byte_test.ets | 20 +- .../function_ops/function_call_char_test.cpp | 58 +- .../function_ops/function_call_char_test.ets | 18 +- .../function_call_double_test.cpp | 58 +- .../function_ops/function_call_float_test.cpp | 58 +- .../function_ops/function_call_int_test.cpp | 58 +- .../function_ops/function_call_long_test.cpp | 58 +- .../function_ops/function_call_ref_test.cpp | 58 +- .../function_ops/function_call_short_test.cpp | 58 +- .../function_ops/function_call_short_test.ets | 20 +- .../function_ops/function_call_void_test.cpp | 82 +- .../gref_ops/global_reference_create_test.cpp | 10 +- .../gref_ops/global_reference_create_test.ets | 10 +- .../ani/tests/load_library/CMakeLists.txt | 41 - .../ets/tests/ani/tests/load_library/lib.cpp | 22 - .../local_scope_ops/create_local_scope.cpp | 8 +- .../tests/mangling/mangle_signature_test.cpp | 179 +- .../tests/mangling/mangle_signature_test.ets | 18 +- .../module_ops/module_find_class_test.cpp | 96 +- .../module_ops/module_find_class_test.ets | 2 +- .../module_find_combination_test.cpp | 30 +- .../module_ops/module_find_enum_test.cpp | 47 +- .../module_ops/module_find_function_test.cpp | 73 +- .../module_ops/module_find_function_test.ets | 14 +- .../module_ops/module_find_namespace_test.cpp | 50 +- .../module_ops/module_find_variable_test.cpp | 38 +- .../module_ops/module_find_variable_test.ets | 2 +- .../namespace_combinatorial_test.cpp | 98 +- .../namespace_find_class_test.cpp | 80 +- .../namespace_find_enum_test.cpp | 52 +- .../namespace_find_function_test.cpp | 62 +- .../namespace_find_function_test.ets | 13 +- .../namespace_find_namespace_test.cpp | 58 +- .../namespace_find_variable_test.cpp | 18 +- .../ani/tests/native_library/ctor_test.cpp | 4 +- .../tests/object_ops/ani_gtest_object_ops.h | 2 +- .../call_object_method_boolean_test.cpp | 38 +- .../call_object_method_byte_test.cpp | 36 +- .../call_object_method_byte_test.ets | 10 +- .../call_object_method_char_test.cpp | 38 +- .../call_object_method_char_test.ets | 12 +- .../call_object_method_double_test.cpp | 36 +- .../call_object_method_float_test.cpp | 36 +- .../call_object_method_float_test.ets | 2 +- .../call_object_method_int_test.cpp | 42 +- .../call_object_method_long_test.cpp | 34 +- .../call_object_method_short_test.cpp | 36 +- .../call_object_method_short_test.ets | 16 +- .../call_object_method_void_test.cpp | 50 +- ...bject_call_method_by_name_boolean_test.cpp | 138 +- .../object_call_method_by_name_byte_test.cpp | 144 +- .../object_call_method_by_name_byte_test.ets | 24 +- .../object_call_method_by_name_char_test.cpp | 142 +- .../object_call_method_by_name_char_test.ets | 20 +- ...object_call_method_by_name_double_test.cpp | 161 +- .../object_call_method_by_name_float_test.cpp | 158 +- .../object_call_method_by_name_int_test.cpp | 150 +- .../object_call_method_by_name_long_test.cpp | 158 +- .../object_call_method_by_name_ref_test.cpp | 92 +- .../object_call_method_by_name_short_test.cpp | 150 +- .../object_call_method_by_name_short_test.ets | 24 +- .../object_call_method_by_name_void_test.cpp | 200 +- .../object_call_method_ref_test.cpp | 34 +- .../object_call_method_ref_test.ets | 2 +- .../object_get_field_boolean_test.cpp | 2 +- .../object_ops/object_get_field_byte_test.cpp | 2 +- .../object_ops/object_get_field_char_test.cpp | 2 +- .../object_get_field_double_test.cpp | 2 +- .../object_get_field_float_test.cpp | 2 +- .../object_get_field_float_test.ets | 2 +- .../object_ops/object_get_field_int_test.cpp | 2 +- .../object_ops/object_get_field_long_test.cpp | 2 +- .../object_ops/object_get_field_ref_test.cpp | 2 +- .../object_get_field_short_test.cpp | 2 +- .../tests/object_ops/object_get_type_test.cpp | 4 +- .../object_ops/object_instance_of_test.cpp | 47 +- .../object_ops/object_instance_of_test.ets | 3 +- .../ani/tests/object_ops/object_new_test.cpp | 49 +- .../ani/tests/object_ops/object_new_test.ets | 24 +- .../object_set_field_boolean_test.cpp | 2 +- .../object_ops/object_set_field_byte_test.cpp | 2 +- .../object_ops/object_set_field_char_test.cpp | 2 +- .../object_set_field_double_test.cpp | 2 +- .../object_set_field_float_test.cpp | 2 +- .../object_set_field_float_test.ets | 4 +- .../object_ops/object_set_field_int_test.cpp | 2 +- .../object_ops/object_set_field_long_test.cpp | 2 +- .../object_ops/object_set_field_ref_test.cpp | 4 +- .../object_set_field_short_test.cpp | 2 +- .../object_set_property_by_name_char_test.ets | 8 +- .../object_set_property_by_name_ref_test.cpp | 6 - .../tests/ani/tests/options/CMakeLists.txt | 1 - .../ani/tests/options/logger/CMakeLists.txt | 8 +- .../ani_option_logger_parser_faild_test.cpp | 41 + ...on_logger_parser_wrong_ext_option_test.cpp | 41 - ...on_logger_parser_wrong_log_option_test.cpp | 43 - .../options/options_parser/CMakeLists.txt | 16 - .../ani_options_parser_test.cpp | 267 - .../tests/promise_ops/promise_reject_test.cpp | 18 +- .../tests/promise_ops/promise_reject_test.ets | 14 +- .../tests/ref_ops/reference_equals_test.cpp | 86 +- .../tests/ref_ops/reference_equals_test.ets | 43 +- .../tests/ref_ops/reference_is_null_test.cpp | 4 +- .../tests/ref_ops/reference_is_null_test.ets | 8 +- .../reference_is_nullish_value_test.cpp | 8 +- .../reference_is_nullish_value_test.ets | 8 +- .../ref_ops/reference_is_undefined_test.cpp | 77 +- .../ref_ops/reference_is_undefined_test.ets | 19 +- .../ref_ops/reference_strict_equals_test.cpp | 62 +- .../ref_ops/reference_strict_equals_test.ets | 23 +- .../tuplevalue_getitem_char_test.ets | 8 +- .../tuplevalue_getitem_float_test.ets | 2 +- .../tuple_ops/tuplevalue_getitem_ref_test.cpp | 44 +- .../tuple_ops/tuplevalue_getitem_ref_test.ets | 8 +- .../tuplevalue_getnumberofitem_test.ets | 4 +- .../tuplevalue_setitem_float_test.ets | 2 +- .../tuple_ops/tuplevalue_setitem_ref_test.ets | 4 +- .../tests/type_ops/get_super_class_test.cpp | 18 +- .../type_ops/is_assignable_from_test.cpp | 86 +- .../variable_get_value_boolean_test.cpp | 2 +- .../var_ops/variable_get_value_byte_test.cpp | 2 +- .../var_ops/variable_get_value_char_test.cpp | 2 +- .../variable_get_value_double_test.cpp | 2 +- .../var_ops/variable_get_value_float_test.cpp | 2 +- .../var_ops/variable_get_value_int_test.cpp | 2 +- .../var_ops/variable_get_value_long_test.cpp | 2 +- .../var_ops/variable_get_value_ref_test.cpp | 2 +- .../var_ops/variable_get_value_short_test.cpp | 2 +- .../variable_set_value_boolean_test.cpp | 8 +- .../var_ops/variable_set_value_byte_test.cpp | 8 +- .../var_ops/variable_set_value_byte_test.ets | 2 +- .../var_ops/variable_set_value_char_test.cpp | 8 +- .../var_ops/variable_set_value_char_test.ets | 4 +- .../variable_set_value_double_test.cpp | 8 +- .../var_ops/variable_set_value_float_test.cpp | 10 +- .../var_ops/variable_set_value_float_test.ets | 12 +- .../var_ops/variable_set_value_int_test.cpp | 8 +- .../var_ops/variable_set_value_int_test.ets | 2 +- .../var_ops/variable_set_value_long_test.cpp | 8 +- .../var_ops/variable_set_value_long_test.ets | 2 +- .../var_ops/variable_set_value_ref_test.cpp | 8 +- .../var_ops/variable_set_value_short_test.cpp | 8 +- .../var_ops/variable_set_value_short_test.ets | 4 +- .../ani/tests/vm_ops/ani_create_vm_test.cpp | 58 +- .../ani_get_created_virtual_machines_test.cpp | 6 +- .../ani/tests/vm_ops/attach_thread_test.cpp | 10 +- .../ani/tests/vm_ops/detach_thread_test.cpp | 4 +- .../tests/ani/tests/vm_ops/get_env_test.cpp | 13 +- .../wref_ops/weak_reference_create_test.cpp | 4 +- .../wref_ops/weak_reference_create_test.ets | 16 +- .../comparison/cmp_ref.ets | 30 - .../comparison/cmp_ref.params.yaml | 45 - .../comparison/cmp_val.ets | 30 - .../comparison/cmp_val.params.yaml | 45 - .../concat/conc_ref.ets | 38 - .../concat/conc_val.ets | 38 - .../conditional/cond_func_ref.ets | 32 - .../conditional/cond_func_ref.params.yaml | 28 - .../conditional/cond_func_val.ets | 32 - .../conditional/cond_func_val.params.yaml | 31 - .../conditional/cond_func_val_n0.ets | 31 - .../char_not_numeric/array_access8.ets | 29 - .../char_not_numeric/array_access9.ets | 29 - .../array_constant_shift_6.ets | 27 - .../array_constant_shift_7.ets | 27 - .../array_constant_shift_8.ets | 27 - .../char_not_numeric/ch_0.ets | 23 - .../char_not_numeric/ch_1.ets | 23 - .../char_not_numeric/cond_fld_val_1.ets | 31 - .../constant_bitwise_complement_2.ets | 26 - .../constant_bitwise_expression_12.ets | 27 - .../constant_bitwise_expression_13.ets | 27 - .../constant_bitwise_expression_14.ets | 27 - .../constant_bitwise_expression_2.ets | 32 - .../constant_calculation_10.ets | 28 - .../constant_calculation_11.ets | 28 - .../constant_calculation_12.ets | 28 - .../constant_calculation_13.ets | 28 - .../constant_calculation_14.ets | 28 - .../constant_logical_expression_7.ets | 28 - .../constant_logical_expression_8.ets | 28 - .../constant_num_chain_initializer_5.ets | 27 - .../constant_unary_minus_2.ets | 27 - .../constant_unary_plus_2.ets | 27 - .../create_array_using_generic_types_12.ets | 29 - .../fixed_array_types_ext_17.ets | 26 - .../char_not_numeric/for_of_15.ets | 29 - .../initializer_compatibility_11.ets | 23 - .../initializer_compatibility_12.ets | 23 - .../char_not_numeric/int_28.ets | 26 - .../char_not_numeric/int_29.ets | 26 - .../char_not_numeric/int_30.ets | 26 - ...r_interface_inheritance_override_ext_9.ets | 46 - .../char_not_numeric/ops_102.ets | 31 - .../char_not_numeric/ops_103.ets | 31 - .../char_not_numeric/ops_104.ets | 31 - .../char_not_numeric/ops_123.ets | 31 - .../char_not_numeric/ops_124.ets | 31 - .../char_not_numeric/ops_125.ets | 31 - .../char_not_numeric/ops_138.ets | 31 - .../char_not_numeric/ops_139.ets | 31 - .../char_not_numeric/ops_140.ets | 31 - .../char_not_numeric/ops_153.ets | 31 - .../char_not_numeric/ops_154.ets | 31 - .../char_not_numeric/ops_155.ets | 31 - .../char_not_numeric/ops_168.ets | 31 - .../char_not_numeric/ops_169.ets | 31 - .../char_not_numeric/ops_170.ets | 31 - .../char_not_numeric/ops_183.ets | 31 - .../char_not_numeric/ops_184.ets | 31 - .../char_not_numeric/ops_185.ets | 31 - .../char_not_numeric/ops_201.ets | 31 - .../char_not_numeric/ops_202.ets | 31 - .../char_not_numeric/ops_203.ets | 31 - .../char_not_numeric/ops_219.ets | 31 - .../char_not_numeric/ops_220.ets | 31 - .../char_not_numeric/ops_221.ets | 31 - .../char_not_numeric/ops_24.ets | 31 - .../char_not_numeric/ops_25.ets | 31 - .../char_not_numeric/ops_26.ets | 31 - .../char_not_numeric/ops_54.ets | 31 - .../char_not_numeric/ops_55.ets | 31 - .../char_not_numeric/ops_56.ets | 31 - .../char_not_numeric/ops_81.ets | 31 - .../char_not_numeric/ops_82.ets | 31 - .../char_not_numeric/ops_83.ets | 31 - .../char_not_numeric/ops_boxed_100.ets | 31 - .../char_not_numeric/ops_boxed_101.ets | 31 - .../char_not_numeric/ops_boxed_120.ets | 31 - .../char_not_numeric/ops_boxed_121.ets | 31 - .../char_not_numeric/ops_boxed_122.ets | 31 - .../char_not_numeric/ops_boxed_135.ets | 31 - .../char_not_numeric/ops_boxed_136.ets | 31 - .../char_not_numeric/ops_boxed_137.ets | 31 - .../char_not_numeric/ops_boxed_150.ets | 31 - .../char_not_numeric/ops_boxed_151.ets | 31 - .../char_not_numeric/ops_boxed_152.ets | 31 - .../char_not_numeric/ops_boxed_165.ets | 31 - .../char_not_numeric/ops_boxed_166.ets | 31 - .../char_not_numeric/ops_boxed_167.ets | 31 - .../char_not_numeric/ops_boxed_180.ets | 31 - .../char_not_numeric/ops_boxed_181.ets | 31 - .../char_not_numeric/ops_boxed_182.ets | 31 - .../char_not_numeric/ops_boxed_198.ets | 31 - .../char_not_numeric/ops_boxed_199.ets | 31 - .../char_not_numeric/ops_boxed_200.ets | 31 - .../char_not_numeric/ops_boxed_216.ets | 31 - .../char_not_numeric/ops_boxed_217.ets | 31 - .../char_not_numeric/ops_boxed_218.ets | 31 - .../char_not_numeric/ops_boxed_24.ets | 31 - .../char_not_numeric/ops_boxed_25.ets | 31 - .../char_not_numeric/ops_boxed_26.ets | 31 - .../char_not_numeric/ops_boxed_51.ets | 31 - .../char_not_numeric/ops_boxed_52.ets | 31 - .../char_not_numeric/ops_boxed_53.ets | 31 - .../char_not_numeric/ops_boxed_78.ets | 31 - .../char_not_numeric/ops_boxed_79.ets | 31 - .../char_not_numeric/ops_boxed_80.ets | 31 - .../char_not_numeric/ops_boxed_99.ets | 31 - .../primitive_types_cast_3.ets | 24 - .../char_not_numeric/single_export_0.ets | 62 - .../char_not_numeric/single_params_20.ets | 51 - .../char_not_numeric/single_params_21.ets | 51 - .../char_not_numeric/single_params_22.ets | 51 - .../char_not_numeric/single_params_23.ets | 51 - .../char_not_numeric/single_params_6.ets | 51 - .../char_not_numeric/unary_ref_0.ets | 36 - .../char_not_numeric/unary_val_0.ets | 36 - .../ani/basic_call/native/basic_call.cpp | 39 +- .../interop_js/equality/bu_d2s/libValues.ets | 2 +- .../equality/bu_s2d/equality_a2j.ets | 16 +- .../equality/bu_s2s/equality_a2a.ets | 8 +- .../bu_s2d/equality_extra_a2j.ets | 16 +- .../bu_s2s/equality_extra_a2a.ets | 10 +- .../get_values/bu_d2s/libValuesHolder.ets | 2 +- .../benchmarks/interop_js/known-fails-s2d.txt | 26 +- .../plugins/ets/tests/checked/CMakeLists.txt | 221 +- .../ets/tests/checked/ani/direct_native.cpp | 4 +- .../ets/tests/checked/ani/quick_native.cpp | 50 +- .../ets/tests/checked/ani/unsafe_memory.cpp | 6 +- .../ets/tests/checked/ani/unsafe_memory.ets | 37 +- .../ets/tests/checked/arktsconfig.in.json | 2 +- .../checked/bounds_analysis_phi_in_loops.ets | 20 +- ...anch_elimination_protect_returninlined.ets | 213 - .../plugins/ets/tests/checked/charAt.ets | 9 +- .../checks_elimination_actual_length.ets | 267 + .../checked/checks_elimination_no_hoist.ets | 24 +- .../tests/checked/checks_elimination_osr.ets | 13 +- .../tests/checked/cleanup_call_inlined.ets | 2 +- .../tests/checked/escape_analysis_casted.ets | 46 +- .../checked/escape_analysis_decompose.ets | 111 - .../tests/checked/escape_deoptimization.ets | 2 +- .../plugins/ets/tests/checked/escape_phi.ets | 622 --- .../tests/checked/escompat_array_concat.ets | 39 - .../ets/tests/checked/escompat_array_fill.ets | 54 +- .../ets/tests/checked/escompat_array_from.ets | 31 +- .../tests/checked/escompat_array_get_set.ets | 84 +- .../escompat_array_get_set_derived.ets | 22 +- .../tests/checked/escompat_array_indexof.ets | 196 +- .../ets/tests/checked/escompat_array_join.ets | 237 - .../ets/tests/checked/escompat_array_push.ets | 180 - .../tests/checked/escompat_array_reverse.ets | 95 - .../tests/checked/escompat_array_unshift.ets | 34 - .../ets/tests/checked/ets_catch_assert.ets | 2 +- .../ets/tests/checked/ets_catch_assert1.ets | 2 +- .../ets/tests/checked/ets_catch_assert2.ets | 2 +- .../ets/tests/checked/ets_catch_assert3.ets | 2 +- .../tests/checked/ets_char_isuppercase.ets | 40 +- .../ets/tests/checked/ets_double_compare.ets | 120 +- .../plugins/ets/tests/checked/ets_equals.ets | 14 +- .../ets/tests/checked/ets_escape_array.ets | 16 +- .../checked/ets_escompat_map_intrinsics.ets | 647 --- ...ets_escompat_map_no_inline_array_calls.ets | 71 - .../checked/ets_escompat_set_intrinsics.ets | 477 -- .../checked/ets_escompat_typed_arrays.ets | 454 +- .../ets_escompat_typed_arrays_fill.ets | 12 +- .../checked/ets_escompat_typed_arrays_of.ets | 348 -- .../ets_escompat_typed_arrays_reverse.ets | 50 +- .../ets_escompat_typed_arrays_slice.ets | 195 - .../ets_escompat_typed_arrays_with.ets | 327 -- .../tests/checked/ets_inline_intrinsics.ets | 8 +- .../ets/tests/checked/ets_isinteger.ets | 93 +- .../plugins/ets/tests/checked/ets_istrue.ets | 15 +- .../ets_pea_loads_upward_propagation.ets | 125 +- .../ets/tests/checked/ets_promise_launch.ets | 2 +- .../ets/tests/checked/ets_static_lookup.pa | 10 +- .../tests/checked/ets_static_lookup_16bit.pa | 24 +- .../tests/checked/ets_static_lookup_8bit.pa | 24 +- .../ets/tests/checked/ets_strict_equals.ets | 14 +- .../ets_string_builder_append_merge_part1.ets | 24 +- .../ets_string_builder_append_merge_part2.ets | 20 +- .../ets_string_builder_append_merge_part3.ets | 22 +- .../ets_string_builder_append_merge_part4.ets | 194 +- .../checked/ets_string_builder_deopt1.ets | 4 +- .../checked/ets_string_builder_deopt2.ets | 4 +- .../checked/ets_string_builder_deopt3.ets | 4 +- .../checked/ets_string_builder_hoist.ets | 10 +- .../checked/ets_string_builder_merge.ets | 62 +- .../ets_string_builder_merge_uber_export.ets | 16 +- .../ets_string_builder_merge_uber_part1.ets | 4 +- .../ets_string_builder_merge_uber_part2.ets | 4 +- .../ets_string_builder_merge_uber_part3.ets | 4 +- .../ets_string_builder_merge_uber_part4.ets | 4 +- .../ets_string_builder_merge_uber_part5.ets | 4 +- .../ets_string_builder_merge_uber_part6.ets | 4 +- .../ets_string_builder_merge_uber_part7.ets | 4 +- .../ets_string_builder_merge_uber_part8.ets | 4 +- .../ets_string_builder_reserve_part01-10.ets | 20 +- .../ets_string_builder_reserve_part11-19.ets | 18 +- .../ets_string_builder_reserve_part20-29.ets | 20 +- .../ets_string_builder_reserve_part30-44.ets | 32 +- .../ets_string_builder_reserve_uber.ets | 16 +- .../checked/ets_string_cache_options.ets | 10 +- .../ets/tests/checked/ets_string_concat.ets | 22 +- .../tests/checked/ets_string_concat_func.ets | 18 +- .../tests/checked/ets_string_concat_loop.ets | 118 +- .../ets/tests/checked/ets_string_equals.ets | 24 +- .../ets/tests/checked/ets_string_get.ets | 30 +- .../tests/checked/ets_string_substring.ets | 6 +- .../ets/tests/checked/ets_stringbuilder.ets | 26 +- .../checked/ets_stringbuilder_length.ets | 182 - .../tests/checked/ets_stringbuilder_oom.ets | 8 +- .../ets/tests/checked/ets_try_catch.ets | 20 +- .../ets/tests/checked/ets_try_catch1.ets | 8 +- .../ets/tests/checked/ets_try_catch10.ets | 16 +- .../ets/tests/checked/ets_try_catch11.ets | 16 +- .../ets/tests/checked/ets_try_catch12.ets | 16 +- .../ets/tests/checked/ets_try_catch13.ets | 16 +- .../ets/tests/checked/ets_try_catch14.ets | 16 +- .../ets/tests/checked/ets_try_catch15.ets | 6 +- .../ets/tests/checked/ets_try_catch2.ets | 23 +- .../ets/tests/checked/ets_try_catch3.ets | 24 +- .../ets/tests/checked/ets_try_catch4.ets | 26 +- .../ets/tests/checked/ets_try_catch5.ets | 26 +- .../ets/tests/checked/ets_try_catch6.ets | 85 + .../ets/tests/checked/ets_try_catch7.ets | 14 +- .../ets/tests/checked/ets_try_catch8.ets | 16 +- .../ets/tests/checked/ets_try_catch9.ets | 16 +- .../ets/tests/checked/fast_divisor.ets | 40 +- .../plugins/ets/tests/checked/gotos.ets | 2 +- .../tests/checked/hash_code_double_float.ets | 54 - .../ets/tests/checked/hoist_checkcast.ets | 4 +- .../ets/tests/checked/if_conversion_1.ets | 136 - .../ets/tests/checked/if_conversion_2.ets | 139 - .../inlining_test/inlining_infiniteLoop.ets | 77 - .../inlining_test/inlining_nested_lambdas.ets | 20 +- .../checked/interface_cache_intrinsic.ets | 48 - .../tests/checked/jitinterface/CMakeLists.txt | 6 +- .../checked/jitinterface/compile_method.cpp | 46 - .../checked/jitinterface/compile_method.h | 31 - .../checked/jitinterface/jit_interface.cpp | 35 +- .../jitinterface/string_tlab_repeat.cpp | 35 +- .../checked/lambda_with_capture_optimized.ets | 66 - .../ets/tests/checked/llvm_infer_flags.ets | 8 +- .../plugins/ets/tests/checked/load_array.ets | 4 +- .../checked/load_static_const_folding.ets | 6 + .../checked/loop_unroll_shl_shr_ashr.ets | 145 - .../ets/tests/checked/lower_boxed_boolean.ets | 60 + .../checked/lowering_bitfield_extraction.ets | 177 - .../checked/lse_loop_non_dominating_store.ets | 41 - .../tests/checked/lse_parameter_aliasing.ets | 8 +- .../ets/tests/checked/memory_coalescing.ets | 8 +- .../ets/tests/checked/memory_coalescing1.ets | 8 +- .../ets/tests/checked/memory_coalescing2.ets | 10 +- .../ets/tests/checked/memory_coalescing3.ets | 2 +- .../plugins/ets/tests/checked/multiarray.ets | 2 +- .../tests/checked/optimize_doubled_xor.ets | 18 +- .../checked/optimize_load_object_boxed.ets | 68 +- .../optimize_load_readonly_instance.ets | 20 +- .../checked/optimize_load_readonly_static.ets | 24 +- .../ets/tests/checked/optimize_mod.ets | 245 - .../ets/tests/checked/string_split_test.ets | 22 +- .../plugins/ets/tests/checked/string_test.ets | 24 +- .../ets/tests/checked/type_propagation.ets | 61 +- .../typedarray_get_length_loadobject.ets | 1546 ------ .../ets/tests/cmake/managed_helpers.cmake | 32 - .../plugins/ets/tests/common/CMakeLists.txt | 2 - .../bouncing_pandas/bouncing_pandas.ets | 16 +- .../common/bouncing_peas/bouncing_peas.ets | 38 +- .../bouncing_peas/bouncing_peas_unit_napi.cpp | 278 +- .../bouncing_peas_unit_native.ets | 38 +- .../import_from_abc_simple/CMakeLists.txt | 38 - .../entry/arktsconfig.in.json | 7 - .../import_from_abc_simple/entry/entry.ets | 20 - .../common/import_from_abc_simple/lib/lib.ets | 18 - .../CMakeLists.txt | 42 - .../arktsconfig.in.json | 6 - .../dir/export_file.ets | 18 - .../import_from_declaration_cache/file.ets | 18 - .../plugins/ets/tests/compiler/CMakeLists.txt | 17 - .../tests/compiler/cmake/compiler_tests.cmake | 39 - .../compiler/compiler_gtest/CMakeLists.txt | 21 - .../compiler/compiler_gtest/compiler_gtest.h | 47 - .../wrong_boot_context_test/CMakeLists.txt | 17 - .../wrong_boot_context_test/resource.ets | 17 - .../wrong_boot_context_test.cpp | 49 - .../wrong_boot_context_test.ets | 27 - .../arkdb/internal_tests/test_arkts_str.py | 4 +- .../src/tests/dynamic/test_dynamic_resolve.py | 2 +- .../expected/interfaces_0.expected.ets | 2 +- .../interfaces_0/interfaces_0.patch.ets | 2 +- .../expected/interfaces_1.expected.ets | 4 +- .../expected/interfaces_2.expected.ets | 8 +- .../interfaces_2/interfaces_2.patch.ets | 8 +- .../expected/primitive_types.expected.ets | 14 +- .../primitive_types/primitive_types.patch.ets | 14 +- .../private_field_access.expected.ets | 8 +- .../protected_field_access.expected.ets | 8 +- .../debugger/src/tests/test_custom_methods.py | 20 + .../src/tests/test_predefined_types.py | 10 +- .../tests/debugger/src/tests/test_profiler.py | 1 - .../debugger/src/tests/test_remote_object.py | 12 +- .../src/tests/test_runtime_capture.py | 2 +- .../tests/debugger/src/tests/test_steps.py | 6 +- .../plugins/ets/tests/equals/CMakeLists.txt | 26 +- .../atomics/base_operation_add.ets | 63 - .../atomics/base_operation_and.ets | 65 - .../atomics/base_operation_bigint.ets | 194 - .../atomics/base_operation_biguint.ets | 194 - .../base_operation_compare_exchange.ets | 64 - .../atomics/base_operation_exchange.ets | 63 - .../atomics/base_operation_load.ets | 62 - .../atomics/base_operation_or.ets | 65 - .../atomics/base_operation_store.ets | 63 - .../atomics/base_operation_sub.ets | 65 - .../atomics/base_operation_xor.ets | 65 - .../atomics/base_operator_add.ets | 59 + .../atomics/base_operator_and.ets | 61 + .../atomics/base_operator_bigint.ets | 194 + .../atomics/base_operator_biguint.ets | 194 + .../base_operator_compare_exchange.ets | 60 + .../atomics/base_operator_exchange.ets | 59 + .../atomics/base_operator_load.ets | 56 + .../atomics/base_operator_or.ets | 61 + .../atomics/base_operator_store.ets | 59 + .../atomics/base_operator_sub.ets | 61 + .../atomics/base_operator_xor.ets | 61 + .../atomics/concurrent_compare_exchange.ets | 8 +- .../atomics/concurrent_countdownlatch.ets | 16 +- .../atomics/concurrent_increment.ets | 10 +- .../atomics/concurrent_store_load.ets | 8 +- .../atomics/concurrent_wait_store_notify.ets | 8 +- .../ets-common-tests/atomics/index_range.ets | 16 +- .../nonconcurrent_common_store_load.ets | 40 +- .../nonconcurrent_compare_exchange.ets | 16 +- .../atomics/nonconcurrent_increment.ets | 10 +- .../atomics/nonconcurrent_notify_zero.ets | 9 +- ...urrent_signed_unsigned_operations_test.ets | 64 - .../nonconcurrent_signed_unsigned_test.ets | 8 +- .../nonconcurrent_store_load_islockfree.ets | 18 +- .../nonconcurrent_store_return_check.ets | 8 +- .../nonconcurrent_wait_i32_not_equal.ets | 8 +- .../nonconcurrent_wait_i64_not_equal.ets | 7 +- .../atomics/nonconcurrent_wait_not_equal.ets | 7 +- .../atomics/nonconcurrent_wait_timeout.ets | 10 +- .../nonconcurrent_waitasync_store_notify.ets | 8 +- .../atomics/skipped_cyclic_barrier.ets | 12 +- .../skipped_exchange_nonconcurrent.ets | 12 +- .../atomics/skipped_rendezvous_channel.ets | 13 +- .../atomics/skipped_wait_timeout.ets | 10 +- .../ets-common-tests/class/class_test.ets | 14 +- .../default_generic_bridge/declare1.d.ets | 26 - .../default_generic_bridge/declare1.ets | 30 - .../default_generic_bridge/declare2.d.ets | 27 - .../default_generic_bridge/declare2.ets | 30 - .../default_generic_bridge/declare3.d.ets | 26 - .../default_generic_bridge/declare3.ets | 27 - .../default_generic_bridge/index1.ets | 39 - .../default_generic_bridge/index2.ets | 40 - .../default_generic_bridge/index3.ets | 39 - .../default_import/default4.ets.expected.err | 15 - .../multiple_default_import.ets | 6 +- .../export_default/ambient_test.ets | 2 +- .../export_enum_test/enum_compare.ets | 4 +- .../function_compare.ets | 184 +- .../imported_module_2.ets | 2 +- .../main.ets.expected.err | 15 - .../import_same_name_fields/import.ets | 8 +- .../import_static_invoke/class_module.ets | 24 - .../import_static_invoke/import.ets | 25 - .../imported_modules_TL_exec_1/a.ets | 2 +- .../imported_modules_TL_exec_1/c.ets | 2 +- .../imported_modules_TL_exec_1A/a.ets | 2 +- .../imported_modules_TL_exec_1A/c.ets | 2 +- .../imported_modules_TL_exec_2/a.ets | 2 +- .../imported_modules_TL_exec_2/c.ets | 2 +- .../imported_modules_TL_exec_2A/a.ets | 2 +- .../imported_modules_TL_exec_2A/c.ets | 2 +- .../infer_function_return_type/test.ets | 26 - .../infer_function_return_type/test2.ets | 25 - .../infer_function_return_type/test3.ets | 28 - .../intrinsics/array_concat.ets | 95 - .../intrinsics/array_indexof.ets | 188 - .../intrinsics/array_last_indexof.ets | 235 - .../intrinsics/array_reverse.ets | 88 - .../intrinsics/bigint64array_join.ets | 4 +- .../intrinsics/bigint64array_sort.ets | 8 +- .../intrinsics/biguint64array_join.ets | 4 +- .../intrinsics/biguint64array_sort.ets | 8 +- .../intrinsics/char_isuppercase.ets | 6 +- .../ets-common-tests/intrinsics/copyTo.ets | 378 -- .../intrinsics/float32array_join.ets | 20 +- .../float32array_join.ets.expected.err | 14 - .../intrinsics/float32array_sort.ets | 38 +- .../intrinsics/float64array_join.ets | 4 +- .../intrinsics/float64array_sort.ets | 10 +- .../intrinsics/int16array_join.ets | 4 +- .../intrinsics/int16array_sort.ets | 22 +- .../intrinsics/int32array_join.ets | 4 +- .../intrinsics/int32array_sort.ets | 30 +- .../intrinsics/int8array_join.ets | 4 +- .../intrinsics/int8array_sort.ets | 14 +- .../ets-common-tests/intrinsics/isInteger.ets | 2 +- .../intrinsics/isSafeInteger.ets | 2 +- .../tests/ets-common-tests/intrinsics/map.ets | 354 -- .../intrinsics/map_numeric.ets | 119 - .../ets-common-tests/intrinsics/map_set.ets | 135 - .../tests/ets-common-tests/intrinsics/set.ets | 250 - .../ets-common-tests/intrinsics/set_has.ets | 237 - .../intrinsics/string_array.ets | 54 - .../intrinsics/string_charat.ets | 101 - .../intrinsics/string_compare_to.ets | 36 +- .../intrinsics/string_concat.ets | 62 +- .../intrinsics/string_endswith.ets | 27 +- .../intrinsics/string_equals.ets | 34 +- .../intrinsics/string_from_char_code.ets | 6 +- .../intrinsics/string_from_chars.ets | 42 +- .../intrinsics/string_from_string.ets | 17 +- .../intrinsics/string_fromcodepoint.ets | 46 - .../ets-common-tests/intrinsics/string_gc.ets | 58 - .../intrinsics/string_get.ets | 31 - .../intrinsics/string_getbytes.ets | 26 - .../intrinsics/string_getchars.ets | 120 +- .../intrinsics/string_getlength.ets | 33 - .../intrinsics/string_hashcode.ets | 164 + .../intrinsics/string_indexof.ets | 14 +- .../intrinsics/string_indexofstring.ets | 150 - .../intrinsics/string_iscompressed.ets | 46 - .../intrinsics/string_isempty.ets | 44 +- .../intrinsics/string_iswellformed.ets | 81 - .../intrinsics/string_lastindexof.ets | 150 - .../intrinsics/string_length.ets | 17 +- .../intrinsics/string_normalize.ets | 67 - .../intrinsics/string_repeat.ets | 63 +- .../intrinsics/string_startswith.ets | 101 +- .../intrinsics/string_substring.ets | 28 +- .../intrinsics/string_tolocalelowercase.ets | 66 - .../intrinsics/string_tolocaleuppercase.ets | 98 - .../intrinsics/string_tolowercase.ets | 48 - .../intrinsics/string_touppercase.ets | 47 - .../intrinsics/string_trim.ets | 181 +- .../intrinsics/stringbuilder.ets | 70 +- .../intrinsics/stringbuilder_oom.ets | 4 +- .../intrinsics/to_string_cache.ets | 34 +- .../intrinsics/typed_arrays_from.ets | 597 --- .../intrinsics/typed_arrays_includes.ets | 394 -- .../intrinsics/typed_arrays_indexof.ets | 552 -- .../intrinsics/typed_arrays_last_indexof.ets | 696 --- .../intrinsics/typed_arrays_reverse.ets | 26 +- .../intrinsics/typed_arrays_slice.ets | 225 - .../intrinsics/typed_arrays_with.ets | 231 - .../intrinsics/uint16array_join.ets | 22 +- .../intrinsics/uint16array_sort.ets | 22 +- .../intrinsics/uint32array_join.ets | 22 +- .../intrinsics/uint32array_sort.ets | 30 +- .../intrinsics/uint8array_join.ets | 22 +- .../intrinsics/uint8array_sort.ets | 14 +- .../intrinsics/uint8clampedarray_join.ets | 22 +- .../intrinsics/uint8clampedarray_sort.ets | 14 +- .../ets-common-tests/lambda/capture_this.ets | 2 +- .../ets-common-tests/lambda/capture_var.ets | 2 +- .../lambda/cast_type_lambda.ets | 6 +- .../lambda/infer_type_lambda.ets | 10 +- .../package_test01.ets | 36 +- .../runtime_types/functions.ets | 12 +- .../single_export/sourceA.ets | 4 +- .../tests/ets-common-tests/stubs/equals.ets | 76 +- .../tests/ets-common-tests/stubs/istrue.ets | 22 +- .../tests/ets-common-tests/stubs/typeof.ets | 131 +- .../taskpool/common_tasks.ets | 486 +- .../ets-common-tests/taskpool/func_tasks.ets | 46 +- .../ets-common-tests/taskpool/group_tasks.ets | 85 +- .../ets-common-tests/taskpool/long_task.ets | 50 +- .../taskpool/seqrunner_tasks.ets | 85 +- .../A/arktsconfig.json | 13 + .../A/src/main/ets/a1.ets | 29 + .../B/arktsconfig.json | 16 + .../B/indexB.ets | 25 + .../B/src/main/ets/pages/b.ets | 25 + .../C/arktsconfig.json | 12 + .../C/indexC.ets | 21 + .../C/src/main/ets/pages/c.ets | 21 + .../arktsconfig.json | 6 +- .../test_01/dir_with_same_prefix/bar.ets | 2 +- .../unions/union_method.ets.expected.err | 17 - .../unions/union_method_common.ets | 4 +- .../union_method_common.ets.expected.err | 15 - ...on_method_dummy_interface.ets.expected.err | 15 - ...n_method_short_long_range.ets.expected.err | 17 - .../unions/union_method_virtual.ets | 10 +- .../union_method_virtual.ets.expected.err | 15 - .../config-ext-cond-expr-false.yaml | 18 +- .../config-ext-cond-expr.yaml | 12 +- .../02.lexical_elements/07.keywords/hard.ets | 2 +- .../07.keywords/hard.params.yaml | 8 +- .../07.keywords/reserved.ets | 4 +- .../07.keywords/reserved.params.yaml | 1 + .../02.lexical_elements/07.keywords/soft.ets | 47 +- .../07.keywords/soft.params.yaml | 10 +- .../07.keywords/soft_declare.ets | 66 - .../02.lexical_elements/07.keywords/types.ets | 2 +- .../07.keywords/types.params.yaml | 1 - .../07.keywords/types_local.ets | 26 - .../07.keywords/types_local.params.yaml | 41 - .../incorrect_long_literals.ets | 27 - .../incorrect_long_literals.params.yaml | 47 - .../02.integer_literals/int_literals.ets | 5 +- .../int_literals.params.yaml | 5 - .../02.integer_literals/long_literals.ets | 5 +- .../long_literals.params.yaml | 2 - .../float_implicit_conversions.ets | 29 - .../float_implicit_conversions.params.yaml | 59 - .../float_literal_too_large.ets | 25 - .../float_literal_too_large.params.yaml | 20 - .../float_literals.params.yaml | 46 - .../04.bigint_literals/bigint_func.ets | 2 +- .../bigint_func_n.params.yaml | 2 +- .../04.bigint_literals/bigint_literals.ets | 2 +- .../bigint_literals.params.yaml | 12 - .../06.string_literals/codepoints.ets | 12 +- .../06.string_literals/combined.ets | 11 +- .../06.string_literals/escaping.ets | 3 +- .../09.literals/06.string_literals/hex.ets | 3 +- .../09.literals/06.string_literals/neg.ets | 2 +- .../06.string_literals/spec_examples.ets | 22 +- .../09.literals/06.string_literals/type.ets | 6 +- .../06.string_literals/unicode.ets | 3 +- .../spec_example_2.ets | 2 +- .../spec_example_3.ets | 28 - .../spec_example_4.ets | 27 - .../spec_example_5.ets | 26 - .../07.multiline_string_literal/templ_01.ets | 12 +- .../07.multiline_string_literal/templ_03.ets | 2 +- .../null_literal.ets | 2 +- .../null_literal1.ets | 2 +- .../null_literal2.ets | 2 +- .../null_literal3.ets | 2 +- .../regex_anchor_boundaries.ets | 25 - .../regex_anchor_boundaries.params.yaml | 20 - .../08.regex_literal/regex_basic_literal.ets | 25 - .../regex_basic_literal.params.yaml | 26 - .../regex_example_literals.ets | 25 - .../regex_example_literals.params.yaml | 29 - .../08.regex_literal/regex_flags_literal.ets | 25 - .../regex_flags_literal.params.yaml | 22 - .../regex_groups_capturing.ets | 25 - .../regex_groups_capturing.params.yaml | 21 - .../regex_invalid_literal.ets | 24 - .../regex_invalid_literal.params.yaml | 53 - .../regex_lookaround_literal.ets | 25 - .../regex_lookaround_literal.params.yaml | 19 - .../regex_quantifier_literal.ets | 25 - .../regex_quantifier_literal.params.yaml | 23 - .../undef_literal.ets | 2 +- .../undef_literal1.ets | 2 +- .../undef_literal2.ets | 2 +- .../undef_literal3.ets | 2 +- .../10.comments/multi_line_comment.ets | 6 +- .../pt_alias.ets | 2 +- .../pt_alias.params.yaml | 0 .../pt_constructor.ets | 4 +- .../pt_constructor.params.yaml} | 0 .../pt_metod.ets | 8 +- .../01.primitive_types/pt_metod.params.yaml | 27 + .../pt_type.ets | 0 .../01.primitive_types/pt_type.params.yaml | 27 + .../02.numeric_types}/hier1.ets | 2 +- .../02.numeric_types}/hier1.params.yaml | 0 .../02.numeric_types}/nt_bigint.ets | 2 +- .../02.numeric_types}/nt_byte.ets | 4 +- .../02.numeric_types}/nt_float_00.ets | 6 +- .../02.numeric_types}/nt_float_01.ets | 6 +- .../02.numeric_types}/nt_float_02.ets | 6 +- .../02.numeric_types}/nt_float_03.ets | 6 +- .../02.numeric_types}/nt_float_04.ets | 6 +- .../02.numeric_types}/nt_float_05.ets | 6 +- .../02.numeric_types}/nt_float_06.ets | 4 +- .../02.numeric_types}/nt_float_07.ets | 4 +- .../02.numeric_types}/nt_float_08.ets | 6 +- .../02.numeric_types}/nt_float_09.ets | 6 +- .../02.numeric_types}/nt_float_10.ets | 6 +- .../02.numeric_types}/nt_float_11.ets | 6 +- .../02.numeric_types}/nt_float_12.ets | 6 +- .../02.numeric_types}/nt_float_13.ets | 6 +- .../02.numeric_types}/nt_float_14.ets | 4 +- .../02.numeric_types}/nt_float_15.ets | 4 +- .../02.numeric_types}/nt_float_16.ets | 4 +- .../02.numeric_types}/nt_float_17.ets | 4 +- .../02.numeric_types}/nt_float_18.ets | 6 +- .../02.numeric_types}/nt_float_19.ets | 6 +- .../02.numeric_types}/nt_int.ets | 4 +- .../02.numeric_types}/nt_int_operator_00.ets | 2 +- .../02.numeric_types}/nt_int_operator_01.ets | 2 +- .../02.numeric_types}/nt_int_operator_02.ets | 2 +- .../02.numeric_types}/nt_int_operator_03.ets | 2 +- .../02.numeric_types}/nt_int_operator_04.ets | 2 +- .../02.numeric_types}/nt_int_operator_05.ets | 2 +- .../02.numeric_types}/nt_int_operator_06.ets | 2 +- .../02.numeric_types}/nt_int_operator_07.ets | 2 +- .../02.numeric_types}/nt_int_operator_08.ets | 2 +- .../02.numeric_types}/nt_int_operator_10.ets | 2 +- .../02.numeric_types}/nt_int_operator_11.ets | 2 +- .../02.numeric_types}/nt_int_operator_12.ets | 2 +- .../02.numeric_types}/nt_int_operator_13.ets | 2 +- .../02.numeric_types}/nt_int_operator_14.ets | 2 +- .../02.numeric_types}/nt_int_operator_15.ets | 2 +- .../02.numeric_types}/nt_int_operator_16.ets | 2 +- .../02.numeric_types}/nt_int_operator_17.ets | 2 +- .../02.numeric_types}/nt_int_operator_18.ets | 2 +- .../02.numeric_types}/nt_int_operator_19.ets | 2 +- .../02.numeric_types}/nt_int_operator_20.ets | 2 +- .../02.numeric_types}/nt_int_operator_21.ets | 2 +- .../02.numeric_types}/nt_int_operator_22.ets | 2 +- .../02.numeric_types}/nt_long.ets | 4 +- .../02.numeric_types}/nt_short.ets | 4 +- .../arrays_declaration.params.yaml | 2 +- .../primitive_types/pt_array_alias.ets | 33 - .../pt_array_alias.params.yaml | 24 - .../primitive_types/pt_class_alias.ets | 40 - .../pt_class_alias.params.yaml | 24 - .../pt_constructor.params.yaml | 24 - .../primitive_types/pt_function_alias.ets | 32 - .../pt_function_alias.params.yaml | 24 - .../primitive_types/pt_metod.params.yaml | 27 - .../array_readonly.ets | 2 +- .../array_readonly.params.yaml | 26 +- .../array_readonly_n.ets | 2 +- .../array_readonly_n.params.yaml | 0 .../tuple_readonly.ets | 0 .../tuple_readonly.params.yaml | 26 +- .../tuple_readonly_n.ets | 0 .../tuple_readonly_n.params.yaml | 0 .../03.using_types/types_declaration.ets | 2 - .../types_declaration.params.yaml | 6 - .../03.using_types/types_declaration_n.ets | 26 - .../types_declaration_n.params.yaml | 18 - .../03.using_types/types_declaration_spec.ets | 37 - .../05.type_references/type_alias.ets | 28 - .../03.types/05.type_references/type_map.ets | 20 - .../05.type_references/types_declaration.ets | 2 +- .../addition/addition_bigint.ets | 2 +- .../addition/addition_bigint.params.yaml | 0 .../addition/addition_byte.ets | 2 +- .../addition/addition_byte.params.yaml | 0 .../addition/addition_char.ets | 2 +- .../addition/addition_char.params.yaml | 0 .../addition/addition_int.ets | 2 +- .../addition/addition_int.params.yaml | 0 .../addition/addition_long.ets | 2 +- .../addition/addition_long.params.yaml | 0 .../addition/addition_short.ets | 2 +- .../addition/addition_short.params.yaml | 0 .../bitwise_and/bitwise_and_bigint.ets | 2 +- .../bitwise_and_bigint.params.yaml | 0 .../bitwise_and/bitwise_and_byte.ets | 2 +- .../bitwise_and/bitwise_and_byte.params.yaml | 0 .../bitwise_and/bitwise_and_char.ets | 2 +- .../bitwise_and/bitwise_and_char.params.yaml | 6 +- .../bitwise_and/bitwise_and_int.ets | 2 +- .../bitwise_and/bitwise_and_int.params.yaml | 0 .../bitwise_and/bitwise_and_long.ets | 2 +- .../bitwise_and/bitwise_and_long.params.yaml | 0 .../bitwise_and/bitwise_and_short.ets | 2 +- .../bitwise_and/bitwise_and_short.params.yaml | 4 +- .../bitwise_complement_bigint.ets | 2 +- .../bitwise_complement_bigint.params.yaml | 0 .../bitwise_complement_byte.ets | 2 +- .../bitwise_complement_byte.params.yaml | 0 .../bitwise_complement_char.ets | 4 +- .../bitwise_complement_char.params.yaml | 0 .../bitwise_complement_int.ets | 2 +- .../bitwise_complement_int.params.yaml | 0 .../bitwise_complement_long.ets | 2 +- .../bitwise_complement_long.params.yaml | 0 .../bitwise_complement_short.ets | 2 +- .../bitwise_complement_short.params.yaml | 0 .../bitwise_or/bitwise_or_bigint.ets | 2 +- .../bitwise_or/bitwise_or_bigint.params.yaml | 0 .../bitwise_or/bitwise_or_byte.ets | 2 +- .../bitwise_or/bitwise_or_byte.params.yaml | 4 +- .../bitwise_or/bitwise_or_char.ets | 2 +- .../bitwise_or/bitwise_or_char.params.yaml | 6 +- .../bitwise_or/bitwise_or_int.ets | 2 +- .../bitwise_or/bitwise_or_int.params.yaml | 0 .../bitwise_or/bitwise_or_long.ets | 2 +- .../bitwise_or/bitwise_or_long.params.yaml | 0 .../bitwise_or/bitwise_or_short.ets | 2 +- .../bitwise_or/bitwise_or_short.params.yaml | 2 +- .../bitwise_xor/bitwise_xor_bigint.ets | 2 +- .../bitwise_xor_bigint.params.yaml | 0 .../bitwise_xor/bitwise_xor_byte.ets | 2 +- .../bitwise_xor/bitwise_xor_byte.params.yaml | 0 .../bitwise_xor/bitwise_xor_char.ets | 2 +- .../bitwise_xor/bitwise_xor_char.params.yaml | 0 .../bitwise_xor/bitwise_xor_int.ets | 2 +- .../bitwise_xor/bitwise_xor_int.params.yaml | 0 .../bitwise_xor/bitwise_xor_long.ets | 2 +- .../bitwise_xor/bitwise_xor_long.params.yaml | 0 .../bitwise_xor/bitwise_xor_short.ets | 2 +- .../bitwise_xor/bitwise_xor_short.params.yaml | 0 .../convertions}/conversions.ets | 0 .../convertions/conversions.params.yaml | 23 + .../convertions}/conversions_n.ets | 0 .../convertions}/conversions_n.params.yaml | 7 +- .../division/division_bigint.ets | 2 +- .../division/division_bigint.params.yaml | 0 .../division/division_by_zero_bigint.ets | 14 +- .../division/division_by_zero_byte.ets | 17 +- .../division/division_by_zero_char.ets | 3 +- .../division/division_by_zero_int.ets | 16 +- .../division/division_by_zero_long.ets | 18 +- .../division/division_by_zero_short.ets | 17 +- .../division/division_byte.ets | 2 +- .../division/division_byte.params.yaml | 0 .../division/division_char.ets | 2 +- .../division/division_char.params.yaml | 0 .../division/division_int.ets | 2 +- .../division/division_int.params.yaml | 0 .../division/division_long.ets | 2 +- .../division/division_long.params.yaml | 0 .../division/division_short.ets | 2 +- .../division/division_short.params.yaml | 0 .../equal/equal_bigint.ets | 2 +- .../equal/equal_bigint.params.yaml | 0 .../equal/equal_byte.ets | 2 +- .../equal/equal_byte.params.yaml | 0 .../equal/equal_char.ets | 2 +- .../equal/equal_char.params.yaml | 0 .../equal/equal_int.ets | 2 +- .../equal/equal_int.params.yaml | 0 .../equal/equal_long.ets | 2 +- .../equal/equal_long.params.yaml | 0 .../equal/equal_short.ets | 2 +- .../equal/equal_short.params.yaml | 0 .../greater_or_equal_bigint.ets | 2 +- .../greater_or_equal_bigint.params.yaml | 0 .../greater_or_equal_byte.ets | 2 +- .../greater_or_equal_byte.params.yaml | 0 .../greater_or_equal_char.ets | 2 +- .../greater_or_equal_char.params.yaml | 0 .../greater_or_equal/greater_or_equal_int.ets | 2 +- .../greater_or_equal_int.params.yaml | 0 .../greater_or_equal_long.ets | 2 +- .../greater_or_equal_long.params.yaml | 0 .../greater_or_equal_short.ets | 2 +- .../greater_or_equal_short.params.yaml | 0 .../greater_than/greater_than_bigint.ets | 2 +- .../greater_than_bigint.params.yaml | 0 .../greater_than/greater_than_byte.ets | 2 +- .../greater_than_byte.params.yaml | 0 .../greater_than/greater_than_char.ets | 2 +- .../greater_than_char.params.yaml | 0 .../greater_than/greater_than_int.ets | 2 +- .../greater_than/greater_than_int.params.yaml | 0 .../greater_than/greater_than_long.ets | 2 +- .../greater_than_long.params.yaml | 0 .../greater_than/greater_than_short.ets | 2 +- .../greater_than_short.params.yaml | 0 .../left_shift/left_shift_bigint.ets | 2 +- .../left_shift/left_shift_bigint.params.yaml | 0 .../left_shift/left_shift_byte.ets | 2 +- .../left_shift/left_shift_byte.params.yaml | 0 .../left_shift/left_shift_char.ets | 2 +- .../left_shift/left_shift_char.params.yaml | 0 .../left_shift/left_shift_int.ets | 2 +- .../left_shift/left_shift_int.params.yaml | 0 .../left_shift/left_shift_long.ets | 2 +- .../left_shift/left_shift_long.params.yaml | 0 .../left_shift/left_shift_short.ets | 2 +- .../left_shift/left_shift_short.params.yaml | 0 .../less_or_equal/less_or_equal_bigint.ets | 2 +- .../less_or_equal_bigint.params.yaml | 0 .../less_or_equal/less_or_equal_byte.ets | 2 +- .../less_or_equal_byte.params.yaml | 0 .../less_or_equal/less_or_equal_char.ets | 2 +- .../less_or_equal_char.params.yaml | 0 .../less_or_equal/less_or_equal_int.ets | 2 +- .../less_or_equal_int.params.yaml | 0 .../less_or_equal/less_or_equal_long.ets | 2 +- .../less_or_equal_long.params.yaml | 0 .../less_or_equal/less_or_equal_short.ets | 2 +- .../less_or_equal_short.params.yaml | 0 .../less_than/less_than_bigint.ets | 2 +- .../less_than/less_than_bigint.params.yaml | 0 .../less_than/less_than_byte.ets | 2 +- .../less_than/less_than_byte.params.yaml | 0 .../less_than/less_than_char.ets | 2 +- .../less_than/less_than_char.params.yaml | 0 .../less_than/less_than_int.ets | 2 +- .../less_than/less_than_int.params.yaml | 0 .../less_than/less_than_long.ets | 2 +- .../less_than/less_than_long.params.yaml | 0 .../less_than/less_than_short.ets | 2 +- .../less_than/less_than_short.params.yaml | 0 .../multiplication/multiplication_bigint.ets | 6 +- .../multiplication_bigint.params.yaml | 0 .../multiplication/multiplication_byte.ets | 6 +- .../multiplication_byte.params.yaml | 0 .../multiplication/multiplication_char.ets | 2 +- .../multiplication_char.params.yaml | 10 +- .../multiplication/multiplication_int.ets | 6 +- .../multiplication_int.params.yaml | 0 .../multiplication/multiplication_long.ets | 6 +- .../multiplication_long.params.yaml | 0 .../multiplication/multiplication_short.ets | 6 +- .../multiplication_short.params.yaml | 0 .../not_equal/not_equal_bigint.ets | 2 +- .../not_equal/not_equal_bigint.params.yaml | 0 .../not_equal/not_equal_byte.ets | 2 +- .../not_equal/not_equal_byte.params.yaml | 0 .../not_equal/not_equal_char.ets | 2 +- .../not_equal/not_equal_char.params.yaml | 0 .../not_equal/not_equal_int.ets | 2 +- .../not_equal/not_equal_int.params.yaml | 0 .../not_equal/not_equal_long.ets | 2 +- .../not_equal/not_equal_long.params.yaml | 0 .../not_equal/not_equal_short.ets | 2 +- .../not_equal/not_equal_short.params.yaml | 0 .../postfix_decrement_byte.ets | 4 +- .../postfix_decrement_byte.params.yaml | 0 .../postfix_decrement_char.ets | 4 +- .../postfix_decrement_char.params.yaml | 4 +- .../postfix_decrement_int.ets | 4 +- .../postfix_decrement_int.params.yaml | 0 .../postfix_decrement_long.ets | 4 +- .../postfix_decrement_long.params.yaml | 0 .../postfix_decrement_short.ets | 4 +- .../postfix_decrement_short.params.yaml | 0 .../postfix_increment_byte.ets | 4 +- .../postfix_increment_byte.params.yaml | 0 .../postfix_increment_char.ets | 4 +- .../postfix_increment_char.params.yaml | 0 .../postfix_increment_int.ets | 4 +- .../postfix_increment_int.params.yaml | 0 .../postfix_increment_long.ets | 4 +- .../postfix_increment_long.params.yaml | 0 .../postfix_increment_short.ets | 4 +- .../postfix_increment_short.params.yaml | 0 .../prefix_decrement_byte.ets | 4 +- .../prefix_decrement_byte.params.yaml | 0 .../prefix_decrement_char.ets | 4 +- .../prefix_decrement_char.params.yaml | 0 .../prefix_decrement/prefix_decrement_int.ets | 4 +- .../prefix_decrement_int.params.yaml | 0 .../prefix_decrement_long.ets | 4 +- .../prefix_decrement_long.params.yaml | 0 .../prefix_decrement_short.ets | 4 +- .../prefix_decrement_short.params.yaml | 0 .../prefix_increment_byte.ets | 4 +- .../prefix_increment_byte.params.yaml | 0 .../prefix_increment_char.ets | 4 +- .../prefix_increment_char.params.yaml | 0 .../prefix_increment/prefix_increment_int.ets | 4 +- .../prefix_increment_int.params.yaml | 0 .../prefix_increment_long.ets | 4 +- .../prefix_increment_long.params.yaml | 0 .../prefix_increment_short.ets | 4 +- .../prefix_increment_short.params.yaml | 0 .../remainder/remainder_bigint.ets | 2 +- .../remainder/remainder_bigint.params.yaml | 0 .../remainder/remainder_by_zero_bigint.ets | 13 +- .../remainder/remainder_by_zero_byte.ets | 19 +- .../remainder/remainder_by_zero_char.ets | 3 +- .../remainder/remainder_by_zero_int.ets | 16 +- .../remainder/remainder_by_zero_long.ets | 16 +- .../remainder/remainder_by_zero_short.ets | 17 +- .../remainder/remainder_byte.ets | 2 +- .../remainder/remainder_byte.params.yaml | 0 .../remainder/remainder_char.ets | 2 +- .../remainder/remainder_char.params.yaml | 0 .../remainder/remainder_int.ets | 2 +- .../remainder/remainder_int.params.yaml | 0 .../remainder/remainder_long.ets | 2 +- .../remainder/remainder_long.params.yaml | 0 .../remainder/remainder_short.ets | 2 +- .../remainder/remainder_short.params.yaml | 0 .../right_shift/right_shift_bigint.ets | 2 +- .../right_shift_bigint.params.yaml | 0 .../right_shift/right_shift_byte.ets | 2 +- .../right_shift/right_shift_byte.params.yaml | 0 .../right_shift/right_shift_char.ets | 2 +- .../right_shift/right_shift_char.params.yaml | 0 .../right_shift/right_shift_int.ets | 2 +- .../right_shift/right_shift_int.params.yaml | 0 .../right_shift/right_shift_long.ets | 2 +- .../right_shift/right_shift_long.params.yaml | 0 .../right_shift/right_shift_short.ets | 2 +- .../right_shift/right_shift_short.params.yaml | 0 .../string_concatenation_bigint.ets | 2 +- .../string_concatenation_bigint.params.yaml | 0 .../string_concatenation_byte.ets | 2 +- .../string_concatenation_byte.params.yaml | 0 .../string_concatenation_char.ets | 2 +- .../string_concatenation_char.params.yaml | 0 .../string_concatenation_int.ets | 2 +- .../string_concatenation_int.params.yaml | 0 .../string_concatenation_long.ets | 2 +- .../string_concatenation_long.params.yaml | 0 .../string_concatenation_short.ets | 2 +- .../string_concatenation_short.params.yaml | 0 .../subtraction/subtraction_bigint.ets | 2 +- .../subtraction_bigint.params.yaml | 0 .../subtraction/subtraction_byte.ets | 2 +- .../subtraction/subtraction_byte.params.yaml | 0 .../subtraction/subtraction_char.ets | 2 +- .../subtraction/subtraction_char.params.yaml | 0 .../subtraction/subtraction_int.ets | 2 +- .../subtraction/subtraction_int.params.yaml | 4 +- .../subtraction/subtraction_long.ets | 2 +- .../subtraction/subtraction_long.params.yaml | 4 +- .../subtraction/subtraction_short.ets | 2 +- .../subtraction/subtraction_short.params.yaml | 0 .../ternary/ternary_bigint.ets | 2 +- .../ternary/ternary_bigint.params.yaml | 0 .../ternary/ternary_byte.ets | 2 +- .../ternary/ternary_byte.params.yaml | 0 .../ternary/ternary_char.ets | 2 +- .../ternary/ternary_char.params.yaml | 0 .../ternary/ternary_int.ets | 2 +- .../ternary/ternary_int.params.yaml | 0 .../ternary/ternary_long.ets | 2 +- .../ternary/ternary_long.params.yaml | 0 .../ternary/ternary_short.ets | 2 +- .../ternary/ternary_short.params.yaml | 0 .../unary_minus/unary_minus_bigint.ets | 2 +- .../unary_minus_bigint.params.yaml | 0 .../unary_minus/unary_minus_byte.ets | 2 +- .../unary_minus/unary_minus_byte.params.yaml | 0 .../unary_minus/unary_minus_char.ets | 2 +- .../unary_minus/unary_minus_char.params.yaml | 0 .../unary_minus/unary_minus_int.ets | 2 +- .../unary_minus/unary_minus_int.params.yaml | 0 .../unary_minus/unary_minus_long.ets | 2 +- .../unary_minus/unary_minus_long.params.yaml | 0 .../unary_minus/unary_minus_short.ets | 2 +- .../unary_minus/unary_minus_short.params.yaml | 0 .../unary_plus/unary_plus_bigint.ets | 2 +- .../unary_plus/unary_plus_bigint.params.yaml | 0 .../unary_plus/unary_plus_byte.ets | 2 +- .../unary_plus/unary_plus_byte.params.yaml | 0 .../unary_plus/unary_plus_char.ets | 2 +- .../unary_plus/unary_plus_char.params.yaml | 0 .../unary_plus/unary_plus_int.ets | 2 +- .../unary_plus/unary_plus_int.params.yaml | 0 .../unary_plus/unary_plus_long.ets | 2 +- .../unary_plus/unary_plus_long.params.yaml | 0 .../unary_plus/unary_plus_short.ets | 2 +- .../unary_plus/unary_plus_short.params.yaml | 0 .../unsigned_right_shift_byte.ets | 2 +- .../unsigned_right_shift_byte.params.yaml | 0 .../unsigned_right_shift_char.ets | 2 +- .../unsigned_right_shift_char.params.yaml | 0 .../unsigned_right_shift_int.ets | 2 +- .../unsigned_right_shift_int.params.yaml | 0 .../unsigned_right_shift_long.ets | 2 +- .../unsigned_right_shift_long.params.yaml | 0 .../unsigned_right_shift_short.ets | 2 +- .../unsigned_right_shift_short.params.yaml | 0 .../01.numeric_types/nt_int_operator_09.ets | 25 - .../addition/addition_float.ets | 10 +- .../addition/addition_float.params.yaml | 0 .../division/division_float.ets | 10 +- .../division/division_float.params.yaml | 0 .../equal/equal_float.ets | 10 +- .../equal/equal_float.params.yaml | 58 + .../greater_or_equal_float.ets | 6 +- .../greater_or_equal_float.params.yaml | 58 + .../greater_than/greater_than_float.ets | 6 +- .../greater_than_float.params.yaml | 58 + .../less_or_equal/less_or_equal_float.ets | 6 +- .../less_or_equal_float.params.yaml | 58 + .../less_than/less_than_float.ets | 6 +- .../less_than/less_than_float.params.yaml | 58 + .../multiplication/multiplication_float.ets | 10 +- .../multiplication_float.params.yaml | 1 + .../not_equal/not_equal_float.ets | 6 +- .../not_equal/not_equal_float.params.yaml | 0 .../subtraction/subtraction_float.ets | 10 +- .../subtraction/subtraction_float.params.yaml | 0 .../unary_minus/unary_minus_float.ets | 8 +- .../unary_minus/unary_minus_float.params.yaml | 0 .../unary_plus/unary_plus_float.ets | 8 +- .../unary_plus/unary_plus_float.params.yaml | 0 .../addition/addition_overflow.ets | 28 - .../addition/addition_overflow.params.yaml | 19 - .../multiplication_overflow.ets | 28 - .../multiplication_overflow.params.yaml | 19 - .../subtraction/subtraction_overflow.ets | 28 - .../subtraction_overflow.params.yaml | 21 - .../bitwise_operators.ets | 18 +- .../boolean_type.ets | 0 .../conditional_operator_0.ets | 26 + .../conditional_operator_1.ets | 26 + .../conditional_operator_2.ets | 2 +- .../conditional_operator_3.ets | 2 +- .../conditional_operator_4.ets | 12 +- .../equality_operators.ets | 2 +- .../equality_operators.params.yaml | 0 .../logical_complement_operator.ets | 4 +- .../string_concatenation_operator.ets | 4 +- .../types_initialization.ets | 4 +- .../types_initialization.params.yaml | 0 .../addition/addition_double.ets | 34 - .../addition/addition_double.params.yaml | 62 - .../bitwise_and/bitwise_and_double.ets | 27 - .../bitwise_and_double.params.yaml | 27 - .../bitwise_and/bitwise_and_float.ets | 27 - .../bitwise_and/bitwise_and_float.params.yaml | 27 - .../bitwise_complement_double.ets | 26 - .../bitwise_complement_double.params.yaml | 25 - .../bitwise_complement_float.ets | 26 - .../bitwise_complement_float.params.yaml | 25 - .../bitwise_or/bitwise_or_double.ets | 27 - .../bitwise_or/bitwise_or_double.params.yaml | 28 - .../bitwise_or/bitwise_or_float.ets | 27 - .../bitwise_or/bitwise_or_float.params.yaml | 27 - .../bitwise_xor/bitwise_xor_double.ets | 27 - .../bitwise_xor_double.params.yaml | 27 - .../bitwise_xor/bitwise_xor_float.ets | 27 - .../bitwise_xor/bitwise_xor_float.params.yaml | 27 - .../division/division_double.ets | 34 - .../division/division_double.params.yaml | 79 - .../equal/equal_double.ets | 31 - .../equal/equal_double.params.yaml | 58 - .../equal/equal_float.params.yaml | 58 - .../greater_or_equal_double.ets | 27 - .../greater_or_equal_double.params.yaml | 58 - .../greater_or_equal_float.params.yaml | 58 - .../greater_than/greater_than_double.ets | 27 - .../greater_than_double.params.yaml | 58 - .../greater_than_float.params.yaml | 58 - .../less_or_equal/less_or_equal_double.ets | 27 - .../less_or_equal_double.params.yaml | 58 - .../less_or_equal_float.params.yaml | 58 - .../less_than/less_than_double.ets | 27 - .../less_than/less_than_double.params.yaml | 58 - .../less_than/less_than_float.params.yaml | 58 - .../multiplication/multiplication_double.ets | 32 - .../multiplication_double.params.yaml | 67 - .../not_equal/not_equal_double.ets | 27 - .../not_equal/not_equal_double.params.yaml | 58 - .../postfix_decrement_double.ets | 28 - .../postfix_decrement_double.params.yaml | 28 - .../postfix_decrement_float.ets | 28 - .../postfix_decrement_float.params.yaml | 28 - .../postfix_increment_double.ets | 28 - .../postfix_increment_double.params.yaml | 28 - .../postfix_increment_float.ets | 28 - .../postfix_increment_float.params.yaml | 28 - .../prefix_decrement_double.ets | 28 - .../prefix_decrement_double.params.yaml | 28 - .../prefix_decrement_float.ets | 28 - .../prefix_decrement_float.params.yaml | 28 - .../prefix_increment_double.ets | 28 - .../prefix_increment_double.params.yaml | 28 - .../prefix_increment_float.ets | 28 - .../prefix_increment_float.params.yaml | 28 - .../string_concatenation_double.ets | 27 - .../string_concatenation_double.params.yaml | 50 - .../string_concatenation_float.ets | 27 - .../string_concatenation_float.params.yaml | 50 - .../subtraction/subtraction_double.ets | 33 - .../subtraction_double.params.yaml | 67 - .../ternary/ternary_double.ets | 28 - .../ternary/ternary_double.params.yaml | 20 - .../ternary/ternary_float.ets | 28 - .../ternary/ternary_float.params.yaml | 20 - .../unary_minus/unary_minus_double.ets | 31 - .../unary_minus_double.params.yaml | 25 - .../unary_plus/unary_plus_double.ets | 31 - .../unary_plus/unary_plus_double.params.yaml | 25 - .../conditional_operator_0.ets | 26 - .../conditional_operator_1.ets | 26 - .../intersection_type_declaration.ets | 0 .../intersection_type_initialization.ets | 0 .../07.reference_types/named_types.ets | 0 .../named_types.params.yaml | 0 .../named_types_generics.ets | 0 .../named_types_generics.params.yaml | 0 .../07.reference_types/type_variables.ets | 0 .../type_variables.params.yaml | 0 .../03.types/08.any/type_any.ets | 26 - .../03.types/08.any/type_any.params.yaml | 29 - .../03.types/08.any/type_any_union.ets | 24 - .../cast_to_object.ets | 0 .../class_methods.ets | 0 .../class_methods.params.yaml | 0 .../08.type_object/conditional_operator_0.ets | 30 + .../08.type_object/conditional_operator_1.ets | 30 + .../equality_operator_0.ets | 2 +- .../equality_operator_1.ets | 2 +- .../explicit_cast_operator.ets | 0 .../field_access.ets | 2 +- .../implicit_cast_operator.ets | 0 .../instanceof_operator.ets | 2 +- .../object_methods.ets | 0 .../object_methods.params.yaml | 0 .../object_type.ets | 0 .../one_link_on_two_objects.ets | 7 +- .../string_concatenation_0.ets | 2 +- .../string_concatenation_1.ets | 2 +- .../never_class_function1.ets | 0 .../never_class_function2.ets | 0 .../never_class_function3.ets | 0 .../never_class_function4.ets | 0 .../never_class_instance.ets | 0 .../never_class_instance.params.yaml | 14 +- .../never_class_instance_neg.ets | 0 .../never_class_instance_neg.params.yaml | 4 +- .../09.type_object/conditional_operator_0.ets | 30 - .../09.type_object/conditional_operator_1.ets | 30 - .../generic_void.ets | 0 .../void_return_type.ets | 4 +- .../void_type.ets | 10 - .../void_type_in_expression.ets | 0 .../void_type_union_0.ets | 0 .../void_type_union_1.ets | 0 .../void_type_union_2.ets | 0 .../undefined_array.ets | 0 .../undefined_array1.ets | 2 +- .../undefined_array2.ets | 0 .../undefined_array3.ets | 0 .../undefined_enum.ets | 0 .../undefined_enum1.ets | 0 .../undefined_example.ets | 2 +- .../undefined_example_1.ets | 6 +- .../undefined_generic.ets | 4 +- .../undefined_generic1.ets | 8 +- .../undefined_generic2.ets | 6 +- .../undefined_generic3.ets | 6 +- .../undefined_generic4.ets | 6 +- .../undefined_incorrect_usage.ets | 0 .../undefined_incorrect_usage.params.yaml | 30 + .../undefined_keyword.ets | 0 .../undefined_keyword_1.ets | 0 .../undefined_keyword_2.ets | 2 +- .../undefined_keyword_3.ets | 0 .../undefined_literal.ets | 2 +- .../undefined_literal1.ets | 6 +- .../undefined_literal2.ets | 2 +- .../undefined_nullish.ets | 2 +- .../undefined_nullish.params.yaml | 0 .../undefined_switch.ets | 10 +- .../undefined_union.ets | 4 +- .../undefined_union1.ets | 4 +- .../undefined_union2.ets | 4 +- .../undefined_union3.ets | 2 +- .../undefined_union4.ets | 4 +- .../undefined_union5.ets | 4 +- .../03.types/11.type_void/generic_void_2.ets | 50 - .../03.types/11.type_void/generic_void_n.ets | 27 - .../11.type_void/generic_void_n_2.ets | 25 - .../11.type_void/generic_void_n_3.ets | 21 - .../03.types/11.type_void/void_type_n.ets | 25 - .../11.type_void/void_type_n.params.yaml | 25 - .../11.type_void/void_type_undefined.ets | 26 - .../{13.type_null => 12.type_null}/null10.ets | 2 +- .../{13.type_null => 12.type_null}/null11.ets | 2 +- .../{13.type_null => 12.type_null}/null12.ets | 0 .../{13.type_null => 12.type_null}/null13.ets | 0 .../{13.type_null => 12.type_null}/null3.ets | 4 +- .../{13.type_null => 12.type_null}/null4.ets | 2 +- .../{13.type_null => 12.type_null}/null5.ets | 4 +- .../{13.type_null => 12.type_null}/null6.ets | 4 +- .../{13.type_null => 12.type_null}/null7.ets | 4 +- .../{13.type_null => 12.type_null}/null8.ets | 4 +- .../{13.type_null => 12.type_null}/null9.ets | 4 +- .../undefined_incorrect_usage.params.yaml | 30 - .../change_string_value.ets | 10 +- .../string_literal.ets | 2 +- .../string_type_declaration_0.ets | 0 .../string_type_declaration_1.ets | 0 .../strings_addition.ets | 2 +- .../bint.ets | 2 +- .../03.types/14.type_bigint/bint.params.yaml | 76 + .../bint_args.ets | 2 +- .../14.type_bigint/bint_args.params.yaml | 76 + .../bint_arr.ets | 2 +- .../14.type_bigint/bint_arr.params.yaml | 76 + .../bint_clss.ets | 2 +- .../14.type_bigint/bint_clss.params.yaml | 76 + .../bint_fdef.ets | 2 +- .../14.type_bigint/bint_fdef.params.yaml | 76 + .../bint_fld.ets | 2 +- .../14.type_bigint/bint_fld.params.yaml | 76 + .../bint_fld_gen.ets | 2 +- .../14.type_bigint/bint_fld_gen.params.yaml | 76 + .../bint_lmbd.ets | 2 +- .../14.type_bigint/bint_lmbd.params.yaml | 76 + .../bint_n.ets | 4 +- .../bint_n.params.yaml | 0 .../bint_tup.ets | 2 +- .../14.type_bigint/bint_tup.params.yaml | 76 + .../bint_un.ets | 2 +- .../14.type_bigint/bint_un.params.yaml | 76 + .../change_string_value_by_function_call.ets | 34 - .../14.type_string/string_length_readonly.ets | 25 - .../14.type_string/string_length_type.ets | 24 - .../literals_without_supertype.ets | 0 .../literals_without_supertype_1.ets | 0 .../primitive_type_default_tests_01.ets | 2 +- .../primitive_type_default_tests_02.ets | 2 +- .../primitive_type_default_tests_03.ets | 2 +- .../primitive_type_default_tests_04.ets | 2 +- .../primitive_type_default_tests_05.ets | 2 +- .../primitive_type_default_tests_06.ets | 2 +- .../primitive_type_default_tests_07.ets | 2 +- .../primitive_type_default_tests_08.ets | 2 +- .../primitive_type_default_tests_09.ets | 2 +- .../primitive_type_default_tests_10.ets | 2 +- .../primitive_type_default_tests_11.ets | 2 +- .../primitive_type_default_tests_12.ets | 2 +- .../primitive_type_default_tests_13.ets | 2 +- .../primitive_type_default_tests_14.ets | 2 +- .../primitive_type_default_tests_15.ets | 2 +- .../primitive_type_default_tests_16.ets | 0 .../primitive_type_default_tests_17.ets | 0 .../primitive_type_default_tests_18.ets | 0 .../primitive_type_default_tests_19.ets | 0 .../primitive_type_default_tests_20.ets | 0 .../primitive_type_default_tests_21.ets | 2 +- .../primitive_type_default_tests_22.ets | 2 +- .../primitive_type_default_tests_23.ets | 2 +- .../primitive_type_default_tests_24.ets | 4 +- .../primitive_type_default_tests_25.ets | 2 +- .../primitive_type_default_tests_26.ets | 2 +- .../primitive_type_default_tests_27.ets | 2 +- .../primitive_type_default_tests_28.ets | 2 +- .../primitive_type_default_tests_29.ets | 2 +- .../primitive_type_default_tests_30.ets | 2 +- .../primitive_type_default_tests_31.ets | 2 +- .../primitive_type_default_tests_32.ets | 2 +- .../primitive_type_default_tests_33.ets | 2 +- .../primitive_type_default_tests_34.ets | 2 +- .../primitive_type_default_tests_35.ets | 2 +- .../primitive_type_default_tests_36.ets | 2 +- .../primitive_type_default_tests_37.ets | 2 +- .../primitive_type_default_tests_38.ets | 2 +- .../primitive_type_default_tests_39.ets | 2 +- .../primitive_type_default_tests_40.ets | 2 +- .../primitive_type_default_tests_41.ets | 2 +- .../primitive_type_default_tests_42.ets | 4 +- .../primitive_type_default_tests_43.ets | 2 +- .../primitive_type_default_tests_44.ets | 2 +- .../primitive_type_default_tests_45.ets | 2 +- .../primitive_type_default_tests_46.ets | 2 +- .../primitive_type_default_tests_47.ets | 2 +- .../primitive_type_default_tests_48.ets | 2 +- .../primitive_type_default_tests_49.ets | 2 +- .../primitive_type_default_tests_50.ets | 2 +- .../primitive_type_default_tests_51.ets | 2 +- .../primitive_type_default_tests_52.ets | 2 +- .../primitive_type_default_tests_53.ets | 2 +- .../primitive_type_default_tests_54.ets | 2 +- .../primitive_type_default_tests_55.ets | 2 +- .../primitive_type_default_tests_56.ets | 2 +- .../primitive_type_default_tests_57.ets | 2 +- .../primitive_type_default_tests_58.ets | 2 +- .../primitive_type_default_tests_59.ets | 2 +- .../primitive_type_default_tests_60.ets | 2 +- .../primitive_type_default_tests_61.ets | 2 +- .../primitive_type_default_tests_62.ets | 2 +- .../primitive_type_default_tests_63.ets | 2 +- .../primitive_type_default_tests_64.ets | 2 +- .../primitive_type_default_tests_65.ets | 2 +- .../primitive_type_default_tests_66.ets | 2 +- .../primitive_type_default_tests_67.ets | 2 +- .../primitive_type_default_tests_68.ets | 4 +- .../primitive_type_default_tests_69.ets | 2 +- .../primitive_type_default_tests_70.ets | 6 +- .../primitive_type_default_tests_71.ets | 2 +- .../primitive_type_default_tests_72.ets | 2 +- .../primitive_type_default_tests_73.ets | 2 +- .../primitive_type_default_tests_74.ets | 2 +- .../primitive_type_default_tests_75.ets | 2 +- .../operations_on_literal_types.ets | 4 +- .../operations_on_literal_types1.ets | 2 +- .../operations_on_literal_types2.ets | 10 +- .../operationson_literal_class_0.ets | 2 +- .../operationson_literal_class_1.ets | 2 +- .../operationson_literal_class_2.ets | 4 +- .../operationson_literal_class_3.ets | 2 +- .../operationson_literal_class_4.ets | 2 +- .../operationson_literal_class_5.ets | 2 +- .../operationson_literal_class_6.ets | 2 +- .../operationson_literal_class_7.ets | 2 +- .../operationson_literal_class_8.ets | 2 +- .../operationson_literal_class_9.ets | 2 +- .../as_const.ets | 0 .../as_const.params.yaml | 0 .../class_literal_type.ets | 0 .../class_literal_type.params.yaml | 30 +- .../const_literal_type.ets | 2 +- .../const_literal_type_neg.ets | 0 .../custom_literal_type.ets | 0 .../custom_literal_type.params.yaml | 28 +- .../function_literal_type.ets | 0 .../function_literal_type.params.yaml | 92 +- .../overriding_literal_types.ets | 0 .../overriding_literal_types.params.yaml | 12 +- .../supported_literal_types.ets | 6 +- .../supported_literal_types.params.yaml | 0 .../unsupported_literal_types.ets | 0 .../unsupported_literal_types.params.yaml | 0 .../03.types/15.type_bigint/bint.params.yaml | 76 - .../15.type_bigint/bint_args.params.yaml | 76 - .../15.type_bigint/bint_arr.params.yaml | 76 - .../15.type_bigint/bint_clss.params.yaml | 76 - .../15.type_bigint/bint_fdef.params.yaml | 76 - .../15.type_bigint/bint_fld.params.yaml | 76 - .../15.type_bigint/bint_fld_gen.params.yaml | 76 - .../15.type_bigint/bint_lmbd.params.yaml | 76 - .../15.type_bigint/bint_tup.params.yaml | 76 - .../15.type_bigint/bint_un.params.yaml | 77 - .../form_1_assign_to_2.ets | 4 +- .../form_2_assign_to_1.ets | 4 +- .../grow_array_form_one_0.ets | 3 +- .../grow_array_form_one_1.ets | 5 +- .../grow_array_form_two_0.ets | 5 +- .../grow_array_form_two_1.ets | 4 +- .../put_to_empty_form_1.ets | 6 +- .../put_to_empty_form_2.ets | 6 +- .../01.resizable_array_types/rar1.ets | 6 +- .../01.resizable_array_types/rar1.params.yaml | 8 +- .../01.resizable_array_types/rar2a.ets | 0 .../01.resizable_array_types/rar2b.ets | 0 .../01.resizable_array_types/rar2c.ets | 0 .../01.resizable_array_types/rar2d.ets | 0 .../01.resizable_array_types/rar3a.ets | 18 +- .../01.resizable_array_types/rar3b.ets | 10 +- .../01.resizable_array_types/rat00.ets | 2 +- .../01.resizable_array_types/rat02.ets | 2 +- .../01.resizable_array_types/rat04.ets | 2 +- .../01.resizable_array_types/rat06.ets | 2 +- .../01.resizable_array_types/rat07.ets | 5 +- .../01.resizable_array_types/rat08.ets | 11 +- .../01.resizable_array_types/rat09.ets | 5 +- .../01.resizable_array_types/rat10.ets | 5 +- .../01.resizable_array_types/rat11.ets | 5 +- .../01.resizable_array_types/rat12.ets | 5 +- .../01.resizable_array_types/rat13.ets | 2 +- .../01.resizable_array_types/rat14.ets | 2 +- .../01.resizable_array_types/rat17.ets | 2 +- .../01.resizable_array_types/rat18.ets | 5 +- .../01.resizable_array_types/rat19.ets | 6 +- .../01.resizable_array_types/rat20.ets | 5 +- .../01.resizable_array_types/rat21.ets | 5 +- .../01.resizable_array_types/rat22.ets | 2 +- .../01.resizable_array_types/rat23.ets | 2 +- .../01.resizable_array_types/rat24.ets | 2 +- .../01.resizable_array_types/rat25.ets | 4 +- .../01.resizable_array_types/rat26.ets | 2 +- .../01.resizable_array_types/rat27.ets | 2 +- .../01.resizable_array_types/rat28.ets | 2 +- .../01.resizable_array_types/rat29.ets | 2 +- .../01.resizable_array_types/rat30.ets | 2 +- .../01.resizable_array_types/rat31.ets | 2 +- .../01.resizable_array_types/rat32.ets | 2 +- .../01.resizable_array_types/rat33.ets | 2 +- .../01.resizable_array_types/rat34.ets | 2 +- .../01.resizable_array_types/rat_ext.ets | 0 .../rat_ext.params.yaml | 10 +- .../resizable_array.ets | 4 +- .../resizable_array.params.yaml | 0 .../shrink_array_form_one.ets | 2 +- .../shrink_array_form_two.ets | 2 +- .../array_index.ets | 8 +- .../array_type.ets | 2 +- .../array_type.params.yaml | 0 .../object.ets | 4 +- .../object.params.yaml | 2 +- .../types.ets | 2 +- .../types.params.yaml | 6 +- .../various_data_types.ets | 4 +- .../resizable_array_types.ets | 28 - .../resizable_array_types.params.yaml | 58 - .../array_readonly_push_n.ets | 24 - .../{18.tuple_types => 17.tuple_types}/tt.ets | 0 .../03.types/17.tuple_types/tt.params.yaml | 182 + .../tt2.ets | 2 +- .../tt2.params.yaml | 13 +- .../tt_n.ets | 0 .../tt_n.params.yaml | 24 +- .../01.type_function/negative.ets | 0 .../01.type_function/negative.params.yaml | 0 .../01.type_function/negative_rt.ets | 1 + .../01.type_function/negative_rt.params.yaml | 6 +- .../01.type_function/positive.ets | 0 .../01.type_function/positive.params.yaml | 39 + .../function_assert.ets | 0 .../function_declaration.ets | 0 .../function_signature.ets | 0 .../function_type.ets | 0 .../function_type.params.yaml | 0 .../incorrect_function_name.ets | 2 +- .../incorrect_function_name.params.yaml | 0 .../long_function_name.ets | 2 +- .../parametrized_function_declaration.ets | 0 .../return_lambda.ets | 2 +- .../returning_function_declaration.ets | 0 .../same_constructor_signature.ets | 0 .../same_function_signature.ets | 0 .../same_method_sibnature.ets | 0 .../03.types/18.tuple_types/tt.params.yaml | 193 - .../01.type_function/positive.params.yaml | 59 - .../01.type_function/positive_args.ets | 29 - .../positive_args.params.yaml | 55 - .../19.function_types/function_type_spec1.ets | 21 - .../19.function_types/function_type_spec2.ets | 21 - .../function_type_spec4_n.ets | 28 - .../01.union_types_normalization/norm.ets | 0 .../norm.params.yaml | 364 ++ .../01.union_types_normalization/utn01.ets | 35 + .../01.union_types_normalization/utn02.ets | 11 +- .../01.union_types_normalization/utn03.ets | 5 +- .../01.union_types_normalization/utn04.ets | 5 +- .../01.union_types_normalization/utn05.ets | 5 +- .../01.union_types_normalization/utn06.ets | 2 +- .../01.union_types_normalization/utn07.ets | 2 +- .../01.union_types_normalization/utn08.ets | 2 +- .../01.union_types_normalization/utn09.ets | 2 +- .../01.union_types_normalization/utn10.ets | 5 +- .../01.union_types_normalization/utn11.ets | 5 +- .../01.union_types_normalization/utn12.ets | 5 +- .../01.union_types_normalization/utn13.ets | 5 +- .../01.union_types_normalization/utn14.ets | 5 +- .../01.union_types_normalization/utn15.ets | 7 +- .../01.union_types_normalization/utn16.ets | 5 +- .../accessto_common_union_members_0.ets | 2 +- .../accessto_common_union_members_1.ets | 2 +- .../accessto_common_union_members_10.ets | 2 +- .../accessto_common_union_members_11.ets | 2 +- .../accessto_common_union_members_12.ets | 2 +- .../accessto_common_union_members_13.ets | 2 +- .../accessto_common_union_members_14.ets | 4 +- .../accessto_common_union_members_15.ets | 2 +- .../accessto_common_union_members_16.ets | 2 +- .../accessto_common_union_members_17.ets | 2 +- .../accessto_common_union_members_18.ets | 2 +- .../accessto_common_union_members_19.ets | 2 +- .../accessto_common_union_members_2.ets | 10 +- .../accessto_common_union_members_20.ets | 6 +- .../accessto_common_union_members_21.ets | 4 +- .../accessto_common_union_members_22.ets | 2 +- .../accessto_common_union_members_3.ets | 2 +- .../accessto_common_union_members_4.ets | 2 +- .../accessto_common_union_members_5.ets | 2 +- .../accessto_common_union_members_6.ets | 4 +- .../accessto_common_union_members_7.ets | 2 +- .../accessto_common_union_members_8.ets | 2 +- .../accessto_common_union_members_9.ets | 2 +- .../cm_fld1.ets | 0 .../cm_fld1.params.yaml | 58 +- .../cm_fld2.ets | 0 .../cm_fld2.params.yaml | 60 +- .../cm_fld3.ets | 0 .../cm_fld3.params.yaml | 52 +- .../cm_meth1.ets | 0 .../cm_meth1.params.yaml | 105 +- .../cm_meth2.ets | 0 .../cm_meth2.params.yaml | 60 +- .../cm_meth3.ets | 0 .../cm_meth3.params.yaml | 52 +- .../cm_spec.ets | 0 .../cm_spec.params.yaml | 0 .../03.keyof_types/keyof_class.ets | 5 +- .../03.keyof_types/keyof_class.params.yaml | 0 .../03.keyof_types/keyof_example.ets | 3 +- .../03.keyof_types/keyof_example_neg.ets | 0 .../03.keyof_types/keyof_generic.ets | 1 - .../03.keyof_types/keyof_generic.params.yaml | 21 +- .../03.keyof_types/keyof_getter_setter.ets | 0 .../keyof_getter_setter.params.yaml | 20 +- .../03.keyof_types/keyof_inheritance.ets | 1 - .../keyof_inheritance.params.yaml | 122 +- .../03.keyof_types/keyof_interface.ets | 5 +- .../keyof_interface.params.yaml | 0 .../03.keyof_types/keyof_module.ets | 0 .../03.keyof_types/keyof_module.params.yaml | 15 +- .../03.keyof_types/keyof_predefined.ets | 1 + .../keyof_predefined.params.yaml | 0 .../03.keyof_types/keyof_unsupported.ets | 0 .../keyof_unsupported.params.yaml | 0 .../03.keyof_types/module.ets | 0 .../assignment_of_arrays_with_union_types.ets | 4 +- ...ent_of_arrays_with_union_types.params.yaml | 0 ...ssignment_of_arrays_with_union_types_n.ets | 2 - ...t_of_arrays_with_union_types_n.params.yaml | 90 + .../types_as_function.ets | 2 +- .../types_as_function.params.yaml | 0 .../types_as_function_n.ets | 0 .../types_as_function_n.params.yaml | 0 .../union_type_assignment.ets | 2 - .../union_type_assignment.params.yaml | 284 +- .../union_type_error_assignment.ets | 0 .../union_type_error_assignment.params.yaml | 28 +- .../union_type_narrowing_attribute.ets | 0 ...union_type_narrowing_attribute.params.yaml | 38 +- .../union_type_narrowing_attribute_n.ets | 0 ...ion_type_narrowing_attribute_n.params.yaml | 0 .../united_switch_ext.ets | 0 .../united_switch_ext.params.yaml | 56 +- .../{20.union_types => 19.union_types}/ut.ets | 0 .../03.types/19.union_types/ut.params.yaml | 574 ++ .../ut_2.params.yaml | 10 - .../ut_2.ets => 19.union_types/ut_2.sts} | 0 .../ut_n.ets | 0 .../ut_n.params.yaml | 20 +- .../ut_n2.ets | 3 +- .../ut_n2.params.yaml | 3 +- .../array_nullable_types.ets | 2 +- .../array_nullable_types.params.yaml | 4 +- .../assign_nullable_to_object.ets | 0 .../assign_nullable_to_object.params.yaml | 0 .../nullable_primitive_types.ets | 0 .../nullable_primitive_types.params.yaml | 0 .../nullable_types_operations_0.ets | 4 +- .../nullable_types_operations_1.ets | 4 +- .../nullable_types_operations_10.ets | 4 +- .../nullable_types_operations_11.ets | 6 +- .../nullable_types_operations_12.ets | 6 +- .../nullable_types_operations_13.ets | 4 +- .../nullable_types_operations_14.ets | 2 +- .../nullable_types_operations_15.ets | 4 +- .../nullable_types_operations_16.ets | 8 +- .../nullable_types_operations_2.ets | 4 +- .../nullable_types_operations_3.ets | 6 +- .../nullable_types_operations_4.ets | 8 +- .../nullable_types_operations_5.ets | 6 +- .../nullable_types_operations_6.ets | 4 +- .../nullable_types_operations_7.ets | 6 +- .../nullable_types_operations_8.ets | 4 +- .../nullable_types_operations_9.ets | 2 +- .../nullish_not_compatible_with_object_n0.ets | 2 +- .../nullish_not_compatible_with_object_n1.ets | 2 +- .../nullish_not_compatible_with_object_n2.ets | 4 +- .../nullish_not_compatible_with_object_n3.ets | 4 +- .../nullish_pt.ets | 0 .../nullish_pt.params.yaml | 0 .../reference_nullable_types.ets | 2 +- .../reference_nullable_types.params.yaml | 6 +- .../norm.params.yaml | 490 -- .../01.union_types_normalization/utn01.ets | 36 - .../01.union_types_normalization/utn17.ets | 25 - .../01.union_types_normalization/utn18.ets | 25 - .../cm_meth1_1.ets.expected.err | 15 - .../cm_meth1_10.ets.expected.err | 15 - .../cm_meth1_11.ets.expected.err | 15 - .../cm_meth1_12.ets.expected.err | 15 - .../cm_meth1_2.ets.expected.err | 15 - .../cm_meth1_3.ets.expected.err | 15 - .../cm_meth1_4.ets.expected.err | 15 - .../cm_meth1_5.ets.expected.err | 15 - .../cm_meth1_6.ets.expected.err | 15 - .../cm_meth1_7.ets.expected.err | 15 - .../cm_meth1_8.ets.expected.err | 15 - .../cm_meth1_9.ets.expected.err | 15 - .../cm_meth2_0.ets.expected.err | 15 - .../cm_meth2_1.ets.expected.err | 15 - .../cm_meth2_10.ets.expected.err | 15 - .../cm_meth2_11.ets.expected.err | 15 - .../cm_meth2_12.ets.expected.err | 15 - .../cm_meth2_2.ets.expected.err | 15 - .../cm_meth2_3.ets.expected.err | 15 - .../cm_meth2_4.ets.expected.err | 15 - .../cm_meth2_5.ets.expected.err | 15 - .../cm_meth2_6.ets.expected.err | 15 - .../cm_meth2_7.ets.expected.err | 15 - .../cm_meth2_8.ets.expected.err | 15 - .../cm_meth2_9.ets.expected.err | 15 - .../cm_meth3_0.ets.expected.err | 15 - .../cm_meth3_1.ets.expected.err | 15 - .../cm_meth3_10.ets.expected.err | 15 - .../cm_meth3_11.ets.expected.err | 15 - .../cm_meth3_12.ets.expected.err | 15 - .../cm_meth3_2.ets.expected.err | 15 - .../cm_meth3_4.ets.expected.err | 15 - .../cm_meth3_5.ets.expected.err | 15 - .../cm_meth3_6.ets.expected.err | 15 - .../cm_meth3_7.ets.expected.err | 15 - .../cm_meth3_8.ets.expected.err | 15 - .../cm_meth3_9.ets.expected.err | 15 - .../cm_spec_0.ets.expected.err | 15 - .../03.keyof_types/keyof_empty.ets | 23 - .../03.keyof_types/keyof_neg.ets | 31 - ...t_of_arrays_with_union_types_n.params.yaml | 90 - .../03.types/20.union_types/ut.params.yaml | 582 --- .../default_value_for_classes.ets | 2 +- .../default_value_for_classes.params.yaml | 0 .../default_value_for_global_parameter.ets | 2 +- ...ult_value_for_global_parameter.params.yaml | 0 .../default_value_for_nullable_types.ets | 2 +- ...fault_value_for_nullable_types.params.yaml | 0 .../default_value_for_primitive_types.ets | 2 +- ...ault_value_for_primitive_types.params.yaml | 0 .../default_value_for_reference_types.ets | 4 +- .../assn_var/assn-var-neg.params.yaml | 12 +- .../alias_conversion/assn_var/assn-var.ets | 2 +- .../assn_var/assn-var.params.yaml | 242 +- .../call_cons/call-cons-nan.ets | 2 +- .../call_cons/call-cons-neg.params.yaml | 52 +- .../alias_conversion/call_cons/call-cons.ets | 2 +- .../call_cons/call-cons.params.yaml | 246 +- .../call_func/call-func-nan.ets | 2 +- .../call_func/call-func-neg.params.yaml | 12 +- .../alias_conversion/call_func/call-func.ets | 2 +- .../call_func/call-func.params.yaml | 242 +- .../call_lmbd/call-lmbd-nan.ets | 2 +- .../call_lmbd/call-lmbd-neg.params.yaml | 12 +- .../alias_conversion/call_lmbd/call-lmbd.ets | 2 +- .../call_lmbd/call-lmbd.params.yaml | 246 +- .../call_meth/call-meth-nan.ets | 2 +- .../call_meth/call-meth-neg.params.yaml | 12 +- .../alias_conversion/call_meth/call-meth.ets | 2 +- .../call_meth/call-meth.params.yaml | 242 +- .../comp_arr/comp-arr-nan.ets | 2 +- .../comp_arr/comp-arr-neg.params.yaml | 12 +- .../alias_conversion/comp_arr/comp-arr.ets | 2 +- .../comp_arr/comp-arr.params.yaml | 242 +- .../comp_obj/comp-clss-nan.ets | 2 +- .../comp_obj/comp-clss-neg.params.yaml | 12 +- .../alias_conversion/comp_obj/comp-clss.ets | 2 +- .../comp_obj/comp-clss.params.yaml | 228 +- .../comp_obj/comp-intf-nan.ets | 2 +- .../comp_obj/comp-intf-neg.params.yaml | 12 +- .../alias_conversion/comp_obj/comp-intf.ets | 2 +- .../comp_obj/comp-intf.params.yaml | 242 +- .../decl_const/decl-const-nan.ets | 2 +- .../decl_const/decl-const-neg.params.yaml | 12 +- .../decl_const/decl-const.ets | 2 +- .../decl_const/decl-const.params.yaml | 242 +- .../decl_field/decl-field-nan.ets | 2 +- .../decl_field/decl-field-neg.params.yaml | 12 +- .../decl_field/decl-field.ets | 2 +- .../decl_field/decl-field.params.yaml | 242 +- .../decl_var/decl-var-neg.params.yaml | 52 +- .../alias_conversion/decl_var/decl-var.ets | 2 +- .../decl_var/decl-var.params.yaml | 242 +- .../alias_unconversion/assn_var/assn-var.ets | 7 +- .../assn_var/assn-var.params.yaml | 238 +- .../call_cons/call-cons.ets | 7 +- .../call_cons/call-cons.params.yaml | 239 +- .../call_func/call-func.ets | 7 +- .../call_func/call-func.params.yaml | 238 +- .../call_lmbd/call-lmbd.params.yaml | 88 +- .../call_meth/call-meth.ets | 7 +- .../call_meth/call-meth.params.yaml | 238 +- .../alias_unconversion/comp_arr/comp-arr.ets | 7 +- .../comp_arr/comp-arr.params.yaml | 238 +- .../alias_unconversion/comp_obj/comp-clss.ets | 7 +- .../comp_obj/comp-clss.params.yaml | 238 +- .../alias_unconversion/comp_obj/comp-intf.ets | 7 +- .../comp_obj/comp-intf.params.yaml | 238 +- .../decl_const/decl-const.ets | 6 +- .../decl_const/decl-const.params.yaml | 238 +- .../decl_field/decl-field.ets | 7 +- .../decl_field/decl-field.params.yaml | 238 +- .../alias_unconversion/decl_var/decl-var.ets | 7 +- .../decl_var/decl-var.params.yaml | 238 +- .../ets-templates/03.types/type_params.ets | 2 +- .../01.names/qualified_name.ets | 2 +- .../spec_decl1.ets | 0 .../spec_decl2.ets | 0 .../spec_decl2_co.ets | 0 .../spec_decl2_rt.ets | 0 .../spec_decl_n1.ets | 0 .../spec_decl_n10.ets | 0 .../spec_decl_n11.ets | 0 .../spec_decl_n3.ets | 0 .../spec_decl_n4.ets | 0 .../spec_decl_n5.ets | 0 .../spec_decl_n6.ets | 0 .../spec_decl_n7.ets | 0 .../spec_decl_n8.ets | 0 .../spec_decl_n9.ets | 0 .../type_declaration_areas.params.yaml | 164 - .../type_name_class_field.params.yaml | 395 -- .../type_name_interface_prop.params.yaml | 304 -- .../type_name_params.params.yaml | 229 - .../{03.scopes => 04.scopes}/class_level.ets | 8 +- .../class_level_protected1.ets | 6 +- .../class_level_protected2.ets | 14 +- .../class_level_public.ets | 10 +- .../{03.scopes => 04.scopes}/diff_spaces.ets | 0 .../function_level.ets | 6 +- .../function_level_n1.ets | 2 +- .../{03.scopes => 04.scopes}/hoisting.ets | 0 .../interface_level1.ets | 10 +- .../interface_level2.ets | 6 +- .../{03.scopes => 04.scopes}/module_level.ets | 8 +- .../{03.scopes => 04.scopes}/nested1.ets | 6 +- .../{03.scopes => 04.scopes}/nested2.ets | 6 +- .../{03.scopes => 04.scopes}/nested3_n.ets | 2 +- .../package_level.ets | 8 +- .../type_param_class.ets | 6 +- .../type_param_class_neg.ets | 0 .../type_param_class_neg_1.ets | 0 .../type_param_class_neg_2.ets | 0 .../type_param_class_neg_3.ets | 0 .../type_param_func.ets | 4 +- .../type_param_interface.ets | 10 +- .../unique_block_decl.ets | 0 .../unique_block_decl_1.ets | 0 .../unique_class_decl.ets | 0 .../unique_decl_name.ets | 0 .../unique_decl_name.params.yaml | 0 .../unique_enum_decl.ets | 0 .../unique_func_decl.ets | 0 .../unique_intf_decl.ets | 0 .../type_declaration_areas.ets | 1 - .../type_declaration_areas.params.yaml | 167 + .../type_name_class_field.ets | 0 .../type_name_class_field.params.yaml | 395 ++ .../type_name_const.ets | 38 +- .../type_name_const.params.yaml | 71 +- .../type_name_const_enum.ets | 38 +- .../type_name_const_enum.params.yaml | 2 +- .../type_name_interface_prop.ets | 0 .../type_name_interface_prop.params.yaml | 304 ++ .../type_name_neg.ets | 0 .../type_name_neg.params.yaml | 4 +- .../type_name_params.ets | 0 .../type_name_params.params.yaml | 229 + .../type_name_variable.ets | 38 +- .../type_name_variable.params.yaml | 70 +- .../type_name_variable_enum.ets | 38 +- .../type_name_variable_enum.params.yaml | 2 +- .../alias.params.yaml | 214 - .../alias_instance_type.ets | 31 - .../alias_neg.params.yaml | 155 - .../namespace_type_decl_0.ets | 34 - .../namespace_type_decl_1.ets | 32 - .../namespace_type_decl_2.ets | 44 - .../namespace_type_decl_bad_0.ets | 29 - .../namespace_type_decl_bad_1.ets | 29 - .../01.type_alias_declaration/spec_neg_1.ets | 24 - .../01.type_alias_declaration/spec_neg_2.ets | 23 - .../01.type_alias_declaration/spec_neg_3.ets | 22 - .../type_declaration_bad_0.ets | 23 - .../type_declaration_bad_1.ets | 23 - .../type_declaration_bad_2.ets | 33 - .../type_inside_decl_0.ets | 33 - .../type_inside_decl_1.ets | 36 - .../type_inside_decl_2.ets | 35 - .../type_declaration_before_use.ets | 36 - .../01.type_alias_declaration/alias.ets | 0 .../alias.params.yaml | 214 + .../01.type_alias_declaration/alias_gen.ets | 0 .../alias_gen.params.yaml | 30 +- .../01.type_alias_declaration/alias_neg.ets | 0 .../alias_neg.params.yaml | 87 + .../01.type_alias_declaration/mod/mod.ets | 0 .../mod/mod.params.yaml | 0 .../01.type_alias_declaration/pkg_a/pkg.ets | 0 .../pkg_a/pkg.params.yaml | 0 .../01.type_alias_declaration/scope.ets | 2 +- .../scope.params.yaml | 0 .../01.type_alias_declaration/spec1.ets | 2 +- .../01.type_alias_declaration/spec2.ets | 2 +- .../01.type_alias_declaration/spec3.ets | 2 +- .../01.type_alias_declaration/spec4.ets | 2 +- .../01.type_alias_declaration/spec5.ets | 2 +- .../decl.ets | 2 +- .../decl.params.yaml | 0 .../infer2_12.ets.expected | 14 - .../infer2_12.ets.expected.err | 21 - .../readonly.params.yaml | 164 - .../readonly_second_level_access_0.ets | 31 - .../readonly_second_level_access_1.ets | 31 - .../opt_param.params.yaml | 384 -- .../opt_param_n.params.yaml | 101 - .../class_constructor_declaration_0.ets | 46 - .../class_constructor_declaration_1.ets | 49 - .../class_constructor_declaration_bad.ets | 33 - .../class_method_call_bad.ets | 34 - .../class_method_declaration_0.ets | 43 - .../class_method_declaration_1.ets | 55 - .../class_receiver_function.ets | 38 - .../05.rest_parameter/function_call_bad.ets | 27 - .../function_declarations_7_1.ets | 29 - .../generic_array_type_as_rest.ets | 34 - .../05.rest_parameter/generic_rest_0.ets | 32 - .../05.rest_parameter/generic_rest_1.ets | 33 - .../05.rest_parameter/generic_rest_2.ets | 33 - .../05.rest_parameter/generic_rest_tuple.ets | 40 - .../generic_rest_tuple_negative.ets | 28 - .../05.rest_parameter/interface_method.ets | 58 - .../05.rest_parameter/interface_to_rest_0.ets | 32 - .../05.rest_parameter/interface_to_rest_1.ets | 30 - .../optional_and_rest_tuple_to_spread_0.ets | 26 - .../optional_and_rest_tuple_to_spread_1.ets | 26 - .../optional_and_rest_tuple_to_spread_2.ets | 26 - .../05.rest_parameter/record_to_rest.ets | 28 - .../rest_parameter.params.yaml | 278 - .../rest_parameter_neg.params.yaml | 94 - .../lambda_scope_1.ets | 31 - .../lambda_scope_2.ets | 30 - .../07.return_type/ret_type_class_method.ets | 27 - .../ret_type_class_method.params.yaml | 474 -- .../ret_type_interface_method.ets | 27 - .../ret_type_interface_method.params.yaml | 264 - .../07.return_type/ret_type_lambda.ets | 27 - .../ret_type_lambda.params.yaml | 186 - .../ret_type_infer.params.yaml | 512 -- .../ret_type_infer_negative_0.ets | 26 - .../incorrect_var_decl.ets | 0 .../incorrect_var_decl.params.yaml | 2 - .../01.variable_declarations/var_decl.ets | 2 +- .../var_decl.params.yaml | 2 +- .../variable_declarations_0.ets | 2 +- .../variable_declarations_1.ets | 16 +- .../variable_declarations_10.ets | 23 + .../variable_declarations_11.ets | 2 +- .../variable_declarations_12.ets | 4 +- .../variable_declarations_13.ets | 4 +- .../variable_declarations_14.ets | 6 +- .../variable_declarations_15.ets | 25 + .../variable_declarations_16.ets | 13 +- .../variable_declarations_2.ets | 6 +- .../variable_declarations_3.ets | 2 +- .../variable_declarations_4.ets | 6 +- .../variable_declarations_5.ets | 24 + .../variable_declarations_6.ets | 2 +- .../variable_declarations_7.ets | 4 +- .../variable_declarations_8.ets | 2 +- .../variable_declarations_9.ets | 4 +- .../bad_const_decl.ets | 0 .../bad_const_decl.params.yaml | 0 .../02.constant_declarations/const_decl.ets | 2 +- .../const_decl.params.yaml | 0 .../initializer_compatibility.ets | 0 .../initializer_compatibility.params.yaml | 6 +- .../initializer_compatibility_n.ets | 0 .../initializer_compatibility_n.params.yaml | 1 + .../infer.ets | 2 +- .../infer.params.yaml | 8 +- .../infer2.ets | 0 .../infer2.params.yaml | 57 +- .../infer_n.ets | 2 +- .../infer_n1.ets | 0 .../infer_n2.ets | 0 .../infer_n3.ets | 0 .../infer_n4.ets | 0 .../type_inference_from_initializer_0.ets | 2 +- .../type_inference_from_initializer_1.ets | 2 +- .../type_inference_from_initializer_10.ets | 2 +- .../type_inference_from_initializer_11.ets | 2 +- .../type_inference_from_initializer_12.ets | 2 +- .../type_inference_from_initializer_13.ets | 4 +- .../type_inference_from_initializer_14.ets | 6 +- .../type_inference_from_initializer_15.ets | 4 +- .../type_inference_from_initializer_2.ets | 4 +- .../type_inference_from_initializer_3.ets | 2 +- .../type_inference_from_initializer_4.ets | 2 +- .../type_inference_from_initializer_5.ets | 4 +- .../type_inference_from_initializer_6.ets | 4 +- .../type_inference_from_initializer_7.ets | 2 +- .../type_inference_from_initializer_8.ets | 2 +- .../type_inference_from_initializer_9.ets | 2 +- .../overload_function_decl.ets | 33 - .../overload_function_decl.params.yaml | 464 -- .../overload_function_decl_cte.ets | 31 - .../overload_function_decl_cte.params.yaml | 208 - .../overload_function_decl_rte.ets | 31 - .../overload_function_decl_rte.params.yaml | 125 - .../overload_function_export.ets | 26 - .../overload_function_export.params.yaml | 297 -- .../overload_function_import.ets | 30 - .../overload_function_import.params.yaml | 257 - .../overload_method_decl.ets | 122 - .../overload_method_decl.params.yaml | 1376 ----- .../overload_method_decl_cte.ets | 31 - .../overload_method_decl_cte.params.yaml | 625 --- .../overload_method_decl_rte.ets | 31 - .../overload_method_decl_rte.params.yaml | 163 - .../overload_constructor_decl.ets | 137 - .../overload_constructor_decl.params.yaml | 674 --- .../overload_constructor_decl_cte.ets | 31 - .../overload_constructor_decl_cte.params.yaml | 385 -- .../02.parameter_list/param_list.ets | 0 .../02.parameter_list/param_list.params.yaml | 8 +- .../02.parameter_list/param_list_neg.ets | 0 .../param_list_neg.params.yaml | 0 .../02.parameter_list/spec_example.ets | 4 +- .../03.readonly_parameters/readonly.ets | 0 .../readonly.params.yaml | 99 + .../readonly_context_and_conversion.ets | 2 +- ...eadonly_context_and_conversion.params.yaml | 24 +- .../readonly_custom_neg.ets | 0 .../readonly_custom_neg.params.yaml | 58 +- .../readonly_edit_arr_neg.ets | 0 .../readonly_edit_arr_neg.params.yaml | 0 .../readonly_edit_tuple_neg.ets | 0 .../readonly_edit_tuple_neg.params.yaml | 0 .../03.readonly_parameters/readonly_neg_2.ets | 0 .../readonly_neg_2.params.yaml | 0 .../04.optional_parameters/opt_param.ets | 0 .../opt_param.params.yaml | 250 + .../04.optional_parameters/opt_param_n.ets | 0 .../opt_param_n.params.yaml | 47 + .../function_declarations_0.ets | 2 +- .../function_declarations_1.ets | 2 +- .../function_declarations_10.ets | 2 +- .../function_declarations_11.ets | 2 +- .../function_declarations_2.ets | 2 +- .../function_declarations_3.ets | 2 +- .../function_declarations_4.ets | 4 +- .../function_declarations_5.ets | 6 +- .../function_declarations_6.ets | 0 .../function_declarations_7.ets | 10 +- .../function_declarations_8.ets | 0 .../function_declarations_9.ets | 0 .../05.rest_parameter/rest_parameter.ets | 0 .../rest_parameter.params.yaml | 203 + .../05.rest_parameter/rest_parameter_neg.ets | 0 .../rest_parameter_neg.params.yaml | 58 + .../06.shadowing_parameters/scope1.ets | 0 .../06.shadowing_parameters/scope2.ets | 0 .../06.shadowing_parameters/scope_neg1.ets | 0 .../06.shadowing_parameters/scope_neg2.ets | 0 .../06.shadowing_parameters/shadowing1.ets | 0 .../06.shadowing_parameters/shadowing2.ets | 0 .../06.shadowing_parameters/shadowing3.ets | 0 .../07.return_type/ret_type.ets | 0 .../07.return_type/ret_type.params.yaml | 43 +- .../07.return_type/ret_type_neg.ets | 0 .../07.return_type/ret_type_neg.params.yaml | 20 - .../ret_type_infer.ets | 0 .../ret_type_infer.params.yaml | 320 ++ .../function_decl.ets | 0 .../function_decl.params.yaml | 16 +- .../function_decl2.ets | 0 .../function_decl2.params.yaml | 0 .../function_decl_neg.ets | 0 .../function_decl_neg.params.yaml | 4 +- .../nested_function.ets | 0 .../nested_function2.ets | 0 .../nested_function3.ets | 0 .../nested_function4.ets | 0 .../throws_clause_1.ets | 0 .../throws_clause_2.ets | 0 .../throws_clause_3.ets | 0 ...ric_class_object_compatibility.params.yaml | 2 +- .../generic_function_constraint.ets | 2 +- .../generic_function_constraint.params.yaml | 2 +- .../generic_function_constraint_multiple.ets | 2 +- .../generic_method_with_body_constraint.ets | 4 +- ...ic_method_with_body_constraint.params.yaml | 4 +- ...c_method_with_body_constraint_multiple.ets | 4 +- ...hod_with_body_wrong_constraint.params.yaml | 2 + .../generic_type_alias_constraint.ets | 46 - .../generic_type_alias_constraint.params.yaml | 69 - ...ic_type_alias_constraint_extends_class.ets | 53 - ..._type_alias_constraint_extends_class_2.ets | 37 - .../generic_type_alias_example.ets | 54 - .../generic_type_alias_example.params.yaml | 47 - .../generic_type_alias_i_constraint.ets | 40 - ...eneric_type_alias_i_constraint.params.yaml | 68 - ...alias_i_constraint_extends_Interface_2.ets | 40 - ...e_alias_i_constraint_extends_interface.ets | 47 - .../generic_type_alias_i_self_dependency.ets | 31 - ...c_type_alias_i_self_dependency.params.yaml | 21 - ...eric_type_alias_i_self_dependency_fake.ets | 36 - ...e_alias_i_self_dependency_fake.params.yaml | 39 - .../generic_type_alias_i_wrong_constraint.ets | 32 - ..._type_alias_i_wrong_constraint.params.yaml | 31 - ...s_i_wrong_constraint_extends_interface.ets | 47 - ...g_constraint_extends_interface.params.yaml | 21 - ...eneric_type_alias_object_compatibility.ets | 30 - ...ype_alias_object_compatibility.params.yaml | 69 - .../generic_type_alias_self_dependency.ets | 31 - ...ric_type_alias_self_dependency.params.yaml | 26 - ...eneric_type_alias_self_dependency_fake.ets | 45 - ...ype_alias_self_dependency_fake.params.yaml | 60 - ...generic_type_alias_union_normalization.ets | 28 - ...type_alias_union_normalization.params.yaml | 81 - .../generic_type_alias_wrong_constraint.ets | 35 - ...ic_type_alias_wrong_constraint.params.yaml | 35 - ...e_alias_wrong_constraint_extends_class.ets | 53 - ...wrong_constraint_extends_class.params.yaml | 21 - .../function_missing_nondefault_parameter.ets | 2 +- .../method_missing_nondefault_parameter.ets | 2 +- .../type_alias_i_type_parameter_default.ets | 35 - ...alias_i_type_parameter_default.params.yaml | 89 - .../type_alias_type_parameter_default.ets | 35 - ...e_alias_type_parameter_default.params.yaml | 89 - ...e_alias_i_missing_nondefault_parameter.ets | 27 - ...ng_type_alias_i_type_parameter_default.ets | 35 - ...alias_i_type_parameter_default.params.yaml | 23 - ...ype_alias_missing_nondefault_parameter.ets | 27 - ...rong_type_alias_type_parameter_default.ets | 35 - ...e_alias_type_parameter_default.params.yaml | 23 - .../class_type_parameter_variance.ets | 4 +- .../func_type_variance_interleaving.ets | 4 +- .../type_parameter_variance.ets | 6 +- .../type_parameter_variance_in.ets | 2 +- .../type_parameter_variance_out.ets | 3 +- .../type_parameter_variance_out.params.yaml | 20 +- .../wrong_type_parameter_variance.ets | 2 +- .../wrong_variance_modifier_use.ets | 2 +- .../wrong_variance_modifier_use.ets | 27 - .../wrong_variance_modifier_use.params.yaml | 141 - .../func_type_variance_interleaving.ets | 4 +- .../interface_type_parameter_variance.ets | 4 +- .../type_parameter_variance.ets | 6 +- .../type_parameter_variance_in.ets | 2 +- .../type_parameter_variance_out.ets | 3 +- .../type_parameter_variance_out.params.yaml | 20 +- .../wrong_type_parameter_variance.ets | 2 +- .../wrong_variance_modifier_use.ets | 2 +- .../generic_class_self_dependency.ets | 33 + .../generic_class_self_dependency.params.yaml | 26 + .../generic_interface_self_dependency.ets | 29 + ...eric_interface_self_dependency.params.yaml | 21 + .../class_args.ets | 1 - .../class_args.params.yaml | 56 +- .../class_args_neg.params.yaml | 21 - .../constr_args1.ets | 1 - .../constr_args1.params.yaml | 20 - .../constr_args2.ets | 1 - .../constr_args2.params.yaml | 55 +- .../func_args1.params.yaml | 2 +- .../wrong_wildcard_bound.params.yaml | 2 +- ...rong_wildcard_bound_funcgener_negative.ets | 37 - ...dcard_bound_funcgener_negative.params.yaml | 32 - ...rong_wildcard_bound_funcgener_positive.ets | 37 - ...dcard_bound_funcgener_positive.params.yaml | 32 - .../class.ets | 5 +- .../class.params.yaml | 108 +- .../class_n.ets | 4 +- .../class_n2.ets | 4 +- .../class_n3.ets | 4 +- .../func.ets | 5 +- .../func.params.yaml | 109 +- .../func_n.ets | 4 +- .../func_n.params.yaml | 4 +- .../func_n2.ets | 4 +- .../func_n3.ets | 4 +- .../interface.ets | 4 +- .../interface.params.yaml | 83 +- .../interface_n.ets | 4 +- .../interface_n2.ets | 4 +- .../interface_n3.ets | 9 +- .../interface_n4.ets | 5 +- .../lmbd.ets | 30 + .../lmbd.params.yaml | 91 + .../lmbd_n.ets | 30 + .../lmbd_n.params.yaml | 30 + .../lmbd_n2.ets | 26 + .../meth.ets | 5 +- .../meth.params.yaml | 123 +- .../meth_n.ets | 4 +- .../meth_n.params.yaml | 6 +- .../variance.ets | 44 - .../variance.params.yaml | 47 - .../variance_neg.ets | 46 - .../variance_neg.params.yaml | 38 - .../func.params.yaml | 48 +- .../lmbd.ets | 30 + .../lmbd.params.yaml | 97 + .../lmbd_n.ets | 30 + .../lmbd_n.params.yaml | 30 + .../meth.params.yaml | 48 +- .../awaited_parameter.ets | 31 - .../awaited_parameter.params.yaml | 28 - .../awaited_return.ets | 32 - .../awaited_return.params.yaml | 39 - .../awaited_simple.ets | 29 - .../awaited_simple.params.yaml | 77 - .../incorrect_parameter.ets | 0 .../incorrect_parameter.params.yaml | 0 .../method_excluded_from_partial.ets | 0 .../method_excluded_from_partial.params.yaml | 4 +- .../module_abstract.ets | 0 .../module_class.ets | 2 +- .../module_class.params.yaml | 0 .../module_extends.ets | 2 +- .../module_extends.params.yaml | 0 .../module_implements.ets | 2 +- .../module_implements.params.yaml | 0 .../module_interface.ets | 2 +- .../module_interface.params.yaml | 0 .../partial_abstract.ets | 0 .../partial_compatibility.ets | 0 .../partial_compatibility.params.yaml | 0 .../partial_example_getter_setter.ets | 4 +- .../partial_example_transform.ets | 2 +- .../partial_generic.ets | 0 .../partial_generic.params.yaml | 0 .../partial_getter_and_setter.ets | 4 +- .../partial_getter_and_setter.params.yaml | 0 .../partial_getter_and_setter_int.ets | 8 +- .../partial_getter_and_setter_int.params.yaml | 0 .../partial_inherit.ets | 0 .../partial_inherit2.ets | 0 .../partial_inherit3.ets | 68 + .../partial_type.ets | 2 +- .../partial_type.params.yaml | 0 .../partial_type_interface.ets | 2 +- .../partial_type_interface.params.yaml | 0 .../static_partial_type.ets | 0 .../static_partial_type.params.yaml | 20 +- .../01.partial_utility_type/type.ets | 53 + .../type.params.yaml | 0 .../nonnullable_utility_2_never.ets | 34 - .../nonnullable_utility_2_never.params.yaml | 29 - .../nonnullable_utility_type.ets | 41 - .../nonnullable_utility_type.params.yaml | 27 - .../spec_sample.ets | 34 - .../incorrect_parameter.ets | 2 +- .../incorrect_parameter.params.yaml | 0 .../method_excluded_from_required.ets | 0 .../method_excluded_from_required.params.yaml | 0 .../required_abstract.ets | 0 .../required_compatibility.ets | 4 +- .../required_compatibility.params.yaml | 0 .../required_compatibility_neg.ets | 0 .../required_compatibility_neg.params.yaml | 0 .../required_example.ets | 0 .../required_example_neg.ets | 0 .../required_getter_and_setter.ets | 2 +- .../required_getter_and_setter.params.yaml | 2 +- .../required_getter_and_setter_int.ets | 2 +- .../required_getter_and_setter_neg.ets | 0 ...required_getter_and_setter_neg.params.yaml | 0 .../required_module_abstract.ets | 0 .../required_module_class.ets | 2 +- .../required_module_class.params.yaml | 0 .../required_module_extends.ets | 0 .../required_module_implements.ets | 2 +- .../required_module_implements.params.yaml | 0 .../required_module_interface.ets | 2 +- .../required_module_interface.params.yaml | 0 .../required_no_fields.ets | 0 .../required_no_fields.params.yaml | 0 .../required_type.ets | 2 +- .../required_type.params.yaml | 0 .../02.required_utility_type/type.ets | 54 + .../type.params.yaml | 0 .../bad_partial_type.ets | 31 - .../bad_partial_type.params.yaml | 20 - .../partial_inherit3.ets | 68 - .../03.partial_utility_type/type.ets | 53 - .../example_edit_readonly_field.ets | 0 .../example_readonly_assignability.ets | 0 .../method_excluded_from_readonly.ets | 0 .../method_excluded_from_readonly.params.yaml | 4 +- .../readonly_type.ets | 4 +- .../readonly_type.params.yaml | 0 .../readonly_type_compatibility.ets | 24 +- .../readonly_type_compatibility_neg.ets | 0 ...eadonly_type_compatibility_neg.params.yaml | 0 .../readonly_type_neg.ets | 0 .../readonly_type_neg.params.yaml | 0 .../readonly_type_of_union.ets | 4 +- .../readonly_type_of_union.params.yaml | 0 .../readonly_type_reassignment.ets | 0 .../readonly_type_reassignment.params.yaml | 0 .../rec.ets | 0 .../04.record_utility_type/rec.params.yaml | 254 + .../rec2.ets | 6 +- .../rec2.params.yaml | 43 +- .../rec3.ets | 8 +- .../rec3.params.yaml | 0 .../bad_required_type.ets | 31 - .../bad_required_type.params.yaml | 20 - .../04.required_utility_type/type.ets | 54 - .../bad_readonly_type.ets | 31 - .../bad_readonly_type.params.yaml | 20 - .../private_field_check_0.ets | 0 .../private_field_check_1.ets | 0 .../private_field_check_2.ets | 0 .../private_field_check_3.ets | 0 .../private_field_check_4.ets | 0 .../utpf01.ets | 0 .../utpf02.ets | 0 .../utpf03.ets | 0 .../utpf04.ets | 0 .../utpf05.ets | 0 .../utpf06.ets | 0 .../utpf07.ets | 0 .../utpf08.ets | 0 .../utpf09.ets | 0 .../utpf10.ets | 0 .../utpf11.ets | 0 .../utpf12.ets | 0 .../utpf13.ets | 0 .../utpf14.ets | 0 .../utpf15.ets | 0 .../utpf16.ets | 0 .../utpf17.ets | 0 .../utpf18.ets | 0 .../utpf19.ets | 0 .../utpf20.ets | 0 .../utpf21.ets | 0 .../utpf22.ets | 0 .../utpf23.ets | 0 .../utpf24.ets | 0 .../utpf25.ets | 0 .../utpf26.ets | 0 .../utpf27.ets | 0 .../utpf28.ets | 0 .../utpf29.ets | 0 .../utpf30.ets | 0 .../utpf31.ets | 0 .../utpf32.ets | 0 .../utpf33.ets | 0 .../utpf34.ets | 0 .../utpf35.ets | 0 .../utpf36.ets | 0 .../utpf37.ets | 0 .../utpf38.ets | 0 .../utpf39.ets | 0 .../utpf40.ets | 0 .../utpf41.ets | 0 .../utpf42.ets | 0 .../utpf43.ets | 0 .../utpf44.ets | 0 .../utpf45.ets | 0 .../utpf46.ets | 0 .../utpf47.ets | 0 .../utpf48.ets | 0 .../utpf49.ets | 0 .../utpf50.ets | 0 .../06.record_utility_type/enum_record_0.ets | 28 - .../06.record_utility_type/enum_record_1.ets | 28 - .../incomplete_record_0.ets | 25 - .../incomplete_record_1.ets | 24 - .../incomplete_record_2.ets | 24 - .../incomplete_record_4.ets | 25 - .../06.record_utility_type/rec.params.yaml | 316 -- .../06.record_utility_type/union_in_rec.ets | 26 - .../bad_return_type_0.ets | 57 - .../bad_return_type_0.params.yaml | 33 - .../bad_return_type_1.ets | 74 - .../bad_return_type_1.params.yaml | 33 - .../return_type_func.ets | 41 - .../return_type_func.params.yaml | 26 - .../PartialWithGeneric.ets | 32 - .../09.nesting_utility_type/long_chain_0.ets | 52 - .../non_nullable_readonly_rec_field.ets | 34 - .../non_nullable_rec_0.ets | 33 - .../non_nullable_rec_1.ets | 34 - .../readonly_record_0.ets | 30 - .../readonly_record_1.ets | 30 - .../req_and_partial.ets | 34 - .../ut_nesting_ex0.ets | 31 - .../ut_nesting_ex1.ets | 32 - .../incorrect_utility_type.ets | 2 +- .../incorrect_utility_type.params.yaml | 6 +- .../incorrect_utility_type_usage.ets | 25 + .../incorrect_utility_type_usage.params.yaml | 18 + .../incorrect_utility_type_usage_0.ets | 25 - ...incorrect_utility_type_usage_0.params.yaml | 22 - .../incorrect_utility_type_usage_1.ets | 25 - ...incorrect_utility_type_usage_1.params.yaml | 22 - .../incorrect_utility_type_usage_2.ets | 25 - ...incorrect_utility_type_usage_2.params.yaml | 22 - .../incorrect_utility_type_usage_3.ets | 25 - ...incorrect_utility_type_usage_3.params.yaml | 22 - .../create_array_using_generic_types.ets | 7 +- ...eate_array_using_generic_types.params.yaml | 21 +- ..._array_using_generic_types_ext.params.yaml | 77 +- .../create_array_using_generic_types_new.ets | 7 +- ..._array_using_generic_types_new.params.yaml | 8 +- ...create_array_using_generic_types_run_n.ets | 5 +- ...rray_using_generic_types_run_n.params.yaml | 16 +- .../generic_inheritance.params.yaml | 54 +- .../implement_generic_interface.params.yaml | 106 +- ...implement_generic_interface_with_union.ets | 2 +- .../bridge_methods_generic.params.yaml | 39 +- .../function_generic.params.yaml | 16 +- .../generic_in_out/generic_in_out.params.yaml | 34 +- .../check_return_value_type.params.yaml | 56 +- .../generic_interface_function.params.yaml | 18 +- .../interface_generic.params.yaml | 36 +- ...ify_generic_method_params_case.params.yaml | 32 +- .../array_primitive.ets | 8 +- .../array_primitive.params.yaml | 0 .../array_primitive2.ets | 0 .../array_primitive2.params.yaml | 0 .../01.assignment-like_contexts/boxing.ets | 32 + .../boxing.params.yaml | 47 + .../01.assignment-like_contexts/boxing2.ets | 32 + .../boxing2.params.yaml | 47 + .../boxing2_call.ets | 54 + .../boxing2_call.params.yaml | 71 + .../boxing_call.ets | 54 + .../boxing_call.params.yaml | 47 + .../forbidden1.ets | 5 +- .../forbidden1.params.yaml | 62 +- .../forbidden2.ets | 9 +- .../forbidden2.params.yaml | 0 .../forbidden_compile2.ets | 3 +- .../forbidden_compile2.params.yaml | 0 .../identity.ets | 7 +- .../identity.params.yaml | 29 + .../identity2.ets | 7 +- .../identity2.params.yaml | 20 +- .../identity2_n.ets | 7 +- .../identity2_n.params.yaml | 1 + .../identity_call.ets | 18 +- .../identity_call.params.yaml | 30 + .../null.ets | 15 +- .../null.params.yaml | 0 .../null_call.ets | 19 +- .../null_call.params.yaml | 0 .../prim_boxing.ets | 2 +- .../prim_boxing.params.yaml | 2 +- .../prim_boxing_nan.ets | 4 +- .../prim_boxing_nan.params.yaml | 0 .../prim_narrowing.ets | 7 +- .../prim_narrowing.params.yaml | 103 + .../prim_unboxing.ets | 2 +- .../prim_unboxing.params.yaml | 0 .../prim_wide_narrow.ets | 7 +- .../prim_wide_narrow.params.yaml | 21 + .../prim_widening.ets | 0 .../prim_widening.params.yaml | 0 .../ref_widening.ets | 7 +- .../ref_widening.params.yaml | 0 .../ref_widening_neg.params.yaml | 29 + .../01.assignment-like_contexts/unboxing.ets | 32 + .../unboxing.params.yaml | 47 + .../01.assignment-like_contexts/unboxing2.ets | 32 + .../unboxing2.params.yaml | 94 + .../unboxing2_call.ets | 54 + .../unboxing2_call.params.yaml | 96 + .../unboxing_call.ets | 54 + .../unboxing_call.params.yaml | 47 + .../unrelated_call.ets | 8 +- .../unrelated_call.params.yaml | 0 .../unrelated_refs.ets | 7 +- .../unrelated_refs.params.yaml | 0 .../widening_prim.ets | 7 +- .../widening_prim.params.yaml | 12 +- .../widening_prim_call.ets | 8 +- .../widening_prim_call.params.yaml | 88 + .../widening_refs.ets | 7 +- .../widening_refs.params.yaml | 0 .../widening_refs_call.ets | 8 +- .../widening_refs_call.params.yaml | 0 .../widening_refs_unbox.ets | 8 +- .../widening_refs_unbox.params.yaml | 4 +- .../widening_refs_unbox_call.ets | 55 + .../widening_refs_unbox_call.params.yaml | 32 + .../non_standalone_expression.ets | 33 - .../non_standalone_expression.params.yaml | 36 - .../readonly_standalone_expression.ets | 25 - .../readonly_standalone_expression_n.ets | 26 - .../standalone_expression.ets | 33 - .../standalone_expression.params.yaml | 34 - .../standalone_expression_n.ets | 36 - .../standalone_expression_n.params.yaml | 19 - .../02.assignment-like_contexts/alias.ets | 30 - .../alias.params.yaml | 47 - .../02.assignment-like_contexts/alias2.ets | 29 - .../alias2.params.yaml | 94 - .../alias2_call.ets | 48 - .../alias2_call.params.yaml | 96 - .../alias_call.ets | 48 - .../alias_call.params.yaml | 47 - .../assign_context.ets | 29 - .../assign_context.params.yaml | 47 - .../02.assignment-like_contexts/call.ets | 48 - .../call.params.yaml | 47 - .../02.assignment-like_contexts/call2.ets | 48 - .../call2.params.yaml | 71 - .../identity.params.yaml | 29 - .../identity_call.params.yaml | 30 - .../02.assignment-like_contexts/widening2.ets | 29 - .../widening2.params.yaml | 47 - .../widening_prim_call.params.yaml | 88 - .../widening_refs2_call.ets | 49 - .../widening_refs2_call.params.yaml | 32 - .../conversion.ets | 4 +- .../conversion.params.yaml | 102 + .../str_null.ets | 2 +- .../str_null.params.yaml | 0 .../str_prim.ets | 4 +- .../str_prim.params.yaml | 4 +- .../str_ref.ets | 2 +- .../str_ref.params.yaml | 0 .../str_undefined.ets | 2 +- .../str_undefined.params.yaml | 0 .../result_type_arith.ets | 41 +- .../result_type_arith.params.yaml | 126 + .../result_type_arith_n.ets | 32 + .../result_type_arith_n.params.yaml | 2 +- .../result_type_bitwise.ets | 41 +- .../result_type_bitwise.params.yaml | 94 + .../result_type_bool.ets | 41 +- .../result_type_bool.params.yaml | 126 + .../result_type_bool_n.ets | 0 .../result_type_bool_n.params.yaml | 0 .../result_type_cond.ets | 41 +- .../result_type_cond.params.yaml | 126 + .../conv.ets | 7 +- .../conv.params.yaml | 80 + .../unary_numeric_promotion/array_access.ets | 11 +- .../array_access.params.yaml | 10 +- .../array_access_n.ets | 0 .../array_access_n.params.yaml | 2 +- .../array_creation.ets | 7 +- .../array_creation.params.yaml | 12 +- .../array_creation_n.ets | 2 +- .../array_creation_n.params.yaml | 2 - .../bitwise_complement.ets | 21 +- .../bitwise_complement.params.yaml | 8 +- .../bitwise_complement_n.ets | 16 + .../bitwise_complement_n.params.yaml | 0 .../unary_numeric_promotion/shift.ets | 49 +- .../unary_numeric_promotion/shift.params.yaml | 37 + .../unary_numeric_promotion/shift_n.ets | 0 .../shift_n.params.yaml | 0 .../unary_numeric_promotion/unary_minus.ets | 21 +- .../unary_minus.params.yaml | 32 + .../unary_numeric_promotion/unary_minus_n.ets | 0 .../unary_minus_n.params.yaml | 0 .../unary_numeric_promotion/unary_plus.ets | 21 +- .../unary_plus.params.yaml | 32 + .../unary_numeric_promotion/unary_plus_n.ets | 0 .../unary_plus_n.params.yaml | 0 .../conversion.params.yaml | 148 - .../conversion2.ets | 31 - .../conversion2.params.yaml | 80 - .../conversion3.ets | 31 - .../conversion3.params.yaml | 115 - .../03.string_operator_contexts/str_null2.ets | 32 - .../str_null2.params.yaml | 17 - .../03.string_operator_contexts/str_prim2.ets | 32 - .../str_prim2.params.yaml | 23 - .../03.string_operator_contexts/str_ref2.ets | 46 - .../str_ref2.params.yaml | 21 - .../str_undefined2.ets | 33 - .../str_undefined2.params.yaml | 17 - .../01.numeric_casting_conversions/boxing.ets | 31 + .../boxing.params.yaml | 23 + .../num_cc.ets | 9 +- .../num_cc.params.yaml | 324 +- .../num_cc_nan.ets | 28 +- .../unboxing.ets | 31 + .../unboxing.params.yaml | 0 .../unboxing2.ets | 31 + .../unboxing2.params.yaml | 40 + .../cce_1.ets | 0 .../cce_1a.ets | 0 .../cce_2.ets | 0 .../cce_2a.ets | 0 .../cce_2b.ets | 0 .../cce_3.ets | 0 .../cce_3a.ets | 0 .../cce_4.ets | 0 .../cce_4a.ets | 0 .../cce_5.ets | 0 .../cce_5a.ets | 0 .../neg_1.ets | 0 .../neg_1a.ets | 0 .../neg_gen1.ets | 0 .../neg_gen2.ets | 0 .../pos_1.ets | 0 .../pos_1a.ets | 0 .../pos_2.ets | 0 .../pos_2a.ets | 0 .../pos_3.ets | 0 .../pos_3a.ets | 0 .../pos_4.ets | 0 .../pos_4a.ets | 0 .../pos_4b.ets | 0 .../predef_ref.ets | 0 .../predef_ref.params.yaml | 0 .../predef_ref_prim.ets | 0 .../predef_ref_prim.params.yaml | 0 .../userdef_ref.ets | 0 .../userdef_ref.params.yaml | 0 .../userdef_ref2.ets | 0 .../userdef_ref2.params.yaml | 0 .../class_from_object.ets | 2 +- .../class_from_object.params.yaml | 0 .../func_type_from_object.ets | 2 +- .../func_type_from_object.params.yaml | 0 .../ref_type_from_object.ets | 2 +- .../ref_type_from_object.params.yaml | 0 .../ref_type_from_object_n.ets | 2 +- .../ref_type_from_object_n.params.yaml | 0 .../tuple_from_object.ets | 2 +- .../tuple_from_object.params.yaml | 0 .../union_type_from_object.ets | 2 +- .../union_type_from_object.params.yaml | 0 .../class.ets | 0 .../class.params.yaml | 0 .../func.ets | 0 .../func.params.yaml | 0 .../objectbool.ets | 4 +- .../objectstr.ets | 2 +- .../objectto_array_1.ets | 2 +- .../objectto_array_2.ets | 2 +- .../objectto_array_3.ets | 2 +- .../objectto_array_4.ets | 2 +- .../objectto_brgint_1.ets | 2 +- .../objectto_class_1.ets | 2 +- .../objectto_class_2.ets | 2 +- .../objectto_class_3.ets | 2 +- .../objectto_class_4.ets | 0 .../objectto_date_1.ets | 2 +- .../objectto_enum_1.ets | 2 +- .../objectto_enum_2.ets | 2 +- .../objectto_function_1.ets | 2 +- .../objectto_function_2.ets | 2 +- .../objectto_function_3.ets | 2 +- .../objectto_function_4.ets | 2 +- .../objectto_interface_1.ets | 2 +- .../objectto_interface_2.ets | 2 +- .../objectto_interface_3.ets | 2 +- .../objectto_interface_4.ets | 2 +- .../objectto_interface_5.ets | 2 +- .../objectto_map_1.ets | 2 +- .../objectto_map_2.ets | 2 +- .../objectto_null_1.ets | 2 +- .../objectto_number_1.ets | 0 .../objectto_number_2.ets | 0 .../objectto_number_3.ets | 2 +- .../objectto_number_4.ets | 2 +- .../objectto_number_5.ets | 2 +- .../objectto_number_6.ets | 2 +- .../objectto_number_7.ets | 2 +- .../objectto_number_8.ets | 2 +- .../objectto_obj_1.ets | 2 +- .../objectto_obj_2.ets | 2 +- .../objectto_obj_3.ets | 2 +- .../objectto_obj_4.ets | 2 +- .../objectto_obj_5.ets | 2 +- .../objectto_obj_7.ets | 2 +- .../objectto_regex_1.ets | 2 +- .../objectto_set_1.ets | 2 +- .../objectto_set_2.ets | 2 +- .../objectto_tuple_1.ets | 2 +- .../objectto_tuple_2.ets | 2 +- .../objectto_tuple_3.ets | 2 +- .../objectto_undefined_1.ets | 2 +- .../objectto_union_1.ets | 2 +- .../objectunknown.ets | 0 .../sample.ets | 0 .../sample_neg.ets | 29 + .../value.ets | 1 + .../value.params.yaml | 8 + .../cast.ets | 0 .../cast.params.yaml | 0 .../cast_neg.ets | 0 .../cast_neg.params.yaml | 0 .../06.casting_conversions_from_union/cce.ets | 0 .../cce.params.yaml | 0 .../impl.ets | 0 .../impl.params.yaml | 0 .../spec.ets | 0 .../06.casting_conversions_from_union/un1.ets | 0 .../un1.params.yaml | 2 +- .../06.casting_conversions_from_union/un2.ets | 0 .../un2.params.yaml | 2 +- .../cte_enum_1.ets | 0 .../cte_int_enum.ets | 7 +- .../cte_intvalue_enumvalue.ets | 0 .../cte_string_enum.ets | 2 +- .../cte_stringvalue_enumvalue.ets | 0 .../identity.ets | 0 .../identity.params.yaml | 33 + .../invalid.ets | 0 .../invalid.params.yaml | 0 .../invalid2.ets | 0 .../invalid2.params.yaml | 0 .../sequenced.ets | 2 +- .../sequenced.params.yaml | 90 +- .../widening_refs.ets | 0 .../widening_refs.params.yaml | 0 .../result_type_arith.params.yaml | 127 - .../result_type_bitwise.params.yaml | 95 - .../result_type_bool.params.yaml | 127 - .../result_type_cond.params.yaml | 126 - .../conv.params.yaml | 59 - .../unary_numeric_promotion/shift.params.yaml | 35 - .../unary_minus.params.yaml | 31 - .../unary_plus.params.yaml | 30 - .../assn_var/assn-var-n.params.yaml | 45 - .../assn_var/assn-var.ets | 31 - .../assn_var/assn-var.params.yaml | 220 - .../call_cons/call-cons-n.params.yaml | 50 - .../call_cons/call-cons.ets | 33 - .../call_cons/call-cons.params.yaml | 220 - .../call_func/call-func-n.params.yaml | 44 - .../call_func/call-func.ets | 30 - .../call_func/call-func.params.yaml | 220 - .../call_lmbd/call-lmbd-n.params.yaml | 45 - .../call_lmbd/call-lmbd.ets | 29 - .../call_lmbd/call-lmbd.params.yaml | 257 - .../call_meth/call-meth-n.params.yaml | 45 - .../call_meth/call-meth.ets | 33 - .../call_meth/call-meth.params.yaml | 220 - .../comp_arr/comp-arr-n.params.yaml | 45 - .../comp_arr/comp-arr.ets | 34 - .../comp_arr/comp-arr.params.yaml | 213 - .../comp_obj/comp-clss-n.params.yaml | 45 - .../comp_obj/comp-clss.ets | 33 - .../comp_obj/comp-clss.params.yaml | 248 - .../comp_obj/comp-intf-n.params.yaml | 45 - .../comp_obj/comp-intf.ets | 33 - .../comp_obj/comp-intf.params.yaml | 220 - .../decl_const/decl-const-n.params.yaml | 45 - .../decl_const/decl-const.params.yaml | 130 - .../decl_field/decl-field-n.params.yaml | 45 - .../decl_field/decl-field.ets | 35 - .../decl_field/decl-field.params.yaml | 220 - .../decl_field/decl-st-field-n.params.yaml | 45 - .../decl_field/decl-st-field.params.yaml | 220 - .../decl_var/decl-var-n.params.yaml | 45 - .../decl_var/decl-var.ets | 30 - .../decl_var/decl-var.params.yaml | 220 - .../enumlongtodouble.ets | 38 - .../enumlongtofloat.ets | 38 - .../enumtodouble.ets | 38 - .../enumtofloat.ets | 38 - .../enumtoint.ets | 38 - .../enumtolong.ets | 38 - .../enum2double.ets | 30 - .../enum2double.params.yaml | 158 - .../enum2long.ets | 29 - .../enum2long.params.yaml | 153 - .../assn_var/assn-var-ident.ets | 7 +- .../assn_var/assn-var-ident.params.yaml | 14 +- .../assn_var/assn-var-n.ets | 0 .../assn_var/assn-var-n.params.yaml | 50 + .../assn_var/assn-var-nan.ets | 4 +- .../assn_var/assn-var.ets | 34 + .../assn_var/assn-var.params.yaml | 230 + .../bytetochar.ets | 2 +- .../bytetodouble.ets | 2 +- .../bytetofloat.ets | 0 .../bytetoint.ets | 6 +- .../bytetolong.ets | 0 .../bytetoshort.ets | 6 +- .../call_cons/call-cons-ident.ets | 7 +- .../call_cons/call-cons-ident.params.yaml | 12 +- .../call_cons/call-cons-n.ets | 0 .../call_cons/call-cons-n.params.yaml | 50 + .../call_cons/call-cons-nan.ets | 4 +- .../call_cons/call-cons.ets | 36 + .../call_cons/call-cons.params.yaml | 230 + .../call_func/call-func-ident.ets | 7 +- .../call_func/call-func-ident.params.yaml | 14 +- .../call_func/call-func-n.ets | 0 .../call_func/call-func-n.params.yaml | 50 + .../call_func/call-func-nan.ets | 0 .../call_func/call-func.ets | 33 + .../call_func/call-func.params.yaml | 230 + .../call_lmbd/call-lmbd-ident.ets | 7 +- .../call_lmbd/call-lmbd-ident.params.yaml | 14 +- .../call_lmbd/call-lmbd-n.ets | 0 .../call_lmbd/call-lmbd-n.params.yaml | 50 + .../call_lmbd/call-lmbd-nan.ets | 4 +- .../call_lmbd/call-lmbd.ets | 32 + .../call_lmbd/call-lmbd.params.yaml | 230 + .../call_meth/call-meth-ident.ets | 7 +- .../call_meth/call-meth-ident.params.yaml | 14 +- .../call_meth/call-meth-n.ets | 0 .../call_meth/call-meth-n.params.yaml | 50 + .../call_meth/call-meth-nan.ets | 4 +- .../call_meth/call-meth.ets | 36 + .../call_meth/call-meth.params.yaml | 230 + .../chartodouble.ets | 0 .../chartofloat.ets | 0 .../chartoint.ets | 0 .../chartolong.ets | 0 .../comp_arr/comp-arr-ident.ets | 7 +- .../comp_arr/comp-arr-ident.params.yaml | 14 +- .../comp_arr/comp-arr-n.ets | 0 .../comp_arr/comp-arr-n.params.yaml | 50 + .../comp_arr/comp-arr-nan.ets | 4 +- .../comp_arr/comp-arr.ets | 37 + .../comp_arr/comp-arr.params.yaml | 230 + .../comp_obj/comp-clss-ident.ets | 7 +- .../comp_obj/comp-clss-ident.params.yaml | 14 +- .../comp_obj/comp-clss-n.ets | 0 .../comp_obj/comp-clss-n.params.yaml | 50 + .../comp_obj/comp-clss-nan.ets | 4 +- .../comp_obj/comp-clss.ets | 36 + .../comp_obj/comp-clss.params.yaml | 230 + .../comp_obj/comp-intf-ident.ets | 7 +- .../comp_obj/comp-intf-ident.params.yaml | 14 +- .../comp_obj/comp-intf-n.ets | 0 .../comp_obj/comp-intf-n.params.yaml | 50 + .../comp_obj/comp-intf-nan.ets | 4 +- .../comp_obj/comp-intf.ets | 36 + .../comp_obj/comp-intf.params.yaml | 230 + .../decl_const/decl-const-ident.ets | 7 +- .../decl_const/decl-const-ident.params.yaml | 12 +- .../decl_const/decl-const-n.ets | 0 .../decl_const/decl-const-n.params.yaml | 50 + .../decl_const/decl-const-nan.ets | 4 +- .../decl_const/decl-const.ets | 9 +- .../decl_const/decl-const.params.yaml | 230 + .../decl_field/decl-field-ident.ets | 7 +- .../decl_field/decl-field-ident.params.yaml | 14 +- .../decl_field/decl-field-n.ets | 0 .../decl_field/decl-field-n.params.yaml | 50 + .../decl_field/decl-field-nan.ets | 4 +- .../decl_field/decl-field.ets | 38 + .../decl_field/decl-field.params.yaml | 230 + .../decl_field/decl-st-field-n.ets | 0 .../decl_field/decl-st-field-n.params.yaml | 50 + .../decl_field/decl-st-field-nan.ets | 4 +- .../decl_field/decl-st-field.ets | 7 +- .../decl_field/decl-st-field.params.yaml | 230 + .../decl_var/decl-var-ident.ets | 7 +- .../decl_var/decl-var-ident.params.yaml | 14 +- .../decl_var/decl-var-n.ets | 0 .../decl_var/decl-var-n.params.yaml | 50 + .../decl_var/decl-var-nan.ets | 4 +- .../decl_var/decl-var.ets | 33 + .../decl_var/decl-var.params.yaml | 230 + .../enumtodouble.ets | 52 + .../enumtofloat.ets | 52 + .../enumtoint.ets | 52 + .../enumtolong.ets | 52 + .../floattodouble.ets | 6 +- .../inttodouble.ets | 7 +- .../inttofloat.ets | 7 +- .../inttolong.ets | 7 +- .../longtodouble.ets | 7 +- .../longtofloat.ets | 7 +- .../shorttodouble.ets | 7 +- .../shorttofloat.ets | 6 +- .../shorttoint.ets | 7 +- .../shorttolong.ets | 7 +- .../assn_var/assn-var-n.ets | 3 +- .../assn_var/assn-var-n.params.yaml} | 0 .../assn_var/assn-var-n2.ets | 0 .../assn_var/assn-var-n2.params.yaml | 0 .../assn_var/assn-var-n3.ets | 14 +- .../assn_var/assn-var-n3.params.yaml | 63 + .../assn_var/assn-var.ets | 40 + .../assn_var/assn-var.params.yaml | 28 + .../call_cons/call-cons-n.ets | 0 .../call_cons/call-cons-n.params.yaml} | 0 .../call_cons/call-cons-n2.ets | 0 .../call_cons/call-cons-n2.params.yaml | 0 .../call_cons/call-cons-n3.ets | 0 .../call_cons/call-cons-n3.params.yaml | 0 .../call_func/call-func-n.ets | 0 .../call_func/call-func-n.params.yaml} | 0 .../call_func/call-func-n2.ets | 0 .../call_func/call-func-n2.params.yaml | 0 .../call_func/call-func-n3.ets | 0 .../call_func/call-func-n3.params.yaml | 0 .../call_lmbd/call-lmbd-n.ets | 0 .../call_lmbd/call-lmbd-n.params.yaml} | 0 .../call_lmbd/call-lmbd-n2.ets | 0 .../call_lmbd/call-lmbd-n2.params.yaml | 0 .../call_lmbd/call-lmbd-n3.ets | 0 .../call_lmbd/call-lmbd-n3.params.yaml | 0 .../call_meth/call-meth-n.ets | 0 .../call_meth/call-meth-n.params.yaml | 44 + .../call_meth/call-meth-n2.ets | 0 .../call_meth/call-meth-n2.params.yaml | 0 .../call_meth/call-meth-n3.ets | 0 .../call_meth/call-meth-n3.params.yaml | 0 .../comp_arr/comp-arr-n.ets | 4 +- .../comp_arr/comp-arr-n.params.yaml | 44 + .../comp_arr/comp-arr-n2.ets | 0 .../comp_arr/comp-arr-n2.params.yaml | 0 .../comp_arr/comp-arr-n3.ets | 16 +- .../comp_arr/comp-arr-n3.params.yaml | 63 + .../comp_arr/comp-arr.ets | 38 + .../comp_arr/comp-arr.params.yaml} | 0 .../comp_obj/comp-class-n3.ets | 16 +- .../comp_obj/comp-class-n3.params.yaml | 63 + .../comp_obj/comp-clss-n.ets | 4 +- .../comp_obj/comp-clss-n.params.yaml | 44 + .../comp_obj/comp-clss-n2.ets | 0 .../comp_obj/comp-clss-n2.params.yaml | 0 .../comp_obj/comp-clss.ets | 40 + .../comp_obj/comp-clss.params.yaml} | 0 .../comp_obj/comp-intf-n.ets | 4 +- .../comp_obj/comp-intf-n.params.yaml | 44 + .../comp_obj/comp-intf-n2.ets | 0 .../comp_obj/comp-intf-n2.params.yaml | 0 .../comp_obj/comp-intf-n3.ets | 16 +- .../comp_obj/comp-intf-n3.params.yaml | 63 + .../comp_obj/comp-intf.ets | 40 + .../comp_obj/comp-intf.params.yaml | 28 + .../decl_const/decl-const-n.ets | 5 +- .../decl_const/decl-const-n.params.yaml | 44 + .../decl_const/decl-const-n2.ets | 0 .../decl_const/decl-const-n2.params.yaml | 0 .../decl_const/decl-const-n3.ets | 16 +- .../decl_const/decl-const-n3.params.yaml | 63 + .../decl_const/decl-const.ets | 0 .../decl_const/decl-const.params.yaml} | 0 .../decl_field/decl-field-n.ets | 5 +- .../decl_field/decl-field-n.params.yaml | 44 + .../decl_field/decl-field-n2.ets | 0 .../decl_field/decl-field-n2.params.yaml | 0 .../decl_field/decl-field-n3.ets | 14 +- .../decl_field/decl-field-n3.params.yaml | 63 + .../decl_field/decl-field.ets | 0 .../decl_field/decl-field.params.yaml} | 0 .../decl_field/decl-st-field-n.ets | 5 +- .../decl_field/decl-st-field-n.params.yaml | 44 + .../decl_field/decl-st-field-n2.ets | 0 .../decl_field/decl-st-field-n2.params.yaml | 0 .../decl_field/decl-st-field-n3.ets | 14 +- .../decl_field/decl-st-field-n3.params.yaml | 63 + .../decl_field/decl-st-field.ets | 0 .../decl_field/decl-st-field.params.yaml | 28 + .../decl_var/decl-var-n.ets | 5 +- .../decl_var/decl-var-n.params.yaml | 44 + .../decl_var/decl-var-n2.ets | 0 .../decl_var/decl-var-n2.params.yaml | 0 .../decl_var/decl-var-n3.ets | 16 +- .../decl_var/decl-var-n3.params.yaml | 63 + .../decl_var/decl-var.ets | 0 .../decl_var/decl-var.params.yaml | 28 + .../double2enum.ets | 28 - .../double2enum.params.yaml | 147 - .../long2enum.ets | 28 - .../long2enum.params.yaml | 147 - .../str2enum.ets | 29 - .../str2enum.params.yaml | 44 - .../assn_var/assn-var-lit.ets | 2 +- .../assn_var/assn-var-lit.params.yaml | 0 .../assn_var/assn-var-lit_n.ets | 0 .../assn_var/assn-var-lit_n.params.yaml | 0 .../assn_var/assn-var-un.ets | 2 +- .../assn_var/assn-var-un.params.yaml | 28 +- .../assn_var/assn-var-wd.ets | 2 +- .../assn_var/assn-var-wd.params.yaml | 28 +- .../assn_var/assn-var_n.ets | 0 .../assn_var/assn-var_n.params.yaml | 0 .../call_cons/call-cons-lit.ets | 2 +- .../call_cons/call-cons-lit.params.yaml | 0 .../call_cons/call-cons-lit_n.ets | 0 .../call_cons/call-cons-lit_n.params.yaml | 0 .../call_cons/call-cons-un.ets | 2 +- .../call_cons/call-cons-un.params.yaml | 28 +- .../call_cons/call-cons-wd.ets | 2 +- .../call_cons/call-cons-wd.params.yaml | 28 +- .../call_cons/call-cons_n.ets | 0 .../call_cons/call-cons_n.params.yaml | 0 .../call_func/call-func-lit.ets | 2 +- .../call_func/call-func-lit.params.yaml | 0 .../call_func/call-func-lit_n.ets | 0 .../call_func/call-func-lit_n.params.yaml | 0 .../call_func/call-func-un.ets | 2 +- .../call_func/call-func-un.params.yaml | 18 +- .../call_func/call-func-wd.ets | 2 +- .../call_func/call-func-wd.params.yaml | 28 +- .../call_func/call-func_n.ets | 0 .../call_func/call-func_n.params.yaml | 0 .../call_lmbd/call-lmbd-lit.ets | 2 +- .../call_lmbd/call-lmbd-lit.params.yaml | 0 .../call_lmbd/call-lmbd-lit_n.ets | 0 .../call_lmbd/call-lmbd-lit_n.params.yaml | 0 .../call_lmbd/call-lmbd-un.ets | 2 +- .../call_lmbd/call-lmbd-un.params.yaml | 28 +- .../call_lmbd/call-lmbd-wd.ets | 2 +- .../call_lmbd/call-lmbd-wd.params.yaml | 28 +- .../call_lmbd/call-lmbd_n.ets | 0 .../call_lmbd/call-lmbd_n.params.yaml | 0 .../call_meth/call-meth-lit.ets | 2 +- .../call_meth/call-meth-lit.params.yaml | 0 .../call_meth/call-meth-lit_n.ets | 0 .../call_meth/call-meth-lit_n.params.yaml | 0 .../call_meth/call-meth-un.ets | 2 +- .../call_meth/call-meth-un.params.yaml | 22 +- .../call_meth/call-meth-wd.ets | 2 +- .../call_meth/call-meth-wd.params.yaml | 28 +- .../call_meth/call-meth_n.ets | 0 .../call_meth/call-meth_n.params.yaml | 0 .../comp_arr/comp-arr-lit.ets | 2 +- .../comp_arr/comp-arr-lit.params.yaml | 0 .../comp_arr/comp-arr-lit_n.ets | 0 .../comp_arr/comp-arr-lit_n.params.yaml | 0 .../comp_arr/comp-arr-un.ets | 4 +- .../comp_arr/comp-arr-un.params.yaml | 28 +- .../comp_arr/comp-arr-wd.ets | 4 +- .../comp_arr/comp-arr-wd.params.yaml | 28 +- .../comp_arr/comp-arr_n.ets | 0 .../comp_arr/comp-arr_n.params.yaml | 0 .../comp_obj/comp-obj-lit.ets | 2 +- .../comp_obj/comp-obj-lit.params.yaml | 0 .../comp_obj/comp-obj-lit_n.ets | 0 .../comp_obj/comp-obj-lit_n.params.yaml | 0 .../comp_obj/comp-obj-un.ets | 4 +- .../comp_obj/comp-obj-un.params.yaml | 24 +- .../comp_obj/comp-obj-wd.ets | 4 +- .../comp_obj/comp-obj-wd.params.yaml | 26 +- .../comp_obj/comp-obj_n.ets | 0 .../comp_obj/comp-obj_n.params.yaml | 0 .../decl_field/decl-field-lit.ets | 2 +- .../decl_field/decl-field-lit.params.yaml | 0 .../decl_field/decl-field-lit_n.ets | 0 .../decl_field/decl-field-lit_n.params.yaml | 0 .../decl_field/decl-field-un.ets | 4 +- .../decl_field/decl-field-un.params.yaml | 20 +- .../decl_field/decl-field-wd.ets | 4 +- .../decl_field/decl-field-wd.params.yaml | 26 +- .../decl_field/decl-field_n.ets | 0 .../decl_field/decl-field_n.params.yaml | 0 .../decl_var/decl-var-lit.ets | 4 +- .../decl_var/decl-var-lit.params.yaml | 0 .../decl_var/decl-var-lit_n.ets | 0 .../decl_var/decl-var-lit_n.params.yaml | 0 .../decl_var/decl-var-un.ets | 4 +- .../decl_var/decl-var-un.params.yaml | 20 +- .../decl_var/decl-var-wd.ets | 4 +- .../decl_var/decl-var-wd.params.yaml | 28 +- .../decl_var/decl-var_n.ets | 0 .../decl_var/decl-var_n.params.yaml | 0 .../nouniontounion.ets | 0 .../nouniontounion1.ets | 0 .../nouniontounion2.ets | 0 .../nouniontounion3.ets | 0 .../nouniontounion4.ets | 0 .../nouniontounion5.ets | 0 .../nouniontounion6.ets | 0 .../nouniontounion7.ets | 0 .../04.widening_union_conversions/spec1.ets | 0 .../04.widening_union_conversions/spec2.ets | 0 .../04.widening_union_conversions/spec2_n.ets | 0 .../04.widening_union_conversions/spec3.ets | 0 .../04.widening_union_conversions/spec4.ets | 0 .../04.widening_union_conversions/spec5a.ets | 0 .../04.widening_union_conversions/spec5b.ets | 0 .../spec5b_n.ets | 0 .../04.widening_union_conversions/spec6.ets | 0 .../04.widening_union_conversions/spec7.ets | 0 .../04.widening_union_conversions/spec8.ets | 0 .../04.widening_union_conversions/spec9.ets | 0 .../textuniontonounion.ets | 0 .../uniontowider.ets | 0 .../assn_var/assn-var.ets | 0 .../assn_var/assn-var.params.yaml | 201 + .../assn_var/assn-var_n.ets | 0 .../assn_var/assn-var_n.params.yaml | 0 .../call_cons/call-cons.ets | 0 .../call_cons/call-cons.params.yaml | 201 + .../call_func/call-func.ets | 0 .../call_func/call-func.params.yaml | 201 + .../call_lmbd/call-lmbd.ets | 0 .../call_lmbd/call-lmbd.params.yaml | 201 + .../call_meth/call-meth.ets | 0 .../call_meth/call-meth.params.yaml | 201 + .../comp_arr/comp-arr.ets | 0 .../comp_arr/comp-arr.params.yaml | 201 + .../comp_obj/comp-clss.ets | 0 .../comp_obj/comp-clss.params.yaml | 201 + .../comp_obj/comp-clss_n.ets | 0 .../comp_obj/comp-clss_n.params.yaml | 0 .../comp_obj/comp-intf.ets | 0 .../comp_obj/comp-intf.params.yaml | 201 + .../comp_obj/comp-intf_n.ets | 0 .../comp_obj/comp-intf_n.params.yaml | 0 .../decl_const/decl-const.ets | 0 .../decl_const/decl-const.params.yaml | 201 + .../decl_const/decl-const_n.ets | 0 .../decl_const/decl-const_n.params.yaml | 0 .../decl_field/decl-field.ets | 0 .../decl_field/decl-field.params.yaml | 201 + .../decl_field/decl-field_n.ets | 0 .../decl_field/decl-field_n.params.yaml | 0 .../decl_var/decl-var.ets | 0 .../decl_var/decl-var.params.yaml | 201 + .../decl_var/decl-var_n.ets | 0 .../decl_var/decl-var_n.params.yaml | 0 .../assn_var/assn-var-n2.ets | 0 .../assn_var/assn-var-n2.params.yaml | 0 .../assn_var/assn-var.ets | 35 + .../assn_var/assn-var.params.yaml | 0 .../call_cons/call-cons-n2.ets | 0 .../call_cons/call-cons-n2.params.yaml | 0 .../call_cons/call-cons.ets | 39 + .../call_cons/call-cons.params.yaml | 0 .../call_func/call-func-n2.ets | 0 .../call_func/call-func-n2.params.yaml | 0 .../call_func/call-func.ets | 36 + .../call_func/call-func.params.yaml | 0 .../call_lmbd/call-lmbd-n2.ets | 0 .../call_lmbd/call-lmbd-n2.params.yaml | 0 .../call_lmbd/call-lmbd.ets | 34 + .../call_lmbd/call-lmbd.params.yaml | 0 .../call_meth/call-meth-n2.ets | 0 .../call_meth/call-meth-n2.params.yaml | 0 .../call_meth/call-meth.ets | 39 + .../call_meth/call-meth.params.yaml | 0 .../comp_arr/comp-arr-n2.ets | 0 .../comp_arr/comp-arr-n2.params.yaml | 0 .../comp_arr/comp-arr.ets | 32 + .../comp_arr/comp-arr.params.yaml | 0 .../comp_obj/comp-clss-n2.ets | 0 .../comp_obj/comp-clss-n2.params.yaml | 0 .../comp_obj/comp-clss.ets | 37 + .../comp_obj/comp-clss.params.yaml | 0 .../contravariancetotype.ets | 0 .../covariancetotype.ets | 0 .../decl_field/decl-field-n2.ets | 0 .../decl_field/decl-field-n2.params.yaml | 0 .../decl_field/decl-field.ets | 37 + .../decl_field/decl-field.params.yaml | 0 .../decl_var/decl-var-n2.ets | 0 .../decl_var/decl-var-n2.params.yaml | 0 .../decl_var/decl-var.ets | 31 + .../decl_var/decl-var.params.yaml | 0 .../function_types_conversions_0.ets | 2 +- .../function_types_conversions_1.ets | 0 .../function_types_conversions_10.ets | 0 .../function_types_conversions_11.ets | 0 .../function_types_conversions_12.ets | 2 +- .../function_types_conversions_13.ets | 2 +- .../function_types_conversions_2.ets | 0 .../function_types_conversions_3.ets | 0 .../function_types_conversions_4.ets | 0 .../function_types_conversions_5.ets | 0 .../function_types_conversions_6.ets | 2 +- .../function_types_conversions_7.ets | 0 .../function_types_conversions_8.ets | 0 .../function_types_conversions_9.ets | 0 .../nooptionaltooptional.ets | 0 .../08.function_types_conversions/spec1.ets | 0 .../08.function_types_conversions/spec2.ets | 0 .../08.function_types_conversions/spec3.ets | 0 .../08.function_types_conversions/spec4.ets | 0 .../subtype_to_supertype.ets | 0 .../subtype_to_supertype.params.yaml | 0 .../subtype_to_supertype_neg.ets | 0 .../subtype_to_supertype_neg.params.yaml | 0 .../assn_var/assn-var.ets | 42 + .../assn_var/assn-var.params.yaml | 0 .../assn_var/assn-var_n.ets | 0 .../assn_var/assn-var_n.params.yaml | 8 +- .../call_cons/call-cons.ets | 38 + .../call_cons/call-cons.params.yaml | 0 .../call_cons/call-cons2_n.ets | 0 .../call_cons/call-cons2_n.params.yaml | 0 .../call_cons/call-cons_n.ets | 0 .../call_cons/call-cons_n.params.yaml | 8 +- .../call_func/call-func.ets | 32 + .../call_func/call-func.params.yaml | 0 .../call_func/call-func2_n.ets | 0 .../call_func/call-func2_n.params.yaml | 0 .../call_func/call-func_n.ets | 0 .../call_func/call-func_n.params.yaml | 6 + .../call_lmbd/call-lmbd.ets | 29 + .../call_lmbd/call-lmbd.params.yaml | 0 .../call_lmbd/call-lmbd_n.ets | 0 .../call_lmbd/call-lmbd_n.params.yaml | 8 +- .../call_meth/call-meth.ets | 34 + .../call_meth/call-meth.params.yaml | 0 .../call_meth/call-meth2_n.ets | 0 .../call_meth/call-meth2_n.params.yaml | 0 .../call_meth/call-meth_n.ets | 0 .../call_meth/call-meth_n.params.yaml | 8 +- .../comp_arr/comp-arr.ets | 29 + .../comp_arr/comp-arr.params.yaml | 0 .../comp_arr/comp-arr_n.ets | 0 .../comp_arr/comp-arr_n.params.yaml | 8 +- .../comp_obj/comp-obj.ets | 32 + .../comp_obj/comp-obj.params.yaml | 0 .../comp_obj/comp-obj_n.ets | 0 .../comp_obj/comp-obj_n.params.yaml | 8 +- .../decl_field/decl-field.ets | 32 + .../decl_field/decl-field.params.yaml | 0 .../decl_field/decl-field_n.ets | 0 .../decl_field/decl-field_n.params.yaml | 8 +- .../decl_var/decl-var.ets | 49 + .../decl_var/decl-var.params.yaml | 0 .../decl_var/decl-var_n.ets | 0 .../decl_var/decl-var_n.params.yaml | 8 +- .../enum2int.ets | 0 .../enum2int.params.yaml | 67 +- .../enum2str.ets | 0 .../enum2str.params.yaml | 67 +- .../int2enum.ets | 0 .../int2enum.params.yaml | 60 +- .../int2enum_n.ets | 0 .../int2enum_n.params.yaml | 4 +- .../str2enum_n.ets | 0 .../str2enum_n.params.yaml | 8 +- .../assn_var/assn-var.ets | 35 + .../assn_var/assn-var.params.yaml | 0 .../assn_var/assn-var2.ets | 2 +- .../assn_var/assn-var2.params.yaml | 0 .../call_cons/call-cons.ets | 36 + .../call_cons/call-cons.params.yaml | 0 .../call_cons/call-cons2.ets | 2 +- .../call_cons/call-cons2.params.yaml | 0 .../call_func/call-func.ets | 38 + .../call_func/call-func.params.yaml | 0 .../call_func/call-func2.ets | 2 +- .../call_func/call-func2.params.yaml | 0 .../call_lmbd/call-lmbd.ets | 35 + .../call_lmbd/call-lmbd.params.yaml | 0 .../call_lmbd/call-lmbd2.ets | 2 +- .../call_lmbd/call-lmbd2.params.yaml | 0 .../call_meth/call-meth.ets | 46 + .../call_meth/call-meth.params.yaml | 0 .../call_meth/call-meth2.ets | 2 +- .../call_meth/call-meth2.params.yaml | 0 .../comp_arr/comp-arr.ets | 35 + .../comp_arr/comp-arr.params.yaml | 0 .../comp_arr/comp-arr2.ets | 2 +- .../comp_arr/comp-arr2.params.yaml | 0 .../comp_obj/comp-intf.ets | 34 + .../comp_obj/comp-intf.params.yaml | 0 .../comp_obj/comp-obj.ets | 35 + .../comp_obj/comp-obj.params.yaml | 0 .../comp_obj/comp-obj2.ets | 2 +- .../comp_obj/comp-obj2.params.yaml | 0 .../decl_field/decl-field.ets | 36 + .../decl_field/decl-field.params.yaml | 0 .../decl_field/decl-field2.ets | 2 +- .../decl_field/decl-field2.params.yaml | 0 .../decl_var/decl-var.ets | 33 + .../decl_var/decl-var.params.yaml | 0 .../decl_var/decl-var2.ets | 2 +- .../decl_var/decl-var2.params.yaml | 0 .../explicit_conversion.ets | 26 - .../explicit_conversion.params.yaml | 34 - .../postfix_conversion.ets | 26 - .../postfix_conversion.params.yaml | 28 - .../prefix_conversion.ets | 26 - .../prefix_conversion.params.yaml | 29 - ...attemp_invalid_type_conversion.params.yaml | 26 +- .../ae3.ets | 2 +- .../aioobe1.ets | 12 +- .../aioobe2.ets | 17 +- .../aioobe3.ets | 8 +- .../aioobe4.ets | 10 +- .../aioobe5.ets | 12 +- .../cce1.ets | 2 +- .../cce2.ets | 2 +- .../nase2.ets | 2 +- .../oom-string.ets | 36 - .../oome1.ets | 18 +- .../arithmetic_error_order.ets | 56 - .../int_parens.ets | 2 +- .../lhe_rhe_evaluation.ets | 47 - .../order_of_evaluation.ets | 28 - .../03.operator_precedence/add.ets | 4 +- .../03.operator_precedence/await.ets | 95 - .../03.operator_precedence/cast.ets | 48 +- .../03.operator_precedence/chaining.ets | 90 - .../03.operator_precedence/div.ets | 4 +- .../03.operator_precedence/exponentiation.ets | 59 - .../03.operator_precedence/mod.ets | 4 +- .../03.operator_precedence/mul.ets | 4 +- .../03.operator_precedence/postfix.ets | 4 +- .../03.operator_precedence/prefix.ets | 4 +- .../03.operator_precedence/sub.ets | 4 +- .../03.operator_precedence/unary.ets | 24 +- .../04.evaluation_of_arguments/abrupt.ets | 114 - .../arg_order_function.ets | 26 +- .../cast.ets | 41 + .../cast.params.yaml | 160 + .../instof.ets | 69 + .../mcall.ets | 14 +- .../eval_decl.ets | 4 +- .../01.evaluation_of_expressions/eval_f.ets | 2 +- .../01.evaluation_of_expressions/eval_se.ets | 6 +- .../heap_pollution.ets | 42 + .../optional_chain_super.ets | 34 - .../optional_chain_this.ets | 35 - .../01.evaluation_of_expressions/typ.ets | 74 +- .../typ.params.yaml | 11 +- .../function_reference.ets | 56 - .../function_reference_lib.ets | 23 - .../function_reference_neg.ets | 26 - .../02.method_reference/meth_ref.ets | 49 - .../03.named_reference/named_reference_0.ets | 2 +- .../03.named_reference/named_reference_1.ets | 2 +- .../03.named_reference/named_reference_10.ets | 2 +- .../03.named_reference/named_reference_11.ets | 4 +- .../03.named_reference/named_reference_12.ets | 2 +- .../03.named_reference/named_reference_15.ets | 2 +- .../03.named_reference/named_reference_17.ets | 4 +- .../03.named_reference/named_reference_19.ets | 2 +- .../03.named_reference/named_reference_2.ets | 2 +- .../03.named_reference/named_reference_20.ets | 6 +- .../03.named_reference/named_reference_21.ets | 2 +- .../03.named_reference/named_reference_22.ets | 4 +- .../03.named_reference/named_reference_23.ets | 2 +- .../03.named_reference/named_reference_26.ets | 4 +- .../03.named_reference/named_reference_27.ets | 2 +- .../03.named_reference/named_reference_28.ets | 2 +- .../03.named_reference/named_reference_3.ets | 2 +- .../03.named_reference/named_reference_32.ets | 2 +- .../03.named_reference/named_reference_33.ets | 2 +- .../03.named_reference/named_reference_34.ets | 4 +- .../03.named_reference/named_reference_35.ets | 2 +- .../03.named_reference/named_reference_36.ets | 4 +- .../03.named_reference/named_reference_37.ets | 2 +- .../03.named_reference/named_reference_38.ets | 4 +- .../03.named_reference/named_reference_39.ets | 2 +- .../03.named_reference/named_reference_4.ets | 2 +- .../03.named_reference/named_reference_41.ets | 4 +- .../03.named_reference/named_reference_43.ets | 2 +- .../03.named_reference/named_reference_44.ets | 4 +- .../03.named_reference/named_reference_45.ets | 32 - .../03.named_reference/named_reference_46.ets | 39 - .../03.named_reference/named_reference_9.ets | 4 +- .../03.named_reference/qualified_name.ets | 46 + .../qualified_name.params.yaml | 23 + .../03.named_reference/qualified_name_0.ets | 47 - .../03.named_reference/qualified_name_1.ets | 35 - .../arr2_inf_assn.params.yaml | 228 +- .../arr2_inf_call.params.yaml | 234 +- .../arr2_inf_cast.params.yaml | 222 +- .../arr2_inf_decl.params.yaml | 222 +- .../arr3_inf_assn.params.yaml | 234 +- .../arr3_inf_call.params.yaml | 236 +- .../arr3_inf_cast.params.yaml | 222 +- .../arr3_inf_decl.params.yaml | 224 +- .../arr_inf_assn.params.yaml | 228 +- .../arr_inf_call.params.yaml | 298 +- .../arr_inf_cast.params.yaml | 222 +- .../arr_inf_decl.params.yaml | 222 +- .../arr_inf_n.params.yaml | 2 +- .../spec-ex1.ets | 2 +- .../spec-ex2.ets | 2 +- .../spec-ex4.ets | 18 +- .../spec-ex5.ets | 34 +- .../spec-ex6.ets | 2 +- .../spec-ex8.ets | 4 +- .../spec-ex9.ets | 6 +- .../tup_inf_assn.params.yaml | 138 +- .../tup_inf_call.params.yaml | 138 +- .../tup_inf_cast.params.yaml | 138 +- .../tup_inf_decl.params.yaml | 138 +- .../arr_inf2.params.yaml | 54 +- .../arr_inf2_n.params.yaml | 6 - .../arr_inf2_num1.ets | 2 +- .../arr_inf2_num1.params.yaml | 53 +- .../arr_inf2_num2.ets | 2 +- .../arr_inf2_num2.params.yaml | 58 +- .../arr_inf2_same_type.ets | 2 +- .../04.array_literal/arr_abrupt.params.yaml | 8 +- .../04.array_literal/arr_expr.params.yaml | 6 +- .../04.array_literal/arr_nest.params.yaml | 20 +- .../04.array_literal/array_literal.ets | 2 +- .../cl.params.yaml | 107 +- .../cl_n.params.yaml | 8 - .../class_composite_initialization_order.ets | 8 +- .../spec_ex1.ets | 19 +- .../spec_ex2.ets | 10 +- .../spec_ex3.ets | 12 +- .../spec_ex4.ets | 37 - .../spec_ex5.ets | 29 - .../spec_ex6.ets | 28 - .../in.params.yaml | 77 +- .../in_n.params.yaml | 15 - ...terface_composite_initialization_order.ets | 8 +- .../spec_ex1.ets | 12 +- .../spec_ex2.ets | 5 +- .../spec_ex3.ets | 32 - .../spec_ex4.ets | 28 - .../spec_ex5.ets | 28 - .../re.params.yaml | 284 +- .../re_n.params.yaml | 10 +- .../spec_ex3.ets | 5 +- .../spec_ex4.ets | 28 - .../class_with_readonly.ets | 31 - .../eval_order_class.ets | 49 - .../eval_order_iface.ets | 49 - .../04.object_literal_evaluation/ex0.ets | 5 +- .../04.object_literal_evaluation/ex1.ets | 5 +- .../04.object_literal_evaluation/ex2.ets | 5 +- .../iface_with_readonly.ets | 31 - ...lass_composite_as_a_function_parameter.ets | 4 +- .../class_composite_in_class_composite.ets | 2 +- .../class_composite_inside_a_class_method.ets | 2 +- ...composite_inside_the_class_constructor.ets | 2 +- .../class_composite_with_inherited_fields.ets | 2 +- .../execution_of_the_class_left_to_right.ets | 4 +- .../inferred_to_abstract.ets | 1 + .../inferred_to_abstract_with_method.ets | 1 + .../initializing_a_class_internally.ets | 28 + .../internal_field_access.ets | 2 +- ...tected_field_access_from_derived_class.ets | 2 +- .../05.object_literal/spec_ex1.ets | 35 - .../05.object_literal/spec_ex2.ets | 25 - .../05.object_literal/spec_ex3.ets | 47 - .../05.object_literal/spec_ex4.ets | 33 - .../05.object_literal/spec_ex5.ets | 36 - .../05.object_literal/spec_ex6.ets | 48 - .../05.object_literal/spec_ex7.ets | 40 - .../05.object_literal/union_inferred.ets | 48 - .../union_not_inferred_1.ets | 29 - .../union_not_inferred_2.ets | 29 - .../union_not_inferred_3.ets | 30 - .../06.spread_expression/iterable.ets | 62 - .../06.spread_expression/spex.params.yaml | 148 +- .../spex_const.params.yaml | 123 +- .../spex_func.params.yaml | 138 +- .../spex_lmbd.params.yaml | 110 +- .../spex_meth.params.yaml | 123 +- .../paren_expr.ets | 2 +- .../08.this_expression/this_in_lambda.ets | 2 +- .../this_in_lambda_negative.ets | 5 +- .../this_in_lambda_negative_1.ets | 28 - .../this_primary_expression_in_lambda.ets | 2 +- .../access_non_static_field.ets | 4 +- .../access_non_static_field_1.ets | 2 +- .../access_non_static_field_2.ets | 2 +- .../access_non_static_field_3.ets | 2 +- .../access_non_static_field_4.ets | 2 +- .../access_non_static_field_5.ets | 2 +- .../access_non_static_field_6.ets | 2 +- .../access_static_field.ets | 2 +- .../access_static_field_1.ets | 2 +- .../access_static_field_2.ets | 2 +- .../access_static_field_3.ets | 2 +- .../access_static_field_4.ets | 6 +- .../access_static_field_5.ets | 4 +- .../access_static_field_6.ets | 2 +- .../access_static_field_7.ets | 2 +- .../access_static_field_8.ets | 4 +- .../access_static_field_nn.ets | 2 +- .../access_static_field_nn.params.yaml | 6 +- .../nullable_reference_type.ets | 6 +- .../nullish_reference_type_3.ets | 2 +- .../access_by_super_from_method.ets | 2 +- .../access_by_super_from_method_1.ets | 2 +- .../access_by_super_from_method_2.ets | 2 +- .../access_by_super_in_constructor.ets | 2 +- .../access_by_super_in_constructor_1.ets | 2 +- .../access_by_super_in_constructor_2.ets | 2 +- .../access_by_super_in_field.ets | 2 +- .../access_by_super_in_field_1.ets | 2 +- .../access_by_super_in_field_2.ets | 2 +- .../access_by_super_in_field_3.ets | 2 +- .../access_by_super_in_field_4.ets | 2 +- .../access_by_super_in_field_nn.ets | 2 +- .../access_by_super_in_field_nn.params.yaml | 10 +- .../access_by_super_in_initializer.ets | 2 +- .../access_by_super_of_generic.ets | 2 +- .../09.field_access_expressions/access.ets | 2 +- .../access_by_super.ets | 2 +- .../access_through_class_type.ets | 2 +- .../access_through_interface_type.ets | 2 +- .../lazy_reference_evaluation.ets | 2 +- .../safe_field_access_0.ets | 2 +- .../safe_field_access_1.ets | 2 +- .../safe_field_access_2.ets | 2 +- .../step1.params.yaml | 96 +- .../02.step_2_selection_of_method/step2.ets | 1 - .../step2.params.yaml | 226 +- .../step2n.params.yaml | 4 +- .../step3a.params.yaml | 4 +- .../step3a_n.params.yaml | 12 +- .../step3b.params.yaml | 4 +- .../step3b_n.params.yaml | 4 +- .../step3c.params.yaml | 4 +- .../negative.ets | 6 +- .../negative.params.yaml | 10 - .../negative1.ets | 30 - .../positive.ets | 14 +- .../positive.params.yaml | 29 - .../class_method.ets | 2 +- .../class_static_method.ets | 2 +- .../interface_method.ets | 2 +- .../safe_method_call_0.ets | 2 +- .../safe_method_call_1.ets | 2 +- .../args_type_evaluation.ets | 43 - .../fcall.params.yaml | 151 +- .../fcall_n.params.yaml | 49 +- .../function_call_expression.ets | 4 +- .../optional_chaining_null_result.ets | 2 +- .../optional_chaining_value_result.ets | 2 +- .../safe_call_arguments_evaluate.ets | 75 - .../safe_fcall_ftype.params.yaml | 8 +- .../safe_fcall_lmbd.params.yaml | 8 +- .../safe_function_call_0.ets | 2 +- .../safe_function_call_1.ets | 2 +- .../safe_function_call_2.ets | 2 +- .../safe_function_call_3.ets | 2 +- .../step1.params.yaml | 187 +- .../step1n.params.yaml | 8 +- .../step2.params.yaml | 12 +- .../step2_n.params.yaml | 8 +- .../01.array_indexing_expression/abrupt01.ets | 2 +- .../01.array_indexing_expression/abrupt10.ets | 2 +- .../01.array_indexing_expression/abrupt11.ets | 2 +- .../01.array_indexing_expression/abrupt12.ets | 2 +- .../array_access.ets | 2 +- .../array_access2.ets | 8 +- .../array_access3.ets | 8 +- .../array_access4.ets | 6 +- .../array_access5.ets | 14 +- .../array_access6.ets | 6 +- .../array_access7.ets | 6 +- .../array_access8.ets | 28 + .../array_access9.ets | 28 + .../array_index01.ets | 6 +- .../array_index02.ets | 6 +- .../array_index03.ets | 4 +- .../array_index06.ets | 2 +- .../array_index07.ets | 2 +- .../array_index08.ets | 2 +- .../array_index10.ets | 2 +- .../array_index11.ets | 2 +- .../array_index12.ets | 2 +- .../array_index13.ets | 10 +- .../array_index14.ets | 4 +- .../array_index15.ets | 6 +- .../array_index17.ets | 2 +- .../array_index18.ets | 2 +- .../array_index20.ets | 4 +- .../array_index23.ets | 5 +- .../array_index24.ets | 2 +- .../array_index25.ets | 2 +- .../array_index3_n.ets | 31 + .../array_index3_n.params.yaml | 17 + .../01.array_indexing_expression/indx0a.ets | 4 +- .../safe_array_access1.ets | 2 +- .../safe_array_access2.ets | 2 +- .../safe_array_access3.ets | 2 +- .../safe_array_access4.ets | 2 +- .../01.array_indexing_expression/spec_ex1.ets | 4 +- .../01.array_indexing_expression/spec_ex2.ets | 4 +- .../ind.ets | 0 .../ind.params.yaml | 302 ++ .../ind2.ets | 2 +- .../ind2.params.yaml | 0 .../indx1a.ets | 4 +- .../indx1b.ets | 6 +- .../indx1c.ets | 6 +- .../indx1d.ets | 6 +- .../indx1e.ets | 6 +- .../indx3a.ets | 6 +- .../indx3b.ets | 6 +- .../indx3c.ets | 6 +- .../indx3d.ets | 6 +- .../record01.ets | 2 +- .../record02.ets | 0 .../record03.ets | 2 +- .../record04.ets | 2 +- .../record05.ets | 2 +- .../record06.ets | 0 .../record07.ets | 2 +- .../record08.ets | 2 +- .../record09.ets | 2 +- .../record10.ets | 2 +- .../record11.ets | 4 +- .../record12.ets | 2 +- .../record13.ets | 2 +- .../record14.ets | 2 +- .../record15.ets | 6 +- .../record16.ets | 2 +- .../record17.ets | 2 +- .../record18.ets | 2 +- .../record19.ets | 2 +- .../record21.ets | 0 .../record22.ets | 4 +- .../record23.ets | 2 +- .../record24.ets | 4 +- .../record25.ets | 2 +- .../record26.ets | 2 +- .../record27.ets | 2 +- .../string_idx_nzfract_cte_n.ets | 31 - .../string_idx_nzfract_cte_n.params.yaml | 22 - .../string_idx_nzfract_rte_n.ets | 40 - .../string_idx_nzfract_rte_n.params.yaml | 21 - .../string_idx_outofbounds_n.ets | 35 - .../string_idx_outofbounds_n.params.yaml | 18 - .../string_idx_readonly_n.ets | 27 - .../string_idx_readonly_n.params.yaml | 20 - .../string_idx_res_n.ets | 56 - .../string_idx_res_n.params.yaml | 21 - .../string_idx_res_type.ets | 31 - .../string_idx_type_cte_n.ets | 33 - .../string_idx_type_cte_n.params.yaml | 24 - .../ind.params.yaml | 302 -- .../record28.ets | 32 - .../13.chaining_operator/chop_access.ets | 2 +- .../13.chaining_operator/chop_access01.ets | 2 +- .../13.chaining_operator/chop_array.ets | 4 +- .../13.chaining_operator/chop_array02.ets | 2 +- .../13.chaining_operator/chop_array03.ets | 2 +- .../13.chaining_operator/chop_asyn_func.ets | 2 +- .../13.chaining_operator/chop_asyn_func01.ets | 2 +- .../13.chaining_operator/chop_com_def.ets | 2 +- .../13.chaining_operator/chop_com_def01.ets | 2 +- .../13.chaining_operator/chop_com_func.ets | 2 +- .../13.chaining_operator/chop_com_func01.ets | 2 +- .../13.chaining_operator/chop_com_index.ets | 2 +- .../13.chaining_operator/chop_com_index01.ets | 2 +- .../13.chaining_operator/chop_complex.ets | 2 +- .../13.chaining_operator/chop_complex01.ets | 2 +- .../chop_dynamic_property.ets | 2 +- .../13.chaining_operator/chop_existence.ets | 2 +- .../13.chaining_operator/chop_filed.ets | 2 +- .../13.chaining_operator/chop_func.ets | 2 +- .../13.chaining_operator/chop_func01.ets | 2 +- .../13.chaining_operator/chop_func02.ets | 2 +- .../13.chaining_operator/chop_method.ets | 2 +- .../13.chaining_operator/chop_method01.ets | 2 +- .../13.chaining_operator/chop_method02.ets | 2 +- .../13.chaining_operator/chop_multilevel.ets | 2 +- .../chop_multilevel01.ets | 2 +- .../chop_multilevel02.ets | 2 +- .../13.chaining_operator/chop_nested_obj.ets | 2 +- .../chop_nested_obj01.ets | 2 +- .../13.chaining_operator/chop_normal.ets | 2 +- .../13.chaining_operator/chop_null.ets | 2 +- .../13.chaining_operator/chop_nullish.ets | 2 +- .../13.chaining_operator/chop_nullish01.ets | 2 +- .../13.chaining_operator/chop_nullish02.ets | 2 +- .../13.chaining_operator/chop_optional.ets | 2 +- .../13.chaining_operator/chop_type.ets | 4 +- .../13.chaining_operator/chop_type01.ets | 4 +- .../13.chaining_operator/chop_undefined.ets | 2 +- .../cast.ets | 0 .../15.cast_expressions/cast.params.yaml | 63 + .../cast0.ets | 24 +- .../cast1.ets | 4 +- .../cast2.ets | 0 .../nullable_cast_0.ets | 2 +- .../nullable_cast_1.ets | 15 +- .../instanceof-cte.params.yaml | 20 - .../15.instanceof_expression/instanceof.ets | 33 - .../15.instanceof_expression/instof.ets | 69 - .../type_inference.ets | 31 - .../type_inference.params.yaml | 93 - .../type_inference_negative.ets | 27 - .../type_inference_negative.params.yaml | 51 - .../cast_rt_check.ets | 40 - .../cast_rt_check.params.yaml | 160 - .../runtime_checking_function.ets | 38 - .../runtime_checking_function.params.yaml | 67 - .../runtime_checking_negative.ets | 38 - .../runtime_checking_negative.params.yaml | 23 - .../16.cast_expressions/cast.params.yaml | 57 - .../instanceof-cte.ets | 12 +- .../instanceof-cte.params.yaml | 17 + .../16.instanceof_expression/instanceof.ets | 33 + .../instanceof.params.yaml | 0 ...t_incompatible_with_the_specified_type.ets | 3 +- .../operand_that_is_a_reference_type.ets | 2 +- .../operand_that_is_not_a_reference_type.ets | 3 +- ...t_operand_that_is_not_a_reference_type.ets | 3 +- .../17.typeof_expression/comptime.ets | 4 +- .../17.typeof_expression/negative.ets | 6 +- .../17.typeof_expression/negative.params.yaml | 10 +- .../17.typeof_expression/runtime.ets | 2 +- .../17.typeof_expression/tof_const.ets | 4 +- .../17.typeof_expression/tof_func.ets | 2 +- .../17.typeof_expression/tof_meth.ets | 2 +- .../17.typeof_expression/tof_obj.ets | 2 +- .../17.typeof_expression/tof_vars.ets | 4 +- .../not_nullable_check.ets | 2 +- .../null_check.ets | 6 +- .../null_check_exception.ets | 2 +- .../null_check_exception_1.ets | 6 +- .../null_check_exception_2.ets | 6 +- .../null_check_exception_3.ets | 6 +- .../null_check_exception_4.ets | 6 +- .../null_check_value.ets | 2 +- .../nullable_cast_0.ets | 2 +- .../nullable_cast_1.ets | 2 +- .../undefined_0.ets | 2 +- .../undefined_1.ets | 2 +- .../undefined_2.ets | 2 +- .../undefined_3.ets | 2 +- .../undefined_4.ets | 2 +- .../undefined_5.ets | 2 +- .../lazy_operator.ets | 2 +- .../lazy_operator_2.ets | 1 + .../least_upper_bound.ets | 2 +- .../left_hand_side.ets | 2 +- .../left_hand_side_value_type.ets | 3 +- .../right_hand_side.ets | 2 +- .../right_hand_side_value_type_0.ets | 2 +- .../right_hand_side_value_type_1.ets | 2 +- .../type_of_null_coalescing_0.ets | 2 +- .../type_of_null_coalescing_1.ets | 2 +- .../type_of_null_coalescing_2.ets | 6 +- .../abrupt_completion.ets | 48 - .../01.postfix_increment/bigint.ets | 42 - .../01.postfix_increment/class_fields.ets | 109 - .../postfix_increment.ets | 73 +- .../postfix_increment_neg.ets | 13 +- .../postfix_increment_neg.params.yaml | 26 - .../01.postfix_increment/records.ets | 49 - .../abrupt_completion.ets | 48 - .../02.postfix_decrement/bigint.ets | 42 - .../02.postfix_decrement/class_fields.ets | 109 - .../postfix_decrement.ets | 75 +- .../postfix_decrement_neg.ets | 10 +- .../postfix_decrement_neg.params.yaml | 26 - .../02.postfix_decrement/records.ets | 49 - .../03.prefix_increment/abrupt_completion.ets | 48 - .../03.prefix_increment/bigint.ets | 42 - .../03.prefix_increment/class_fields.ets | 109 - .../03.prefix_increment/prefix_increment.ets | 78 +- .../prefix_increment_neg.ets | 10 +- .../prefix_increment_neg.params.yaml | 26 - .../03.prefix_increment/records.ets | 49 - .../04.prefix_decrement/abrupt_completion.ets | 48 - .../04.prefix_decrement/bigint.ets | 44 - .../04.prefix_decrement/class_fields.ets | 109 - .../04.prefix_decrement/prefix_decrement.ets | 75 +- .../prefix_decrement_neg.ets | 10 +- .../prefix_decrement_neg.params.yaml | 26 - .../04.prefix_decrement/records.ets | 51 - .../05.unary_plus/int_enum.ets | 44 - .../05.unary_plus/long_enum.ets | 40 - .../05.unary_plus/unary_plus.ets | 53 +- .../05.unary_plus/unary_plus_neg.ets | 7 +- .../05.unary_plus/unary_plus_neg.params.yaml | 39 - .../06.unary_minus/unary_minus_corner.ets | 4 +- .../06.unary_minus/unary_minus_inbound.ets | 2 +- .../unary_minus_inbound.params.yaml | 10 +- .../06.unary_minus/unary_minus_int_enum.ets | 43 - .../06.unary_minus/unary_minus_long_enum.ets | 44 - .../06.unary_minus/unary_minus_onbound.ets | 2 +- .../06.unary_minus/unary_minus_outbound.ets | 2 +- .../unary_minus_outbound_NaN_double.ets | 2 +- .../unary_minus_outbound_NaN_float.ets | 2 +- .../unary_minus_outbound_float.ets | 2 +- .../unary_minus_outbound_int.ets | 2 +- .../bitwise_complement.ets | 2 +- .../bitwise_complement.params.yaml | 12 +- .../bitwise_complement_neg.ets | 6 +- .../logical_complement.ets | 2 +- .../logical_complement_char.ets | 6 +- .../logical_complement_number.ets | 6 +- .../logical_complement_pos.ets | 4 +- .../01.multiplication/inf.ets | 2 +- .../01.multiplication/integer_mul.ets | 2 +- .../01.multiplication/nan.ets | 2 +- .../02.division/inf.ets | 5 +- .../02.division/nan.ets | 4 +- .../03.remainder/inf.ets | 5 +- .../03.remainder/integer_remainder.ets | 5 +- .../03.remainder/nan.ets | 4 +- .../04.exponentiation/inf.ets | 27 - .../04.exponentiation/inf.params.yaml | 47 - .../integer_and_floating_point.ets | 27 - .../integer_and_floating_point.params.yaml | 45 - .../04.exponentiation/nan.ets | 35 - .../04.exponentiation/nan.params.yaml | 34 - .../01.string_concatenation/string_concat.ets | 2 +- .../float.ets | 2 +- .../float.params.yaml | 14 +- .../inf.ets | 2 +- .../int.ets | 2 +- .../int.params.yaml | 4 + .../nan.ets | 2 +- .../23.shift_expressions/rshift_int.ets | 2 +- .../bigint_relational_operators/rel.ets | 28 - .../rel.params.yaml | 55 - .../bigint_relational_operators/rel_func.ets | 33 - .../rel_func.params.yaml | 47 - .../bigint_relational_operators/rel_n.ets | 28 - .../bigint_relational_operators/rel_var.ets | 30 - .../rel_var.params.yaml | 47 - .../comparison_n.ets | 29 - .../comparison_n.params.yaml | 27 - .../float_comparison.ets | 14 +- .../float_comparison.params.yaml | 176 +- .../integer_comparison.ets | 10 +- .../integer_comparison.params.yaml | 78 +- .../conversions_bigint.ets | 35 - .../conversions_bigint.params.yaml | 31 - .../conversions_byte.ets | 31 - .../conversions_byte.params.yaml | 32 - .../conversions_double.ets | 29 - .../conversions_double.params.yaml | 24 - .../conversions_float.ets | 31 - .../conversions_float.params.yaml | 28 - .../conversions_int.ets | 31 - .../conversions_int.params.yaml | 30 - .../conversions_long.ets | 31 - .../conversions_long.params.yaml | 29 - .../conversions_short.ets | 31 - .../conversions_short.params.yaml | 31 - .../long_string_comparison.ets | 10 +- .../string_comparison.ets | 4 +- .../string_comparison_incorrect.ets | 4 +- .../ge.ets | 0 .../ge.params.yaml | 14 +- .../gt.ets | 0 .../gt.params.yaml | 14 +- .../le.ets | 0 .../le.params.yaml | 14 +- .../lt.ets | 0 .../lt.params.yaml | 14 +- .../03.bigint_relational_operators/rel_n.ets} | 0 .../rel_n.params.yaml | 16 +- .../boolean_comparison.ets | 8 +- .../boolean_comparison.params.yaml | 0 .../boolean_comparison_neg.ets | 0 .../boolean_comparison_neg.params.yaml | 14 +- .../enum2.params.yaml | 163 - .../enum_arr.ets | 45 - .../enum_cond.ets | 42 - .../enum_fun.ets | 52 - .../enum_tup.ets | 45 - .../enum_union.ets | 45 - .../enum_var.ets | 42 - .../enum2.ets | 0 .../enum2.params.yaml | 71 + .../enum_arr.ets | 45 + .../enum_arr.params.yaml | 0 .../enum_cond.ets | 42 + .../enum_cond.params.yaml | 0 .../enum_fld.ets | 24 +- .../enum_fld.params.yaml | 0 .../enum_fun.ets | 52 + .../enum_fun.params.yaml | 0 .../enum_lmb.ets | 24 +- .../enum_lmb.params.yaml | 0 .../enum_tup.ets | 45 + .../enum_tup.params.yaml | 0 .../enum_union.ets | 45 + .../enum_union.params.yaml | 0 .../enum_var.ets | 42 + .../enum_var.params.yaml | 0 .../char_eq.ets | 2 +- .../char_eq.params.yaml | 20 +- .../char_eq_n.ets | 2 +- .../char_eq_n.params.yaml | 12 +- .../float_equality_0.ets | 6 +- .../float_equality_1.ets | 3 +- .../float_equality_2.ets | 3 +- .../float_equality_3.ets | 6 +- .../float_equality_4.ets | 12 +- .../numeric_equality.ets | 2 +- .../function_equality.ets | 30 - .../function_equality.params.yaml | 36 - .../function_equality_ne.ets | 30 - .../function_equality_ne.params.yaml | 117 - .../string_eq.ets | 2 +- .../string_eq.params.yaml | 30 + .../string_eq_cte.ets | 0 .../string_eq_cte.params.yaml | 0 .../bigint_eq_cte.ets | 31 + .../bigint_eq_cte.params.yaml | 61 + .../eq.ets | 0 .../eq.params.yaml | 0 .../03.bigint_equality_operators/eq_n.ets | 31 + .../eq_n.params.yaml | 17 +- .../ne1.ets | 0 .../ne1.params.yaml | 0 .../ne2.ets | 0 .../ne2.params.yaml | 0 .../null_and_undefined_equality.params.yaml | 206 - .../nullable_and_undefinable_equation.ets | 33 - ...lable_and_undefinable_equation.params.yaml | 288 - .../nullable_equation.ets | 33 - .../nullable_equation.params.yaml | 178 - .../undefinable_equation.ets | 33 - .../undefinable_equation.params.yaml | 178 - .../boolean_equality_operator.ets | 2 +- .../boolean_equality_operator.params.yaml | 47 + .../enum_equality.ets | 0 .../enum_equality.params.yaml | 76 + .../object_type_equality_operators/cte.ets | 0 .../cte.params.yaml | 0 .../object_type_equality_operators/eq.ets | 48 + .../eq.params.yaml | 166 + .../object_type_equality_operators/eq1.ets | 48 + .../eq1.params.yaml | 120 + .../object_type_equality_operators/ne.ets | 50 + .../ne.params.yaml | 0 .../object_type_equality_operators/ne1.ets | 50 + .../ne1.params.yaml | 0 .../type_parameter_equality_operators/eq.ets | 48 + .../eq.params.yaml | 100 + .../type_parameter_equality_operators/eq1.ets | 48 + .../eq1.params.yaml | 114 + .../type_parameter_equality_operators/eq2.ets | 2 +- .../eq2.params.yaml | 4 +- .../type_parameter_equality_operators/ne.ets | 50 + .../ne.params.yaml | 0 .../type_parameter_equality_operators/ne1.ets | 50 + .../ne1.params.yaml | 0 .../type_parameter_equality_operators/ne3.ets | 2 +- .../ne3.params.yaml | 4 +- .../union_equality_operators/cte.ets | 0 .../union_equality_operators/cte.params.yaml | 0 .../union_equality_operators/cte_n.ets | 0 .../cte_n.params.yaml | 0 .../union_equality_operators/eq.ets | 50 + .../union_equality_operators/eq.params.yaml | 122 + .../union_equality_operators/ne.ets | 52 + .../union_equality_operators/ne.params.yaml | 2 +- .../array_types_equality_operator.ets | 2 +- .../array_types_equality_operator.params.yaml | 0 .../null_conversation_0.ets | 0 .../null_conversation_1.ets | 8 +- .../null_conversation_2.ets | 0 .../operand_is_not_of_reference_type.ets | 2 +- ...erand_is_not_of_reference_type.params.yaml | 0 .../refer_to_the_same_array.ets | 8 +- .../refer_to_the_same_object.ets | 8 +- .../reference_types_equality_operator.ets | 2 +- ...erence_types_equality_operator.params.yaml | 0 ...version_of_one_operand_to_another_type.ets | 0 .../null_and_undefined_equality.ets | 0 .../null_and_undefined_equality.params.yaml | 147 + .../null_and_undefined_equality_negative.ets | 0 ...nd_undefined_equality_negative.params.yaml | 4 +- .../bigint_equality_operators/eq_func.ets | 37 - .../eq_func.params.yaml | 37 - .../bigint_equality_operators/eq_var.ets | 34 - .../eq_var.params.yaml | 37 - .../boolean_equality_operator.params.yaml | 80 - .../enum_equality.params.yaml | 136 - .../25.equality_expressions/eq.ets | 4 +- .../general_equality_0.ets | 2 +- .../general_equality_1.ets | 2 +- .../general_equality_2.ets | 2 +- .../object_type_equality_operators/eq.ets | 48 - .../eq.params.yaml | 166 - .../object_type_equality_operators/eq1.ets | 48 - .../eq1.params.yaml | 120 - .../object_type_equality_operators/ne.ets | 50 - .../object_type_equality_operators/ne1.ets | 50 - .../type_parameter_equality_operators/eq.ets | 48 - .../eq.params.yaml | 100 - .../type_parameter_equality_operators/eq1.ets | 48 - .../eq1.params.yaml | 114 - .../type_parameter_equality_operators/ne.ets | 50 - .../type_parameter_equality_operators/ne1.ets | 50 - .../union_equality_operators/eq.ets | 50 - .../union_equality_operators/eq.params.yaml | 122 - .../union_equality_operators/ne.ets | 52 - .../string_eq.params.yaml | 46 - .../value_equality_operators.ets | 2 +- .../integer_and.ets | 2 +- .../integer_or.ets | 2 +- .../integer_xor.ets | 2 +- .../logical_bitwise_bool.ets | 2 +- .../logical_bitwise_boolean.ets | 2 +- .../conditional_and_bool.ets | 2 +- .../conditional_and_bool.params.yaml | 16 +- .../conditional_and_boolean.ets | 2 +- .../conditional_and_boolean.params.yaml | 16 +- .../conditional_or_bool.ets | 2 +- .../conditional_or_bool.params.yaml | 16 +- .../conditional_or_boolean.ets | 2 +- .../conditional_or_boolean.params.yaml | 16 +- .../01.simple_assignment_operator/ord22.ets | 1 - .../01.simple_assignment_operator/ord23.ets | 3 +- .../01.simple_assignment_operator/ord24.ets | 1 - .../01.simple_assignment_operator/ord25.ets | 3 +- .../01.simple_assignment_operator/ord3.ets | 1 - .../01.simple_assignment_operator/ord4.ets | 2 +- .../01.simple_assignment_operator/ord5.ets | 1 - .../01.simple_assignment_operator/ord6.ets | 1 - .../02.compound_assignment_operators/ops.ets | 2 +- .../ops.params.yaml | 527 +- .../ops_boxed.ets | 2 +- .../ops_boxed.params.yaml | 80 +- .../ops_neg_rt.params.yaml | 12 +- .../left_array01.ets | 2 +- .../left_array02.ets | 5 +- .../left_array03.ets | 2 +- .../left_chained_operator.ets | 2 +- .../left_filed.ets | 2 +- .../left_func.ets | 2 +- .../left_func01.ets | 2 +- .../left_name.ets | 2 +- .../left_nestedfileds.ets | 2 +- .../left_obj01.ets | 2 +- .../left_operator.ets | 2 +- .../left_operator01.ets | 2 +- .../left_operator02.ets | 2 +- .../left_operator03.ets | 2 +- .../left_operator04.ets | 2 +- .../left_operator05.ets | 2 +- .../left_property.ets | 2 +- .../left_readonly.ets | 2 +- .../left_readonly01.ets | 2 +- .../left_this.ets | 2 +- .../boolean_cond_ex.ets | 2 +- .../condiional_expression_declaration_0.ets | 2 +- .../condiional_expression_declaration_1.ets | 2 +- .../conditional_expression_array.ets | 2 +- .../conditional_expression_evaluation_0.ets | 8 +- .../conditional_expression_evaluation_1.ets | 2 +- .../conditional_expression_object_0.ets | 2 +- .../conditional_expression_object_1.ets | 2 +- .../conditional_expression_object_2.ets | 2 +- .../conditional_expression_object_3.ets | 2 +- .../conditional_expression_object_4.ets | 2 +- .../conditional_expression_object_5.ets | 2 +- .../conditional_expression_object_6.ets | 2 +- .../conditional_expression_object_7.ets | 2 +- .../conditional_expression_object_8.ets | 29 +- .../conditional_expression_order.ets | 2 +- .../conditional_expression_string.ets | 2 +- .../numeric_condition_expression_type.ets | 2 +- ...t_with_two_operands_of_different_types.ets | 4 +- ...e_of_numeric_condition_expression_type.ets | 2 +- .../siexp.ets | 2 +- .../siexp.params.yaml | 8 +- .../01.lambda_signature/negative.params.yaml | 4 - .../01.lambda_signature/positive.ets | 30 - .../01.lambda_signature/positive.params.yaml | 27 - .../02.lambda_body/body.ets | 3 - .../02.lambda_body/body.params.yaml | 52 +- .../03.lambda_expression_type/negative.ets | 27 + .../03.lambda_expression_type/negative_0.ets | 26 - .../03.lambda_expression_type/negative_1.ets | 27 - .../03.lambda_expression_type/type.ets | 26 + .../03.lambda_expression_type/type_0.ets | 29 - .../03.lambda_expression_type/type_1.ets | 28 - .../03.lambda_expression_type/type_2.ets | 30 - .../03.lambda_expression_type/type_2_2.ets | 33 - .../03.lambda_expression_type/type_3.ets | 31 - .../03.lambda_expression_type/type_4.ets | 34 - .../03.lambda_expression_type/type_4_2.ets | 36 - .../03.lambda_expression_type/type_5.ets | 28 - .../03.lambda_expression_type/type_6.ets | 29 - .../03.lambda_expression_type/type_7.ets | 30 - .../03.lambda_expression_type/type_8.ets | 33 - .../32.lambda_expression/callback.ets | 3 - .../32.lambda_expression/callback.params.yaml | 18 +- .../32.lambda_expression/decl_full_ref.ets | 6 +- .../decl_full_ref.params.yaml | 23 +- .../32.lambda_expression/decl_full_value.ets | 4 +- .../decl_full_value.params.yaml | 17 +- .../32.lambda_expression/decl_short_ref.ets | 4 +- .../decl_short_ref.params.yaml | 14 +- .../32.lambda_expression/decl_short_value.ets | 4 +- .../decl_short_value.params.yaml | 14 +- .../32.lambda_expression/generic.ets | 27 + .../constant_bitwise_expression.ets | 6 +- .../constant_bitwise_expression.params.yaml | 29 +- .../constant_number_conversion.ets | 4 +- .../constant_number_conversion.params.yaml | 4 +- .../constant_unary_operation.ets | 4 +- .../constant_unary_operation.params.yaml | 12 +- .../constant_bitwise_complement.ets | 2 +- .../constant_bitwise_expression.ets | 4 +- .../constant_bitwise_expression.params.yaml | 10 +- .../check_array/constant_calculation.ets | 4 +- .../constant_calculation.params.yaml | 36 +- .../constant_logical_expression.ets | 6 +- .../constant_logical_expression.params.yaml | 12 +- .../constant_number_conversion.ets | 4 +- .../check_array/constant_shift.ets | 4 +- .../check_array/constant_shift.params.yaml | 4 + .../check_array/constant_unary_minus.ets | 4 +- .../check_array/constant_unary_plus.ets | 4 +- .../constant_bitwise_complement.ets | 5 +- .../constant_bitwise_complement.params.yaml | 1 + .../constant_bitwise_expression.ets | 5 +- .../constant_bitwise_expression.params.yaml | 10 +- .../check_enum/constant_calculation.ets | 6 +- .../constant_calculation.params.yaml | 43 +- .../constant_logical_expression.ets | 5 +- .../constant_logical_expression.params.yaml | 12 +- .../constant_num_chain_initializer.ets | 5 +- ...constant_num_chain_initializer.params.yaml | 3 + .../constant_num_chain_initializer_neg.ets | 33 - ...tant_num_chain_initializer_neg.params.yaml | 17 - .../check_enum/constant_number_conversion.ets | 6 +- .../constant_number_conversion.params.yaml | 7 +- .../check_enum/constant_shift.ets | 5 +- .../check_enum/constant_shift.params.yaml | 14 +- .../constant_str_chain_initializer.ets | 5 +- ...constant_str_chain_initializer.params.yaml | 2 +- .../check_enum/constant_unary_minus.ets | 6 +- .../constant_unary_minus.params.yaml | 10 +- .../check_enum/constant_unary_plus.ets | 6 +- .../constant_unary_plus.params.yaml | 10 +- .../constant_expression.ets | 4 +- .../constant_expression.params.yaml | 7 +- .../wrong_constant_expression.params.yaml | 4 +- .../04.local_declarations/local_const.ets | 2 +- .../04.local_declarations/local_var.ets | 2 +- .../negative_local_const.ets | 4 +- .../negative_local_var.ets | 4 +- .../08.statements/05.if_statements/if.ets | 2 +- .../05.if_statements/if_not_executed.ets | 2 +- .../05.if_statements/nested_if.ets | 4 +- .../while_executed.ets | 2 +- .../for_loop_parameters.params.yaml | 52 +- .../for_loop_variable_scope.ets | 2 +- .../for_loop_variable_scope_1.ets | 2 +- .../08.for_statements/nested_for_loop.ets | 2 +- .../09.for_of_statements/for_of.params.yaml | 83 +- .../10.break_statements/break.params.yaml | 10 +- .../break_negative.params.yaml | 2 +- .../continue_while20.ets | 2 +- .../continue_while6.ets | 2 +- .../12.return_statements/return.params.yaml | 2 +- .../13.switch_statements/switch.ets | 8 +- .../13.switch_statements/switch_block.ets | 8 +- .../13.switch_statements/switch_char.ets | 8 +- .../13.switch_statements/switch_enum.ets | 6 +- .../switch_negative.params.yaml | 14 +- .../13.switch_statements/switch_no_break.ets | 6 +- .../14.throw_statements/throw.params.yaml | 26 +- .../throw_neg2.ets.expected.err | 19 - .../01.catch_clauses/catch.ets | 2 +- .../01.catch_clauses/catch.params.yaml | 25 +- .../01.catch_clauses/spec_example.ets | 4 +- .../abstract_subclass_1.ets | 2 +- ..._parent_class_private_array_boolean_01.ets | 0 ..._parent_class_private_array_boolean_02.ets | 0 ...ng_parent_class_private_array_class_01.ets | 0 ...ng_parent_class_private_array_class_02.ets | 0 ...ing_parent_class_private_array_date_01.ets | 0 ...ing_parent_class_private_array_date_02.ets | 0 ...arent_class_private_array_interface_01.ets | 0 ...arent_class_private_array_interface_02.ets | 0 ...g_parent_class_private_array_number_01.ets | 0 ...g_parent_class_private_array_number_02.ets | 0 ...g_parent_class_private_array_string_01.ets | 0 ...g_parent_class_private_array_string_02.ets | 0 ...essing_parent_class_private_boolean_01.ets | 0 ...essing_parent_class_private_boolean_02.ets | 0 ...ccessing_parent_class_private_class_01.ets | 0 ...ccessing_parent_class_private_class_02.ets | 0 ...accessing_parent_class_private_date_01.ets | 0 ...accessing_parent_class_private_date_02.ets | 0 ...ssing_parent_class_private_function_01.ets | 0 ...ssing_parent_class_private_function_02.ets | 0 .../accessing_parent_class_private_int_01.ets | 0 .../accessing_parent_class_private_int_02.ets | 0 ...accessing_parent_class_private_null_01.ets | 0 ...accessing_parent_class_private_null_02.ets | 0 ...cessing_parent_class_private_number_01.ets | 0 ...cessing_parent_class_private_number_02.ets | 0 ...cessing_parent_class_private_string_01.ets | 0 ...cessing_parent_class_private_string_02.ets | 0 ...sing_parent_class_private_undefined_01.ets | 0 ...sing_parent_class_private_undefined_02.ets | 0 ...arent_class_protected_array_boolean_01.ets | 2 +- ...arent_class_protected_array_boolean_02.ets | 2 +- ..._parent_class_protected_array_class_01.ets | 2 +- ..._parent_class_protected_array_class_02.ets | 2 +- ...g_parent_class_protected_array_date_01.ets | 2 +- ...g_parent_class_protected_array_date_02.ets | 2 +- ...ent_class_protected_array_interface_01.ets | 2 +- ...ent_class_protected_array_interface_02.ets | 2 +- ...parent_class_protected_array_number_01.ets | 2 +- ...parent_class_protected_array_number_02.ets | 2 +- ...parent_class_protected_array_string_01.ets | 2 +- ...parent_class_protected_array_string_02.ets | 2 +- ...sing_parent_class_protected_boolean_01.ets | 2 +- ...sing_parent_class_protected_boolean_02.ets | 2 +- ...essing_parent_class_protected_class_01.ets | 2 +- ...essing_parent_class_protected_class_02.ets | 2 +- ...cessing_parent_class_protected_date_01.ets | 2 +- ...cessing_parent_class_protected_date_02.ets | 2 +- ...ing_parent_class_protected_function_01.ets | 2 +- ...ing_parent_class_protected_function_02.ets | 2 +- ...ccessing_parent_class_protected_int_01.ets | 2 +- ...ccessing_parent_class_protected_int_02.ets | 2 +- ...cessing_parent_class_protected_null_01.ets | 2 +- ...cessing_parent_class_protected_null_02.ets | 2 +- ...ssing_parent_class_protected_number_01.ets | 2 +- ...ssing_parent_class_protected_number_02.ets | 2 +- ...ssing_parent_class_protected_string_01.ets | 2 +- ...ssing_parent_class_protected_string_02.ets | 2 +- ...ng_parent_class_protected_undefined_01.ets | 2 +- ...ng_parent_class_protected_undefined_02.ets | 2 +- ...g_parent_class_public_array_boolean_01.ets | 2 +- ...g_parent_class_public_array_boolean_02.ets | 2 +- ...ing_parent_class_public_array_class_01.ets | 2 +- ...ing_parent_class_public_array_class_02.ets | 2 +- ...sing_parent_class_public_array_date_01.ets | 2 +- ...sing_parent_class_public_array_date_02.ets | 2 +- ...parent_class_public_array_interface_01.ets | 2 +- ...parent_class_public_array_interface_02.ets | 2 +- ...ng_parent_class_public_array_number_01.ets | 2 +- ...ng_parent_class_public_array_number_02.ets | 2 +- ...ng_parent_class_public_array_string_01.ets | 2 +- ...ng_parent_class_public_array_string_02.ets | 2 +- ...cessing_parent_class_public_boolean_01.ets | 2 +- ...cessing_parent_class_public_boolean_02.ets | 2 +- ...accessing_parent_class_public_class_01.ets | 2 +- ...accessing_parent_class_public_class_02.ets | 2 +- .../accessing_parent_class_public_date_01.ets | 2 +- .../accessing_parent_class_public_date_02.ets | 2 +- ...essing_parent_class_public_function_01.ets | 2 +- ...essing_parent_class_public_function_02.ets | 2 +- .../accessing_parent_class_public_int_01.ets | 2 +- .../accessing_parent_class_public_int_02.ets | 2 +- .../accessing_parent_class_public_null_01.ets | 2 +- .../accessing_parent_class_public_null_02.ets | 2 +- ...ccessing_parent_class_public_number_01.ets | 2 +- ...ccessing_parent_class_public_number_02.ets | 2 +- ...ccessing_parent_class_public_string_01.ets | 2 +- ...ccessing_parent_class_public_string_02.ets | 2 +- ...ssing_parent_class_public_undefined_01.ets | 2 +- ...ssing_parent_class_public_undefined_02.ets | 2 +- .../circularly_class_declaration.ets | 0 .../class_call_rewrite/class_11.ets | 4 +- .../class_call_rewrite/class_12.ets | 2 +- .../class_call_rewrite/class_13.ets | 2 +- .../class_call_rewrite/class_14.ets | 2 +- .../class_call_rewrite/class_15.ets | 2 +- .../class_inherits_parent_members_case_01.ets | 4 +- .../class_inherits_parent_members_case_02.ets | 6 +- .../class_inherits_parent_members_case_03.ets | 2 +- .../class_inherits_parent_members_case_04.ets | 2 +- .../class_inherits_parent_members_case_05.ets | 2 +- .../class_inherits_parent_members_case_06.ets | 2 +- .../class_inherits_parent_members_case_07.ets | 2 +- .../class_inherits_parent_members_case_08.ets | 2 +- .../class_inherits_parent_members_case_09.ets | 2 +- .../class_inherits_parent_members_case_10.ets | 4 +- .../class_inherits_parent_members_case_11.ets | 4 +- .../class_inherits_parent_members_case_12.ets | 6 +- .../class_inherits_parent_members_case_13.ets | 10 +- .../class_inherits_parent_members_case_14.ets | 2 +- .../class_inherits_parent_members_case_15.ets | 2 +- .../class_inherits_parent_members_case_16.ets | 6 +- .../class_inherits_parent_members_case_17.ets | 4 +- .../class_inherits_parent_members_case_18.ets | 2 +- .../class_inherits_parent_members_case_19.ets | 4 +- .../class_inherits_parent_members_case_20.ets | 2 +- .../class_inherits_parent_members_case_21.ets | 6 +- .../class_inherits_parent_members_case_22.ets | 6 +- .../class_inherits_parent_members_case_23.ets | 2 +- .../class_inherits_parent_members_case_24.ets | 2 +- .../class_inherits_parent_members_case_25.ets | 2 +- .../class_inherits_parent_members_case_26.ets | 4 +- .../class_inherits_parent_members_case_27.ets | 2 +- .../class_inherits_parent_members_case_28.ets | 2 +- .../class_rewrite_call/class_06.ets | 2 +- .../class_rewrite_call/class_07.ets | 2 +- .../class_rewrite_call/class_08.ets | 2 +- .../class_rewrite_call/class_09.ets | 2 +- .../class_rewrite_call/class_10.ets | 2 +- .../class_rewriting/class_01.ets | 2 +- .../class_rewriting/class_02.ets | 2 +- .../class_rewriting/class_03.ets | 2 +- .../class_rewriting/class_04.ets | 2 +- .../class_rewriting/class_05.ets | 2 +- .../class_over01.ets | 4 +- .../class_over02.ets | 2 +- .../class_over03.ets | 2 +- .../class_over04.ets | 4 +- .../class_over05.ets | 2 +- .../class_over06.ets | 2 +- .../class_over07.ets | 2 +- .../class_over08.ets | 2 +- .../class_over09.ets | 2 +- .../class_over10.ets | 2 +- .../class_over11.ets | 4 +- .../class_over12.ets | 2 +- .../class_over13.ets | 2 +- .../class_over14.ets | 4 +- .../class_over15.ets | 2 +- .../class_over16.ets | 2 +- .../class_over17.ets | 2 +- .../class_over18.ets | 2 +- .../class_over19.ets | 4 +- .../class_over20.ets | 2 +- .../class_over21.ets | 2 +- .../class_over22.ets | 4 +- .../class_over23.ets | 2 +- .../class_no_pri01.ets | 2 +- .../class_no_pri02.ets | 4 +- .../class_no_pri03.ets | 2 +- .../class_no_pri04.ets | 2 +- .../class_no_pri05.ets | 8 +- .../class_no_pri06.ets | 2 +- .../class_no_pri07.ets | 8 +- .../class_no_pri08.ets | 8 +- .../class_no_pri09.ets | 8 +- .../class_no_pri10.ets | 8 +- .../class_no_pri11.ets | 2 +- .../class_no_pri12.ets | 8 +- .../class_no_pri13.ets | 8 +- .../class_no_pri14.ets | 8 +- .../class_no_pri15.ets | 6 +- .../class_no_pri16.ets | 8 +- .../class_no_pri17.ets | 8 +- .../class_no_pri18.ets | 8 +- .../class_no_pri19.ets | 8 +- .../class_no_pri20.ets | 8 +- .../class_no_pri21.ets | 8 +- .../class_no_pri22.ets | 6 +- .../class_no_pri23.ets | 6 +- .../class_no_pri24.ets | 8 +- .../class_no_pri25.ets | 7 +- .../class_no_pri26.ets | 8 +- .../class_no_pri27.ets | 2 +- .../class_no_pri28.ets | 8 +- .../class_no_pri29.ets | 8 +- .../class_no_pri30.ets | 6 +- .../class_no_pri31.ets | 8 +- .../class_no_pri32.ets | 8 +- .../class_no_pri33.ets | 8 +- .../class_no_pri34.ets | 7 +- .../class_no_pri35.ets | 4 +- .../class_static01.ets | 2 +- .../class_static02.ets | 2 +- .../class_static03.ets | 2 +- .../class_static04.ets | 2 +- .../class_static05.ets | 2 +- .../class_static06.ets | 2 +- .../class_static07.ets | 2 +- .../class_static08.ets | 2 +- .../class_static09.ets | 2 +- .../class_static10.ets | 2 +- .../class_static11.ets | 6 +- .../class_static12.ets | 2 +- .../class_static13.ets | 2 +- .../class_static14.ets | 2 +- .../extends_clause.ets | 0 .../extends_itself.ets | 0 .../extends_object_class.ets | 4 +- .../initialize_members_0.ets | 6 +- .../initialize_members_1.ets | 6 +- .../initialize_members_10.ets | 6 +- .../initialize_members_11.ets | 2 +- .../initialize_members_12.ets | 2 +- .../initialize_members_13.ets | 4 +- .../initialize_members_14.ets | 4 +- .../initialize_members_15.ets | 4 +- .../initialize_members_16.ets | 2 +- .../initialize_members_17.ets | 2 +- .../initialize_members_18.ets | 2 +- .../initialize_members_19.ets | 2 +- .../initialize_members_2.ets | 6 +- .../initialize_members_20.ets | 2 +- .../initialize_members_21.ets | 6 +- .../initialize_members_22.ets | 6 +- .../initialize_members_23.ets | 6 +- .../initialize_members_24.ets | 6 +- .../initialize_members_25.ets | 6 +- .../initialize_members_26.ets | 6 +- .../initialize_members_27.ets | 6 +- .../initialize_members_28.ets | 6 +- .../initialize_members_29.ets | 2 +- .../initialize_members_3.ets | 6 +- .../initialize_members_30.ets | 6 +- .../initialize_members_31.ets | 2 +- .../initialize_members_32.ets | 2 +- .../initialize_members_33.ets | 6 +- .../initialize_members_34.ets | 6 +- .../initialize_members_35.ets | 6 +- .../initialize_members_36.ets | 6 +- .../initialize_members_37.ets | 6 +- .../initialize_members_38.ets | 6 +- .../initialize_members_39.ets | 6 +- .../initialize_members_4.ets | 6 +- .../initialize_members_40.ets | 2 +- .../initialize_members_41.ets | 6 +- .../initialize_members_42.ets | 6 +- .../initialize_members_43.ets | 2 +- .../initialize_members_44.ets | 6 +- .../initialize_members_45.ets | 6 +- .../initialize_members_46.ets | 6 +- .../initialize_members_47.ets | 6 +- .../initialize_members_48.ets | 6 +- .../initialize_members_49.ets | 6 +- .../initialize_members_5.ets | 6 +- .../initialize_members_50.ets | 2 +- .../initialize_members_51.ets | 6 +- .../initialize_members_52.ets | 2 +- .../initialize_members_53.ets | 6 +- .../initialize_members_54.ets | 6 +- .../initialize_members_55.ets | 2 +- .../initialize_members_6.ets | 2 +- .../initialize_members_7.ets | 6 +- .../initialize_members_8.ets | 6 +- .../initialize_members_9.ets | 2 +- .../invalid_type_reference.ets | 0 .../invalid_type_reference.params.yaml | 0 .../members/polymorphism0.ets | 2 +- .../members/polymorphism1.ets | 4 +- .../members/polymorphism10.ets | 4 +- .../members/polymorphism2.ets | 2 +- .../members/polymorphism3.ets | 2 +- .../members/polymorphism4.ets | 2 +- .../members/polymorphism5.ets | 2 +- .../members/polymorphism6.ets | 4 +- .../members/polymorphism7.ets | 2 +- .../members/polymorphism8.ets | 2 +- .../members/polymorphism9.ets | 4 +- .../method_return_value_0.ets | 4 +- .../method_return_value_1.ets | 4 +- .../method_return_value_10.ets | 4 +- .../method_return_value_11.ets | 4 +- .../method_return_value_12.ets | 4 +- .../method_return_value_13.ets | 4 +- .../method_return_value_14.ets | 4 +- .../method_return_value_15.ets | 4 +- .../method_return_value_16.ets | 4 +- .../method_return_value_17.ets | 4 +- .../method_return_value_18.ets | 4 +- .../method_return_value_19.ets | 4 +- .../method_return_value_2.ets | 10 +- .../method_return_value_20.ets | 7 +- .../method_return_value_21.ets | 4 +- .../method_return_value_22.ets | 4 +- .../method_return_value_23.ets | 16 +- .../method_return_value_24.ets | 4 +- .../method_return_value_25.ets | 4 +- .../method_return_value_3.ets | 10 +- .../method_return_value_4.ets | 10 +- .../method_return_value_5.ets | 4 +- .../method_return_value_6.ets | 10 +- .../method_return_value_7.ets | 10 +- .../method_return_value_8.ets | 4 +- .../method_return_value_9.ets | 4 +- ...lti_level_inheritance_value_transfer01.ets | 2 +- ...lti_level_inheritance_value_transfer02.ets | 2 +- ...lti_level_inheritance_value_transfer03.ets | 6 +- ...lti_level_inheritance_value_transfer04.ets | 4 +- ...lti_level_inheritance_value_transfer05.ets | 8 +- ...lti_level_inheritance_value_transfer06.ets | 8 +- ...lti_level_inheritance_value_transfer07.ets | 6 +- ...lti_level_inheritance_value_transfer08.ets | 6 +- ...lti_level_inheritance_value_transfer09.ets | 8 +- ...lti_level_inheritance_value_transfer10.ets | 8 +- ...lti_level_inheritance_value_transfer11.ets | 6 +- ...lti_level_inheritance_value_transfer12.ets | 6 +- ...lti_level_inheritance_value_transfer13.ets | 2 +- ...lti_level_inheritance_value_transfer14.ets | 2 +- ...lti_level_inheritance_value_transfer15.ets | 6 +- ...lti_level_inheritance_value_transfer16.ets | 6 +- ...lti_level_inheritance_value_transfer17.ets | 6 +- ...lti_level_inheritance_value_transfer18.ets | 6 +- ...lti_level_inheritance_value_transfer19.ets | 6 +- ...lti_level_inheritance_value_transfer20.ets | 6 +- ...lti_level_inheritance_value_transfer21.ets | 6 +- ...lti_level_inheritance_value_transfer22.ets | 8 +- ...lti_level_inheritance_value_transfer23.ets | 6 +- ...lti_level_inheritance_value_transfer24.ets | 6 +- ...lti_level_inheritance_value_transfer25.ets | 6 +- ...lti_level_inheritance_value_transfer26.ets | 6 +- ...lti_level_inheritance_value_transfer27.ets | 6 +- ...lti_level_inheritance_value_transfer28.ets | 2 +- ...lti_level_inheritance_value_transfer29.ets | 2 +- ...lti_level_inheritance_value_transfer30.ets | 4 +- ...lti_level_inheritance_value_transfer31.ets | 4 +- ...lti_level_inheritance_value_transfer32.ets | 6 +- ...lti_level_inheritance_value_transfer33.ets | 10 +- ...lti_level_inheritance_value_transfer34.ets | 2 +- ...lti_level_inheritance_value_transfer35.ets | 6 +- ...lti_level_inheritance_value_transfer36.ets | 6 +- ...lti_level_inheritance_value_transfer37.ets | 10 +- ...lti_level_inheritance_value_transfer38.ets | 8 +- ...lti_level_inheritance_value_transfer39.ets | 8 +- ...ti_level_inheritance_value_transfer_40.ets | 6 +- ...ti_level_inheritance_value_transfer_41.ets | 8 +- ...ti_level_inheritance_value_transfer_42.ets | 6 +- ...ti_level_inheritance_value_transfer_43.ets | 6 +- ...ti_level_inheritance_value_transfer_44.ets | 6 +- ...ti_level_inheritance_value_transfer_45.ets | 6 +- ...ti_level_inheritance_value_transfer_46.ets | 6 +- ...ti_level_inheritance_value_transfer_47.ets | 6 +- ...ti_level_inheritance_value_transfer_48.ets | 6 +- ...ti_level_inheritance_value_transfer_49.ets | 6 +- ...ti_level_inheritance_value_transfer_50.ets | 2 +- ...ti_level_inheritance_value_transfer_51.ets | 6 +- ...ti_level_inheritance_value_transfer_52.ets | 6 +- ...ti_level_inheritance_value_transfer_53.ets | 6 +- ...ti_level_inheritance_value_transfer_54.ets | 2 +- .../object_as_superclass.ets | 5 +- .../superclass_with_same_parameters.ets | 5 +- .../valid_type_reference.ets | 0 .../valid_type_reference.params.yaml | 0 .../wildcard_type_argument.ets | 28 + .../wildcard_type_argument.params.yaml | 0 .../wildcard_type_argument_negative.ets | 28 + ...ildcard_type_argument_negative.params.yaml | 0 .../abstract_method_inheritance.ets | 6 +- ...thod_inheritance_by_non_abstract_class.ets | 6 +- .../abstract_method_multiple_inheritance.ets | 6 +- .../abstract_method_multiple_override.ets | 10 +- .../abstract_method_override.ets | 8 +- ...abstract_method_override_by_superclass.ets | 10 +- ...ract_method_override_by_superinterface.ets | 10 +- .../default_method.ets | 6 +- .../direct_interface_Implementation_twice.ets | 24 + ...ame_interface_with_diferent_parameters.ets | 8 +- ...e_interface_with_diferent_parameters_1.ets | 4 +- ...e_interface_with_diferent_parameters_2.ets | 9 +- ...direct_interfaces_Implementation_twice.ets | 10 +- .../invalid_type_reference.ets | 24 + .../invalid_type_reference_1.ets | 25 + .../invalid_type_reference_2.ets | 25 + .../one_method_for_two_interfaces.ets | 3 +- .../override_default_method.ets | 20 +- .../same_field_and_method_names.ets | 28 + .../superinterface_with_same_parameters.ets | 11 +- .../superinterfaces_of_class_0.ets | 11 +- .../superinterfaces_of_class_1.ets | 10 +- .../superinterfaces_of_class_2.ets | 4 +- ...interfaces_from_same_generic_interface.ets | 16 +- .../valid_type_reference.ets | 25 + .../wildcard_type_argument.ets | 28 + .../wildcard_type_argument.params.yaml | 0 .../wildcard_type_argument_negative.ets | 26 + ...ildcard_type_argument_negative.params.yaml | 0 .../getter_setter_implementation.ets | 3 +- .../property_implementation.ets | 0 ...roperty_implementation_readonly_getter.ets | 6 +- ...roperty_implementation_readonly_setter.ets | 4 +- ...perty_implementation_readonly_setter_n.ets | 4 +- .../blank_readonly_field_in_inner_class.ets | 4 +- ...lass_declaration_in_static_initializer.ets | 5 +- ...ner_class_declaration_in_static_method.ets | 5 +- .../use_instance_variables_in_inner_class.ets | 4 +- .../class_body_members.ets | 0 .../class_body_members.params.yaml | 0 .../negative_class_body_members.ets | 0 .../negative_class_body_members.params.yaml | 18 + .../negative_dup_class_body_members.ets | 0 ...egative_dup_class_body_members.params.yaml | 0 .../class_over24.ets | 201 - .../class_over25.ets | 37 - .../class_over26.ets | 37 - .../class_over27.ets | 38 - .../extend_object_class_with_interface.ets | 27 - .../extends_non_final_object_class.ets | 29 - .../wildcard_type_argument.ets | 30 - .../wildcard_type_argument_negative.ets | 30 - .../class_overrides_interface_methods.ets | 37 - .../class_overrides_interface_methods_2.ets | 36 - .../class_overrides_interface_methods_3.ets | 36 - .../class_overrides_interface_methods_4.ets | 36 - .../class_overrides_interface_methods_5.ets | 36 - ...class_overrides_interface_methods_call.ets | 41 - ...ass_overrides_interface_methods_call_2.ets | 41 - .../class_overrides_interface_methods_n.ets | 37 - .../class_overrides_interface_methods_n2.ets | 37 - .../class_overrides_interface_methods_n3.ets | 37 - .../nothing_to_override.ets | 27 - .../one_method_for_two_interfaces_2.ets | 35 - .../refer_to_same_impl_at_class.ets | 37 - .../refer_to_same_impl_at_class_2.ets | 37 - .../refer_to_same_impl_at_class_3.ets | 37 - .../refer_to_same_impl_at_class_n.ets | 32 - .../refer_to_same_impl_at_class_n2.ets | 32 - .../refer_to_same_impl_at_class_n3.ets | 32 - .../refer_to_same_impl_at_class_n4.ets | 32 - .../same_implementation.ets | 31 - .../interface_getter.ets | 27 - .../interface_getter.params.yaml | 83 - .../interface_getter_and_setter.ets | 27 - .../interface_getter_and_setter.params.yaml | 90 - .../interface_readonly_field.ets | 27 - .../interface_readonly_field.params.yaml | 83 - .../interface_setter.ets | 27 - .../interface_setter.params.yaml | 83 - .../interface_writable_field.ets | 27 - .../interface_writable_field.params.yaml | 83 - .../example.ets | 31 - .../example_2.ets | 35 - .../example_neg.ets | 32 - .../example_neg.expected.err | 19 - .../override_optional_property.ets | 33 - .../override_optional_property.params.yaml | 74 - ...de_optional_property_with_required_one.ets | 28 - ..._optional_property_with_required_one_2.ets | 29 - ...required_property_with_an_optional_one.ets | 28 - .../abstract_method_inheritance_2.ets | 32 - .../abstract_method_inheritance_3.ets | 36 - .../abstract_method_inheritance_4.ets | 37 - .../direct_interface_Implementation_twice.ets | 25 - ...irect_interface_Implementation_twice_2.ets | 25 - ...e_interface_with_diferent_parameters_3.ets | 29 - .../modules/interfaces.ets | 30 - .../same_field_and_method_names.ets | 34 - .../same_field_and_method_names.params.yaml | 39 - .../type_reference.ets | 27 - .../type_reference_module.ets | 28 - .../type_reference_module_neg.ets | 26 - .../type_reference_neg.ets | 24 - .../type_reference_neg_1.ets | 26 - .../type_reference_neg_2.ets | 24 - .../wildcard_type_argument.ets | 30 - .../wildcard_type_argument_negative.ets | 28 - .../acc/dir_priv_1/file_A.ets | 0 .../acc/dir_priv_2/file_A.ets | 0 .../acc/dir_priv_2/file_B.ets | 0 .../acc/dir_prot_1/file_A.ets | 0 .../acc/dir_prot_2/file_A.ets | 0 .../acc/dir_prot_2/file_B.ets | 0 .../acc/dir_pub_1/file_A.ets | 0 .../acc/dir_pub_2/file_A.ets | 0 .../acc/dir_pub_2/file_B.ets | 0 .../acc/pkg_priv_1/file_A.ets | 0 .../acc/pkg_priv_2/file_A.ets | 0 .../acc/pkg_priv_2/file_B.ets | 0 .../acc/pkg_prot_1/file_A.ets | 0 .../acc/pkg_prot_2/file_A.ets | 0 .../acc/pkg_prot_2/file_B.ets | 0 .../acc/pkg_pub_1/file_A.ets | 0 .../acc/pkg_pub_2/file_A.ets | 0 .../acc/pkg_pub_2/file_B.ets | 0 .../acc/pkgmod.ets | 0 .../03.class_members/acc/pkgmod.params.yaml | 74 + .../acc/sepmod.ets | 0 .../03.class_members/acc/sepmod.params.yaml | 74 + .../class_members_with_same_name.ets | 4 +- .../class_members_with_same_name.params.yaml | 0 .../constructor/dir_priv_1/file_A.ets | 0 .../constructor/dir_priv_2/file_A.ets | 0 .../constructor/dir_priv_2/file_B.ets | 0 .../constructor/dir_prot_1/file_A.ets | 0 .../constructor/dir_prot_2/file_A.ets | 0 .../constructor/dir_prot_2/file_B.ets | 0 .../constructor/dir_pub_1/file_A.ets | 0 .../constructor/dir_pub_2/file_A.ets | 0 .../constructor/dir_pub_2/file_B.ets | 0 .../constructor/pkg_priv_1/file_A.ets | 0 .../constructor/pkg_priv_2/file_A.ets | 0 .../constructor/pkg_priv_2/file_B.ets | 0 .../constructor/pkg_prot_1/file_A.ets | 0 .../constructor/pkg_prot_2/file_A.ets | 0 .../constructor/pkg_prot_2/file_B.ets | 0 .../constructor/pkg_pub_1/file_A.ets | 0 .../constructor/pkg_pub_2/file_A.ets | 0 .../constructor/pkg_pub_2/file_B.ets | 0 .../constructor/pkgmod.ets | 0 .../constructor/pkgmod.params.yaml | 62 + .../constructor/sepmod.ets | 0 .../constructor/sepmod.params.yaml | 62 + .../fld/dir_priv_1/file_A.ets | 0 .../fld/dir_priv_2/file_A.ets | 0 .../fld/dir_priv_2/file_B.ets | 0 .../fld/dir_prot_1/file_A.ets | 0 .../fld/dir_prot_2/file_A.ets | 0 .../fld/dir_prot_2/file_B.ets | 0 .../fld/dir_pub_1/file_A.ets | 0 .../fld/dir_pub_2/file_A.ets | 0 .../fld/dir_pub_2/file_B.ets | 0 .../fld/pkg_priv_1/file_A.ets | 0 .../fld/pkg_priv_2/file_A.ets | 0 .../fld/pkg_priv_2/file_B.ets | 0 .../fld/pkg_prot_1/file_A.ets | 0 .../fld/pkg_prot_2/file_A.ets | 0 .../fld/pkg_prot_2/file_B.ets | 0 .../fld/pkg_pub_1/file_A.ets | 0 .../fld/pkg_pub_2/file_A.ets | 0 .../fld/pkg_pub_2/file_B.ets | 0 .../fld/pkgmod.ets | 0 .../03.class_members/fld/pkgmod.params.yaml | 62 + .../fld/sepmod.ets | 0 .../03.class_members/fld/sepmod.params.yaml | 62 + .../inherited_from_superclass.ets | 2 +- .../inherited_from_superclass.params.yaml | 0 .../inherited_from_superinterface.ets | 0 .../inherited_from_superinterface.params.yaml | 4 +- .../member_declared_in_body.ets | 0 .../member_declared_in_body.params.yaml | 4 +- .../members_that_are_not_inherited.ets | 2 +- .../members_that_are_not_inherited_1.ets | 0 .../members_that_are_not_inherited_2.ets | 8 +- .../met/dir_priv_1/file_A.ets | 0 .../met/dir_priv_2/file_A.ets | 0 .../met/dir_priv_2/file_B.ets | 0 .../met/dir_prot_1/file_A.ets | 0 .../met/dir_prot_2/file_A.ets | 0 .../met/dir_prot_2/file_B.ets | 0 .../met/dir_pub_1/file_A.ets | 0 .../met/dir_pub_2/file_A.ets | 0 .../met/dir_pub_2/file_B.ets | 0 .../met/pkg_priv_1/file_A.ets | 0 .../met/pkg_priv_2/file_A.ets | 0 .../met/pkg_priv_2/file_B.ets | 0 .../met/pkg_prot_1/file_A.ets | 0 .../met/pkg_prot_2/file_A.ets | 0 .../met/pkg_prot_2/file_B.ets | 0 .../met/pkg_pub_1/file_A.ets | 0 .../met/pkg_pub_2/file_A.ets | 0 .../met/pkg_pub_2/file_B.ets | 0 .../met/pkgmod.ets | 0 .../03.class_members/met/pkgmod.params.yaml | 62 + .../met/sepmod.ets | 0 .../03.class_members/met/sepmod.params.yaml | 62 + .../non-instance-members.ets | 0 .../private_member_from_superclass.ets | 2 +- ...private_member_from_superclass.params.yaml | 0 .../static_class_members_with_same_name.ets | 8 +- .../private_constructor_access_in_class.ets | 4 +- .../private_constructor_access_out_class.ets | 0 .../private_interface_access_in_class.ets | 40 + .../private_interface_access_out_class.ets | 33 + .../private_member_access_in_class.ets | 20 +- ...private_member_access_in_class.params.yaml | 21 + .../private_member_access_out_class.ets | 4 +- ...rivate_member_access_out_class.params.yaml | 21 + .../protected_constructor_access_in_class.ets | 4 +- ...ed_constructor_access_in_derived_class.ets | 4 +- ...protected_constructor_access_out_class.ets | 4 +- .../protected_interface_access_in_class.ets | 33 + ...cted_interface_access_in_derived_class.ets | 36 + .../protected_interface_access_out_class.ets | 27 + .../protected_member_access_in_class.ets | 41 + ...otected_member_access_in_class.params.yaml | 19 + ...otected_member_access_in_derived_class.ets | 42 + ...member_access_in_derived_class.params.yaml | 19 + .../protected_member_access_out_class.ets | 17 +- ...tected_member_access_out_class.params.yaml | 19 + .../public_class_declaration.ets | 3 + .../public_constructor_access_in_class.ets | 4 +- .../public_constructor_access_out_class.ets | 0 .../public_interface_access_in_class.ets | 40 + .../public_interface_access_out_class.ets | 33 + .../public_member_access_in_class.ets | 19 +- .../public_member_access_in_class.params.yaml | 19 + .../public_member_access_out_class.ets | 15 +- ...public_member_access_out_class.params.yaml | 19 + .../access_modifiers.ets | 8 +- .../access_modifiers.params.yaml | 7 +- .../default_access_modifiers.ets | 3 + .../default_access_modifiers.params.yaml | 5 +- .../04.class_members/acc/pkgmod.params.yaml | 74 - .../04.class_members/acc/sepmod.params.yaml | 74 - ...zer_declaration_try_neg_1.ets.expected.err | 18 - ...zer_declaration_try_neg_2.ets.expected.err | 19 - ...zer_declaration_try_neg_1.ets.expected.err | 18 - ...zer_declaration_try_neg_2.ets.expected.err | 19 - .../class_initializer_order.params.yaml | 39 - .../constructor/pkgmod.params.yaml | 62 - .../constructor/sepmod.params.yaml | 62 - .../04.class_members/fld/pkgmod.params.yaml | 62 - .../04.class_members/fld/sepmod.params.yaml | 62 - .../04.class_members/met/pkgmod.params.yaml | 62 - .../04.class_members/met/sepmod.params.yaml | 62 - .../negative_class_body_members.params.yaml | 39 - ...te_constructor_access_in_derived_class.ets | 37 - ...rivate_member_access_in_abstract_class.ets | 30 - ...ember_access_in_abstract_class.params.yaml | 133 - ...private_member_access_in_class.params.yaml | 125 - ...ivate_member_access_out_abstract_class.ets | 27 - ...mber_access_out_abstract_class.params.yaml | 274 - ...rivate_member_access_out_class.params.yaml | 23 - .../protected_member_access_in_class.ets | 31 - ...otected_member_access_in_class.params.yaml | 125 - ...otected_member_access_in_derived_class.ets | 31 - ...member_access_in_derived_class.params.yaml | 141 - ...tected_member_access_out_class.params.yaml | 198 - .../public_member_access_in_class.params.yaml | 96 - ...public_member_access_out_class.params.yaml | 97 - .../static_field_declaration1.ets | 8 +- .../static_field_declaration2.ets | 8 +- .../static_field_declaration3.ets | 12 +- .../static_field_declaration4.ets | 12 +- .../static_field_declaration_n1.ets | 2 +- .../static_field_declaration_n3.ets | 4 +- .../direct_readonly_field_initilization.ets | 6 +- .../readonly_field_declaration.ets | 0 ...eld_declaration_without_initialization.ets | 4 +- .../readonly_field_double_initialization.ets | 4 +- ...nly_field_initilization_in_constructor.ets | 6 +- .../readonly_field_modification.ets | 4 +- .../readonly_static_field_declaration.ets | 0 .../field_initialization_with_super.ets | 8 +- .../field_initialization_with_this.ets | 6 +- .../non_static_field_initialization.ets | 6 +- ..._static_field_initialization_reference.ets | 4 +- ...ic_field_self_initialization_reference.ets | 4 +- .../right_initialization_order.ets | 2 +- .../static_field_initialization_reference.ets | 4 +- ...static_field_initialization_with_super.ets | 4 +- .../static_field_initialization_with_this.ets | 4 +- ...ic_field_self_initialization_reference.ets | 4 +- .../wrong_initialization_order.ets | 0 .../overriding_fields.ets | 39 + .../overriding_fields.params.yaml | 114 + .../04.overriding_fields}/sample.ets | 4 +- .../access_to_hiden_field_by_cast.ets | 8 +- .../access_to_hiden_field_by_expression.ets | 10 +- .../access_to_static_hiden_field.ets | 8 +- .../field_declaration.ets | 0 .../field_declaration_with_busy_name.ets | 8 +- ...eld_declaration_with_busy_name.params.yaml | 0 .../fields_inheritance_from_superclass.ets | 10 +- ...nce_from_superclass_and_superinterface.ets | 8 +- ...fields_inheritance_from_superinterface.ets | 10 +- .../inheritance_fields_with_same_name_neg.ets | 6 +- ...eld_inheritance_from_superclass_member.ets | 0 ...e_to_inheritance_fields_with_same_name.ets | 6 +- ...erited_field_paths_from_superinterface.ets | 7 +- .../superclass_field_declaration.ets | 8 +- .../superinterface_field_declaration.ets | 6 +- .../two_same_field_modifiers.ets | 0 .../two_same_field_modifiers.params.yaml | 0 .../03.optional_fields/optional_fields.ets | 30 - .../optional_fields.params.yaml | 39 - .../overriding_fields.ets | 65 - .../overriding_fields.params.yaml | 1374 ----- .../non_static_method_call.ets | 6 +- .../non_static_method_declaration.ets | 0 .../static_method_body_with_super.ets | 0 .../static_method_body_with_this.ets | 0 .../01.static_methods/static_method_call.ets | 2 +- .../static_method_declaration.ets | 0 ...tatic_method_declaration_with_keywords.ets | 4 +- ...thod_declaration_with_keywords.params.yaml | 0 ...static_method_declaration_without_body.ets | 0 .../static_method_in_abstract_class.ets | 2 +- .../static_method_in_abstract_class_1.ets | 2 +- ...static_method_with_body_type_parameter.ets | 4 +- .../instance_method_call.ets | 2 +- .../abstract_method_declaration.ets | 4 +- ...tract_method_declaration_with_keywords.ets | 0 ...thod_declaration_with_keywords.params.yaml | 0 .../abstract_method_in_non_abstract_class.ets | 0 .../abstract_method_in_simple_class.ets | 4 +- .../abstract_method_override_by_abstract.ets | 0 ...abstract_method_without_implementation.ets | 0 ...instance_method_overridden_by_abstract.ets | 0 .../private_abstract_method_declaration.ets | 0 .../constructor_overloading.ets | 51 + .../different_access_modifiers.ets | 27 + .../different_access_modifiers.params.yaml | 71 + .../different_return_types.ets | 41 + .../hidden_method_access_by_cast.ets | 36 + .../hiding_instance_static_method.ets | 32 + .../hiding_method_from_superclass.ets | 35 + ..._multiple_methods_with_same_signatures.ets | 36 + ...ritance_multiple_methods_with_override.ets | 0 ..._multiple_methods_with_same_signatures.ets | 4 +- .../method_overload_0.ets | 36 + .../method_overload_1.ets | 38 + .../method_overload_2.ets | 40 + .../method_overload_relatioship_0.ets | 39 + .../method_signature.ets | 27 + .../override_method_declaration.ets | 12 +- ...rride_method_declaration_with_keywords.ets | 18 +- ...thod_declaration_with_keywords.params.yaml | 18 + ...abstract_method_overridden_by_instance.ets | 4 +- .../access_to_overridden_method.ets | 8 +- .../different_return_types.ets | 41 + .../overrided_method_access_by_cast.ets | 2 +- ...riding_internal_method_from_superclass.sts | 7 +- .../overriding_method_from_superclass.ets | 7 +- ...rriding_method_from_superclass.params.yaml | 0 .../overriding_method_from_superinterface.ets | 7 +- .../overriding_private_method.ets | 32 + .../overriding_static_method.ets | 0 .../declaring_methods.ets | 30 + .../different_return_types_in_hiding.ets | 4 +- .../different_return_types_in_overriding.ets | 4 +- ...ethods_with_different_access_modifiers.ets | 48 + ...ith_different_access_modifiers.params.yaml | 0 ...hods_with_different_access_modifiers_n.ets | 37 + ...h_different_access_modifiers_n.params.yaml | 0 ...ethods_with_different_access_modifiers.ets | 37 + ...ith_different_access_modifiers.params.yaml | 0 ...abstract_method_declaration_with_block.ets | 0 ...ract_method_declaration_with_semicolon.ets | 0 .../method_declaration_with_block.ets | 4 +- .../method_declaration_with_return_type.ets | 4 +- .../method_declaration_with_semicolon.ets | 5 +- .../method_without_return_statement.ets | 4 +- .../native_method_declaration_with_block.ets | 0 ...tive_method_declaration_with_semicolon.ets | 0 .../met_ret_this.ets | 0 .../met_ret_this.params.yaml | 96 +- .../met_ret_this_n.ets | 0 .../met_ret_this_n.params.yaml | 0 .../methods_returning_this_01.ets | 2 +- .../methods_returning_this_02.ets | 4 +- .../methods_returning_this_03.ets | 6 +- .../methods_returning_this_04.ets | 0 .../methods_returning_this_05.ets | 0 .../methods_returning_this_06.ets | 0 .../methods_returning_this_07.ets | 4 +- .../methods_returning_this_08.ets | 2 +- .../methods_returning_this_09.ets | 0 .../methods_returning_this_10.ets | 2 +- .../methods_returning_this_11.ets | 2 +- .../methods_returning_this_abstract_class.ets | 0 ...methods_returning_this_abstract_method.ets | 0 .../methods_returning_this_declare_class.ets | 0 .../methods_returning_this_function.ets | 0 .../methods_returning_this_interface_01.ets | 2 +- .../methods_returning_this_interface_02.ets | 0 .../methods_returning_this_interface_03.ets | 2 +- .../methods_returning_this_interface_04.ets | 0 .../methods_returning_this_override_01.ets | 6 +- .../methods_returning_this_override_02.ets | 0 .../methods_returning_this_override_03.ets | 2 +- .../methods_returning_this_override_04.ets | 0 ...od_with_override_equivalent_signatures.ets | 4 +- .../method_call.ets | 2 +- .../method_declaration_with_existed_name.ets | 4 +- ...method_declaration_with_existed_name_1.ets | 0 .../method_super_call_0.ets | 2 +- .../method_super_call_1.ets | 2 +- .../throws_clause_1.ets | 0 .../throws_clause_2.ets | 0 .../getter_exception.ets | 4 +- .../getter_final_modifier.ets | 0 .../getter_inheritance.ets | 2 +- .../getter_native_modifier.ets | 0 .../getter_override_modifier.ets | 4 +- .../getter_private_modifier_in_class.ets | 2 +- .../getter_private_modifier_out_class.ets | 2 +- .../getter_setter.ets | 2 +- .../getter_static_modifier.ets | 2 +- .../getter_with_reference_type.ets | 2 +- .../getter_with_value_type.ets | 2 +- .../setter_exception.ets | 4 +- .../setter_final_modifier.ets | 0 .../setter_inheritance.ets | 0 .../setter_native_modifier.ets | 0 .../setter_override_modifier.ets | 4 +- .../setter_private_modifier_in_class.ets | 2 +- .../setter_private_modifier_out_class.ets | 2 +- .../setter_static_modifier.ets | 2 +- .../setter_with_reference_type.ets | 2 +- .../setter_with_value_type.ets | 2 +- ...thod_declaration_with_keywords.params.yaml | 72 - .../override_method_nothing_1.ets | 39 - .../override_method_nothing_2.ets | 42 - .../override_method_with_default_params.ets | 45 - ...ide_method_with_default_params.params.yaml | 115 - .../override_method_without_keyword.ets | 43 - .../different_return_types.ets | 44 - ...instance_method_overridden_by_abstract.ets | 35 - .../overriding_private_method.ets | 35 - .../declaring_methods.ets | 35 - ...ethods_with_different_access_modifiers.ets | 54 - ...hods_with_different_access_modifiers_n.ets | 43 - ...ethods_with_different_access_modifiers.ets | 43 - .../abstract_class_empty_initializer.ets | 0 ...abstract_class_initializer_declaration.ets | 2 +- ...ract_class_initializer_declaration_for.ets | 4 +- ...t_class_initializer_declaration_switch.ets | 4 +- ...ract_class_initializer_declaration_try.ets | 2 +- ...ct_class_initializer_declaration_try_1.ets | 2 +- ...lass_initializer_declaration_try_neg_0.ets | 0 ...lass_initializer_declaration_try_neg_1.ets | 0 ...lass_initializer_declaration_try_neg_2.ets | 0 ...ct_class_initializer_declaration_while.ets | 4 +- ...abstract_class_initializer_with_return.ets | 3 +- .../abstract_class_initializer_with_super.ets | 0 .../abstract_class_initializer_with_this.ets | 0 ...ract_class_multiple_initializer_blocks.ets | 0 ...ract_class_initializer_declaration_try.ets | 2 +- .../class_empty_initializer.ets | 0 .../class_initializer_before_decl.ets | 2 +- .../class_initializer_declaration.ets | 2 +- .../class_initializer_declaration_1.ets | 2 +- .../class_initializer_declaration_for.ets | 4 +- .../class_initializer_declaration_neg.ets | 0 .../class_initializer_declaration_neg_1.ets | 0 .../class_initializer_declaration_switch.ets | 4 +- .../class_initializer_declaration_try.ets | 2 +- .../class_initializer_declaration_try_1.ets | 2 +- ...lass_initializer_declaration_try_neg_0.ets | 0 ...lass_initializer_declaration_try_neg_1.ets | 0 ...lass_initializer_declaration_try_neg_2.ets | 0 .../class_initializer_declaration_while.ets | 4 +- ..._initializer_ensure_fields_initialized.ets | 4 +- ...nitializer_ensure_fields_initialized_1.ets | 4 +- .../class_initializer_incorrect_order.ets | 4 +- .../class_initializer_order.ets | 3 +- .../class_initializer_order.params.yaml | 39 + .../class_initializer_with_return.ets | 0 .../class_initializer_with_super.ets | 0 .../class_initializer_with_super_1.ets | 0 .../class_initializer_with_this.ets | 0 .../class_initializer_with_type_variable.ets | 0 ...class_initializer_with_type_variable_1.ets | 0 .../class_multiple_initializer_blocks.ets | 0 .../01.formal_parameters/cons_parameters.ets | 29 - .../cons_parameters.params.yaml | 677 --- .../cons_parameters_gen.ets | 29 - .../cons_parameters_gen.params.yaml | 600 --- ...onstructor_declaration_with_parameters.ets | 32 + ...itly_superclass_constructor_invocation.ets | 8 +- .../circular_reference1.ets | 40 - .../circular_reference2.ets | 32 - .../constructor_with_return1.ets | 48 - .../constructor_with_return2.ets | 36 - .../constructor_with_return3.ets | 41 - .../constructor_with_return_expression.ets | 32 + .../constructor_with_return_expression2.ets | 38 + .../constructor_with_return_expression3.ets | 43 + ...onstructor_with_return_expression_neg1.ets | 30 - ...onstructor_with_return_expression_neg2.ets | 30 - ...onstructor_with_return_expression_neg3.ets | 32 - .../direct_invocation_itself.ets | 4 +- .../indirect_invocation_itself.ets | 18 +- ...tion_another_constructor_of_same_class.ets | 24 +- ...tion_another_constructor_of_superclass.ets | 24 +- ...ion_another_constructor_of_superclass1.ets | 47 - ...ion_another_constructor_of_superclass2.ets | 58 - .../02.constructor_body/primary01.ets | 59 - .../02.constructor_body/primary02.ets | 62 - .../02.constructor_body/primary03.ets | 72 - .../02.constructor_body/primary04.ets | 51 - .../02.constructor_body/secondary01.ets | 63 - .../02.constructor_body/secondary02.ets | 65 - .../02.constructor_body/secondary03.ets | 67 - .../02.constructor_body/secondary04.ets | 62 - .../02.constructor_body/spec_example1.ets | 63 - .../02.constructor_body/spec_example2.ets | 58 - .../02.constructor_body/super_multicall.ets | 28 +- .../02.constructor_body/super_this_call.ets | 28 +- .../02.constructor_body/this_argument.ets | 22 +- .../02.constructor_body/this_argument_1.ets | 44 - .../02.constructor_body/this_argument_neg.ets | 33 + .../02.constructor_body/this_multicall.ets | 28 +- .../02.constructor_body/this_super_call.ets | 28 +- .../call_to_inaccessible_super.ets | 10 +- .../call_to_this_recursively.ets | 4 +- .../call_to_this_super_must_be_first_stmt.ets | 44 +- ..._this_super_must_be_first_stmt.params.yaml | 76 +- .../explicit_cons_call.ets | 29 - .../explicit_cons_call.params.yaml | 579 -- ...r_constructor_with_refer_to_instance_0.ets | 33 + ...r_constructor_with_refer_to_instance_1.ets | 36 + ...r_constructor_with_refer_to_instance_2.ets | 35 + ...r_constructor_with_refer_to_instance_3.ets | 35 + .../super_constructor.ets | 6 +- .../this_constructor.ets | 22 +- .../class_without_constructor.ets | 33 - .../dc_declared_implicitly.ets | 31 - .../dc_declared_implicitly.params.yaml | 19 - .../dc_superclass_with_optional_parameter.ets | 39 - ...rclass_with_optional_parameter.params.yaml | 27 - .../dc_superclass_with_parameter_n.ets | 39 - ...dc_superclass_with_parameter_n.params.yaml | 24 - .../dc_with_access_modifier.ets | 38 - .../dc_with_access_modifier.params.yaml | 21 - .../default_constructor.ets | 10 +- .../default_constructor_in_subclass.ets | 40 - .../default_constructor_of_superclass.ets | 12 +- .../constructor_declaration.ets | 33 + .../constructor_declaration.params.yaml | 19 + .../constructor_declaration_abstract1.ets | 23 - .../constructor_declaration_abstract2.ets | 23 - ...tor_declaration_anonymous_overloading1.ets | 35 - ...tor_declaration_anonymous_overloading2.ets | 37 - .../constructor_declaration_bodyless1.ets | 25 - .../constructor_declaration_bodyless2.ets | 25 - .../constructor_declaration_internal1.ets | 23 - .../constructor_declaration_internal2.ets | 23 - .../constructor_declaration_native1.ets | 25 - .../constructor_declaration_native2.ets | 25 - .../constructor_declaration_overload1.ets | 76 - .../constructor_declaration_overload1n1.ets | 61 - .../constructor_declaration_overload1n2.ets | 61 - .../constructor_declaration_overload2.ets | 102 - .../constructor_declaration_overload2n1.ets | 70 - .../constructor_declaration_overload2n2.ets | 70 - .../constructor_declaration_private1.ets | 36 - .../constructor_declaration_private2.ets | 33 - .../constructor_declaration_private3.ets | 36 - .../constructor_declaration_private4.ets | 33 - .../constructor_declaration_protected1.ets | 39 - .../constructor_declaration_protected2.ets | 33 - .../constructor_declaration_protected3.ets | 39 - .../constructor_declaration_protected4.ets | 33 - .../constructor_declaration_singleton1.ets | 46 - .../constructor_declaration_singleton2.ets | 46 - .../constructor_declaration_singleton3.ets | 38 - .../constructor_declaration_singleton4.ets | 46 - .../constructor_declaration_singleton5.ets | 46 - .../constructor_declaration_static1.ets | 23 - .../constructor_declaration_static2.ets | 23 - ...ructor_declaration_with_same_signature.ets | 32 + ...ctor_declaration_with_same_signature_1.ets | 29 + ...ructor_declaration_with_type_arguments.ets | 28 + ...ctor_declaration_with_type_parameters1.ets | 27 - ...ctor_declaration_with_type_parameters2.ets | 29 - ...ctor_declaration_with_type_parameters3.ets | 37 - ...ctor_declaration_with_type_parameters4.ets | 27 - ...ctor_declaration_with_type_parameters5.ets | 29 - ...ctor_declaration_with_type_parameters6.ets | 37 - .../static_constructor_declaration.ets | 24 + .../inheritance_abstract_methods.ets | 13 +- ...tance_abstract_methods_that_not_member.ets | 9 +- .../inheritance_abstract_methods_without.ets | 9 +- ...ance_method_from_not_direct_superclass.ets | 8 +- .../inheritance_method_with_subsignature.ets | 8 +- .../inheritance_method_wrong_modifier.ets | 8 +- .../10.inheritance/inheritance_methods.ets | 8 +- ...ce_private_methods_from_superinterface.ets | 2 +- .../inheritance_static_methods.ets | 8 +- ...nce_static_methods_from_superinterface.ets | 2 +- .../interface_members.ets | 0 .../interface_members.params.yaml | 0 .../interface_members_negative.ets | 0 .../interface_members_negative.params.yaml | 0 .../03.interface_body/issue24865.ets | 23 + .../03.interface_members/issue24685.ets | 23 - .../field_initializer_with_other_field.ets | 4 +- .../field_initializer_with_this.ets | 4 +- .../field_without_initializer.ets | 0 .../hidden_members.ets | 0 .../hidden_members.params.yaml | 0 .../hidden_members_negative.ets | 0 .../hidden_members_negative.params.yaml | 0 .../interface_field_decl.ets | 4 +- .../interface_field_decl_negative.ets | 8 +- .../member_inheritance.ets | 2 +- .../member_inheritance_private_member.ets | 2 +- .../member_type_access.ets | 0 .../member_type_access.params.yaml | 2 +- .../member_type_declaration.ets | 0 .../member_type_declaration.params.yaml | 0 .../members_with_same_names.ets | 4 +- .../methods_overriding.ets | 2 +- .../multiple_member_inheritance.ets | 0 .../object_method_declaring.ets | 4 +- .../object_method_override_0.ets | 5 +- .../object_method_override_1.ets | 0 .../object_method_override_2.ets | 0 .../private_methods_inheritance.ets | 0 .../static_methods_inheritance.ets | 0 .../required_interface_properties.ets | 30 - .../required_interface_properties.params.yaml | 36 - ...ed_interface_properties_class_accessor.ets | 37 - ...face_properties_class_accessor.params.yaml | 36 - ...nterface_properties_interface_accessor.ets | 36 - ..._properties_interface_accessor.params.yaml | 36 - .../required_interface_properties_n.ets | 37 - ...equired_interface_properties_n.params.yaml | 26 - .../optional_interface_properties.ets | 30 - .../optional_interface_properties.params.yaml | 39 - .../example.ets | 48 - .../example_neg.ets | 43 - .../implementation_body.ets | 26 - .../implementation_body.params.yaml | 98 - .../overriding_private_method.ets | 31 - .../overriding_requirements/same_name.ets | 28 - .../overriding_requirements/same_name2.ets | 31 - .../overriding_requirements/same_name3.ets | 31 - .../overriding_requirements/same_name4.ets | 39 - .../external_interface_with_property_0.ets | 4 +- .../external_interface_with_property_1.ets | 0 .../getter_setter_form.ets | 2 +- .../interface_property_declaration.ets | 0 .../readonly_simple_form_0.ets | 2 +- .../readonly_simple_form_1.ets | 0 .../simple_form.ets | 2 +- ...defined_interface_property_declaration.ets | 8 +- .../verify_interface_self_inheritance_01.ets | 23 - .../verify_interface_self_inheritance_02.ets | 27 - ...nce_method_with_declared_signature_any.ets | 45 - ...rivate_method_with_declared_signature2.ets | 36 - .../complex_inheritance_25_n.ets | 29 - .../complex_inheritance_29.ets | 76 - .../inherit_readonly_field.ets | 72 - .../inherit_readonly_field.params.yaml | 28 - .../inherit_method.ets | 85 - .../inherit_method.params.yaml | 28 - .../type_system/type_system_23.ets | 66 - .../type_system/type_system_23_n.ets | 52 - .../abstract_method_10.ets | 44 - .../abstract_method_20.ets | 47 - .../child_specifies_parent_use_case_17.ets | 43 - ...interface_constant_conflicts_case_01_1.ets | 29 - .../childModuleConflict.ets | 27 - .../interface_inheritance_const/const_06.ets | 29 - .../inheritance_multiple_abstract_methods.ets | 6 +- .../inheritance_multiple_default_methods.ets | 5 +- .../override_multiple_default_methods.ets | 10 +- .../overriding_private_method.ets | 40 + .../overriding_public_method.ets | 7 +- ...ing_public_method_with_wrong_signature.ets | 9 +- .../different_access_modifiers.ets | 32 + .../different_return_type.ets | 32 + .../different_signature.ets | 14 +- .../object_method_override.ets | 4 + .../same_return_type.ets | 5 +- .../same_signature.ets | 5 +- .../throws_clause_1.ets | 0 .../throws_clause_2.ets | 0 ..._constants_inheritance_verification_01.ets | 4 +- ..._constants_inheritance_verification_02.ets | 8 +- ..._constants_inheritance_verification_03.ets | 8 +- ..._constants_inheritance_verification_04.ets | 4 +- ..._constants_inheritance_verification_05.ets | 2 +- ..._constants_inheritance_verification_06.ets | 2 +- ..._constants_inheritance_verification_07.ets | 2 +- ..._constants_inheritance_verification_08.ets | 4 +- ..._constants_inheritance_verification_09.ets | 4 +- ..._constants_inheritance_verification_10.ets | 4 +- ..._constants_inheritance_verification_11.ets | 2 +- ..._constants_inheritance_verification_12.ets | 2 +- ..._constants_inheritance_verification_13.ets | 2 +- ..._constants_inheritance_verification_14.ets | 2 +- ..._constants_inheritance_verification_15.ets | 2 +- ..._constants_inheritance_verification_16.ets | 4 +- ..._constants_inheritance_verification_17.ets | 2 +- ..._constants_inheritance_verification_18.ets | 2 +- ..._constants_inheritance_verification_19.ets | 2 +- ..._constants_inheritance_verification_20.ets | 4 +- ..._constants_inheritance_verification_21.ets | 2 +- ..._constants_inheritance_verification_22.ets | 4 +- ..._constants_inheritance_verification_23.ets | 4 +- ..._constants_inheritance_verification_24.ets | 6 +- ..._constants_inheritance_verification_25.ets | 4 +- ..._constants_inheritance_verification_26.ets | 4 +- ..._constants_inheritance_verification_27.ets | 2 +- ..._constants_inheritance_verification_28.ets | 2 +- ..._constants_inheritance_verification_29.ets | 2 +- ..._constants_inheritance_verification_30.ets | 2 +- ..._constants_inheritance_verification_31.ets | 6 +- ..._constants_inheritance_verification_32.ets | 4 +- ..._constants_inheritance_verification_33.ets | 6 +- ..._constants_inheritance_verification_34.ets | 2 +- ..._constants_inheritance_verification_35.ets | 2 +- ...tation_single_inheritance_interface_01.ets | 4 +- ...tation_single_inheritance_interface_02.ets | 4 +- ...tation_single_inheritance_interface_03.ets | 6 +- ...tation_single_inheritance_interface_04.ets | 4 +- ...tation_single_inheritance_interface_05.ets | 6 +- ...tation_single_inheritance_interface_06.ets | 2 +- ...tation_single_inheritance_interface_07.ets | 2 +- ...tation_single_inheritance_interface_08.ets | 2 +- ...tation_single_inheritance_interface_09.ets | 4 +- ...tation_single_inheritance_interface_10.ets | 6 +- ...ce_default_method_conflict_handling_01.ets | 2 +- ...ce_default_method_conflict_handling_02.ets | 2 +- ...ce_default_method_conflict_handling_03.ets | 2 +- ...ce_default_method_conflict_handling_04.ets | 2 +- ...ce_default_method_conflict_handling_05.ets | 2 +- ...ce_default_method_conflict_handling_06.ets | 2 +- ...ce_default_method_conflict_handling_07.ets | 2 +- ...ce_default_method_conflict_handling_08.ets | 2 +- ...ce_default_method_conflict_handling_09.ets | 2 +- ...ce_default_method_conflict_handling_10.ets | 2 +- ...ce_default_method_conflict_handling_11.ets | 2 +- ...ce_default_method_conflict_handling_12.ets | 2 +- ...ce_default_method_conflict_handling_13.ets | 2 +- ...ce_default_method_conflict_handling_14.ets | 2 +- ...ce_default_method_conflict_handling_15.ets | 2 +- ...ce_default_method_conflict_handling_16.ets | 2 +- ...ce_default_method_conflict_handling_17.ets | 2 +- ...ce_default_method_conflict_handling_18.ets | 2 +- ...ce_default_method_conflict_handling_19.ets | 2 +- ...ce_default_method_conflict_handling_20.ets | 2 +- ...ce_default_method_conflict_handling_21.ets | 2 +- ...ce_default_method_conflict_handling_22.ets | 2 +- ...ce_default_method_conflict_handling_23.ets | 2 +- ...ce_default_method_conflict_handling_24.ets | 2 +- ...ce_default_method_conflict_handling_25.ets | 2 +- ...ce_default_method_conflict_handling_26.ets | 2 +- ...ce_default_method_conflict_handling_27.ets | 2 +- ...ce_default_method_conflict_handling_28.ets | 2 +- ...ce_default_method_conflict_handling_29.ets | 2 +- ...ce_default_method_conflict_handling_30.ets | 2 +- ...ce_default_method_conflict_handling_31.ets | 2 +- ...ce_default_method_conflict_handling_32.ets | 2 +- ...ce_default_method_conflict_handling_33.ets | 2 +- ...ce_default_method_conflict_handling_34.ets | 2 +- ...ce_default_method_conflict_handling_35.ets | 2 +- ...ce_default_method_conflict_handling_36.ets | 2 +- ...heritance_interface_abstract_method_01.ets | 2 +- ...heritance_interface_abstract_method_02.ets | 4 +- ...heritance_interface_abstract_method_03.ets | 4 +- ...heritance_interface_abstract_method_04.ets | 6 +- ...heritance_interface_abstract_method_05.ets | 14 +- ...heritance_interface_abstract_method_06.ets | 4 +- ...heritance_interface_abstract_method_07.ets | 8 +- ...heritance_interface_abstract_method_08.ets | 8 +- ...heritance_interface_abstract_method_09.ets | 12 +- ...heritance_interface_abstract_method_10.ets | 8 +- ...heritance_interface_abstract_method_11.ets | 2 +- ...heritance_interface_abstract_method_12.ets | 2 +- ...heritance_interface_abstract_method_13.ets | 2 +- ...heritance_interface_abstract_method_14.ets | 6 +- ...heritance_interface_abstract_method_15.ets | 2 +- ...heritance_interface_abstract_method_16.ets | 4 +- ...heritance_interface_abstract_method_17.ets | 4 +- ...heritance_interface_abstract_method_18.ets | 4 +- ...heritance_interface_abstract_method_19.ets | 4 +- ...heritance_interface_abstract_method_20.ets | 8 +- ...heritance_interface_abstract_method_21.ets | 8 +- ...heritance_interface_abstract_method_22.ets | 8 +- ...heritance_interface_abstract_method_23.ets | 8 +- ...ntation_multi_inheritance_interface_01.ets | 8 +- ...ntation_multi_inheritance_interface_02.ets | 10 +- ...ntation_multi_inheritance_interface_03.ets | 8 +- ...ntation_multi_inheritance_interface_04.ets | 10 +- ...ntation_multi_inheritance_interface_05.ets | 6 +- ...ntation_multi_inheritance_interface_06.ets | 9 +- ...ntation_multi_inheritance_interface_07.ets | 8 +- ...ntation_multi_inheritance_interface_08.ets | 10 +- ...ntation_multi_inheritance_interface_09.ets | 10 +- ...ntation_multi_inheritance_interface_10.ets | 9 +- ...ntation_multi_inheritance_interface_11.ets | 9 +- ...lass_usage_of_conflicting_constants_01.ets | 6 +- ...lass_usage_of_conflicting_constants_02.ets | 8 +- ...lass_usage_of_conflicting_constants_03.ets | 10 +- ...lass_usage_of_conflicting_constants_04.ets | 7 +- ...lass_usage_of_conflicting_constants_05.ets | 6 +- ...lass_usage_of_conflicting_constants_06.ets | 6 +- ...lass_usage_of_conflicting_constants_07.ets | 8 +- ...lass_usage_of_conflicting_constants_08.ets | 10 +- ...lass_usage_of_conflicting_constants_09.ets | 8 +- ...lass_usage_of_conflicting_constants_10.ets | 8 +- ...lass_usage_of_conflicting_constants_11.ets | 8 +- ...lass_usage_of_conflicting_constants_12.ets | 8 +- ...lass_usage_of_conflicting_constants_13.ets | 10 +- ...lass_usage_of_conflicting_constants_14.ets | 10 +- ...lass_usage_of_conflicting_constants_15.ets | 8 +- ...lass_usage_of_conflicting_constants_16.ets | 10 +- ...lass_usage_of_conflicting_constants_17.ets | 10 +- ...lass_usage_of_conflicting_constants_18.ets | 10 +- .../verify_inheritance_final_interface.ets | 45 + .../verify_interface_self_inheritance_01.ets | 41 + .../verify_interface_self_inheritance_02.ets | 45 + .../other_interface_01.ets | 6 +- .../other_interface_02.ets | 6 +- .../other_interface_03.ets | 4 +- .../other_interface_04.ets | 14 +- .../other_interface_05.ets | 20 +- .../other_interface_06.ets | 2 +- .../other_interface_07.ets | 4 +- .../other_interface_08.ets | 4 +- .../other_interface_09.ets | 2 +- .../other_interface_10.ets | 4 +- .../other_interface_11.ets | 6 +- .../other_interface_12.ets | 4 +- .../other_interface_13.ets | 4 +- .../other_interface_14.ets | 0 .../other_interface_15.ets | 4 +- .../other_interface_16.ets | 4 +- .../other_interface_17.ets | 0 .../other_interface_18.ets | 0 .../other_interface_19.ets | 4 +- .../other_interface_20.ets | 0 .../other_interface_21.ets | 6 +- .../other_interface_22.ets | 2 +- .../other_interface_23.ets | 2 +- .../other_interface_24.ets | 2 +- .../other_interface_25.ets | 8 +- .../other_interface_26.ets | 2 +- .../transfer_interface_01.ets | 4 +- .../transfer_interface_02.ets | 2 +- .../transfer_interface_03.ets | 4 +- .../transfer_interface_04.ets | 2 +- .../transfer_interface_05.ets | 2 +- .../transfer_interface_06.ets | 2 +- .../transfer_interface_07.ets | 2 +- .../transfer_interface_08.ets | 2 +- .../transfer_interface_09.ets | 2 +- .../transfer_interface_10.ets | 6 +- .../transfer_interface_11.ets | 4 +- .../transfer_interface_12.ets | 2 +- .../transfer_interface_13.ets | 2 +- .../transfer_interface_14.ets | 0 .../transfer_interface_15.ets | 2 +- .../transfer_interface_16.ets | 2 +- .../inheritance_abstract_method.ets | 8 +- .../inheritance_default_method.ets | 6 +- ...ritance_method_with_declared_signature.ets | 7 +- .../inheritance_private_method.ets | 2 +- ...private_method_with_declared_signature.ets | 0 .../inheritance_static_method.ets | 37 + .../inheritance_static_private_method.ets | 30 + .../override_default_method_1.ets | 8 +- .../override_default_method_10.ets | 8 +- .../override_default_method_11.ets | 8 +- .../override_default_method_12.ets | 8 +- .../override_default_method_13.ets | 8 +- .../override_default_method_14.ets | 12 +- .../override_default_method_15.ets | 12 +- .../override_default_method_16.ets | 10 +- .../override_default_method_17.ets | 14 +- .../override_default_method_18.ets | 14 +- .../override_default_method_19.ets | 14 +- .../override_default_method_2.ets | 10 +- .../override_default_method_20.ets | 8 +- .../override_default_method_21.ets | 10 +- .../override_default_method_22.ets | 45 + .../override_default_method_23.ets | 45 + .../override_default_method_24.ets | 8 +- .../override_default_method_25.ets | 12 +- .../override_default_method_26.ets | 8 +- .../override_default_method_27.ets | 12 +- .../override_default_method_28.ets | 8 +- .../override_default_method_29.ets | 12 +- .../override_default_method_3.ets | 6 +- .../override_default_method_4.ets | 10 +- .../override_default_method_5.ets | 8 +- .../override_default_method_6.ets | 10 +- .../override_default_method_7.ets | 8 +- .../override_default_method_8.ets | 10 +- .../override_default_method_9.ets | 12 +- .../inherited_abstract_method_1.ets | 10 +- .../inherited_abstract_method_10.ets | 6 +- .../inherited_abstract_method_11.ets | 10 +- .../inherited_abstract_method_12.ets | 8 +- .../inherited_abstract_method_13.ets | 8 +- .../inherited_abstract_method_14.ets | 6 +- .../inherited_abstract_method_15.ets | 37 + .../inherited_abstract_method_16.ets | 6 +- .../inherited_abstract_method_17.ets | 11 +- .../inherited_abstract_method_18.ets | 8 +- .../inherited_abstract_method_19.ets | 11 +- .../inherited_abstract_method_2.ets | 10 +- .../inherited_abstract_method_20.ets | 8 +- .../inherited_abstract_method_21.ets | 10 +- .../inherited_abstract_method_22.ets | 10 +- .../inherited_abstract_method_23.ets | 8 +- .../inherited_abstract_method_24.ets | 12 +- .../inherited_abstract_method_25.ets | 10 +- .../inherited_abstract_method_26.ets | 12 +- .../inherited_abstract_method_27.ets | 5 + .../inherited_abstract_method_28.ets | 2 +- .../inherited_abstract_method_29.ets | 6 +- .../inherited_abstract_method_3.ets | 10 +- .../inherited_abstract_method_30.ets | 10 +- .../inherited_abstract_method_31.ets | 10 +- .../inherited_abstract_method_32.ets | 10 +- .../inherited_abstract_method_33.ets | 10 +- .../inherited_abstract_method_34.ets | 10 +- .../inherited_abstract_method_35.ets | 6 +- .../inherited_abstract_method_36.ets | 10 +- .../inherited_abstract_method_37.ets | 8 +- .../inherited_abstract_method_38.ets | 8 +- .../inherited_abstract_method_39.ets | 6 +- .../inherited_abstract_method_4.ets | 12 +- .../inherited_abstract_method_40.ets | 8 +- .../inherited_abstract_method_41.ets | 8 +- .../inherited_abstract_method_42.ets | 8 +- .../inherited_abstract_method_43.ets | 8 +- .../inherited_abstract_method_44.ets | 8 +- .../inherited_abstract_method_45.ets | 6 +- .../inherited_abstract_method_46.ets | 8 +- .../inherited_abstract_method_47.ets | 4 +- .../inherited_abstract_method_48.ets | 8 +- .../inherited_abstract_method_49.ets | 8 +- .../inherited_abstract_method_5.ets | 12 +- .../inherited_abstract_method_50.ets | 8 +- .../inherited_abstract_method_51.ets | 6 +- .../inherited_abstract_method_52.ets | 6 +- .../inherited_abstract_method_53.ets | 6 +- .../inherited_abstract_method_6.ets | 10 +- .../inherited_abstract_method_7.ets | 10 +- .../inherited_abstract_method_8.ets | 10 +- .../inherited_abstract_method_9.ets | 10 +- .../complex_inheritance_0.ets | 4 +- .../complex_inheritance_1.ets | 4 +- .../complex_inheritance_10.ets | 2 +- .../complex_inheritance_11.ets | 2 +- .../complex_inheritance_12.ets | 2 +- .../complex_inheritance_13.ets | 4 +- .../complex_inheritance_14.ets | 6 +- .../complex_inheritance_15.ets | 2 +- .../complex_inheritance_16.ets | 2 +- .../complex_inheritance_17.ets | 35 + .../complex_inheritance_18.ets | 4 +- .../complex_inheritance_19.ets | 4 +- .../complex_inheritance_2.ets | 9 +- .../complex_inheritance_20.ets | 2 +- .../complex_inheritance_21.ets | 5 +- .../complex_inheritance_22.ets | 6 +- .../complex_inheritance_23.ets | 6 +- .../complex_inheritance_24.ets | 2 +- .../complex_inheritance_25.ets | 25 +- .../complex_inheritance_26.ets | 8 +- .../complex_inheritance_27.ets | 4 +- .../complex_inheritance_28.ets | 4 +- .../complex_inheritance_29.ets | 76 + .../complex_inheritance_3.ets | 8 +- .../complex_inheritance_30.ets | 16 +- .../complex_inheritance_31.ets | 12 +- .../complex_inheritance_32.ets | 54 + .../complex_inheritance_33.ets | 12 +- .../complex_inheritance_34.ets | 4 +- .../complex_inheritance_35.ets | 4 +- .../complex_inheritance_4.ets | 10 +- .../complex_inheritance_5.ets | 4 +- .../complex_inheritance_6.ets | 45 + .../complex_inheritance_7.ets | 2 +- .../complex_inheritance_8.ets | 2 +- .../complex_inheritance_9.ets | 2 +- .../multi_layer_interface_inheritance_0.ets | 49 + .../multi_layer_interface_inheritance_1.ets | 29 +- .../multi_layer_interface_inheritance_10.ets | 42 + .../multi_layer_interface_inheritance_11.ets | 42 + .../multi_layer_interface_inheritance_12.ets | 42 + .../multi_layer_interface_inheritance_13.ets | 42 + .../multi_layer_interface_inheritance_14.ets | 42 + .../multi_layer_interface_inheritance_15.ets | 42 + .../multi_layer_interface_inheritance_16.ets | 11 +- .../multi_layer_interface_inheritance_17.ets | 42 + .../multi_layer_interface_inheritance_18.ets | 42 + .../multi_layer_interface_inheritance_19.ets | 42 + .../multi_layer_interface_inheritance_2.ets | 42 + .../multi_layer_interface_inheritance_20.ets | 42 + .../multi_layer_interface_inheritance_21.ets | 49 + .../multi_layer_interface_inheritance_22.ets | 57 + .../multi_layer_interface_inheritance_23.ets | 42 + .../multi_layer_interface_inheritance_24.ets | 42 + .../multi_layer_interface_inheritance_25.ets | 48 + .../multi_layer_interface_inheritance_26.ets | 49 + .../multi_layer_interface_inheritance_27.ets | 49 + .../multi_layer_interface_inheritance_28.ets | 49 + .../multi_layer_interface_inheritance_29.ets | 63 + .../multi_layer_interface_inheritance_3.ets | 49 + .../multi_layer_interface_inheritance_30.ets | 49 + .../multi_layer_interface_inheritance_31.ets | 49 + .../multi_layer_interface_inheritance_32.ets | 55 + .../multi_layer_interface_inheritance_33.ets | 42 + .../multi_layer_interface_inheritance_4.ets | 49 + .../multi_layer_interface_inheritance_5.ets | 49 + .../multi_layer_interface_inheritance_6.ets | 49 + .../multi_layer_interface_inheritance_7.ets | 49 + .../multi_layer_interface_inheritance_8.ets | 49 + .../multi_layer_interface_inheritance_9.ets | 11 +- ...layer_interface_inheritance_override_0.ets | 12 +- ...ayer_interface_inheritance_override_17.ets | 43 + ...ayer_interface_inheritance_override_18.ets | 43 + ...ayer_interface_inheritance_override_19.ets | 43 + ...ayer_interface_inheritance_override_20.ets | 43 + ...ayer_interface_inheritance_override_21.ets | 43 + ...ayer_interface_inheritance_override_22.ets | 43 + ...ayer_interface_inheritance_override_23.ets | 43 + ...ayer_interface_inheritance_override_24.ets | 49 + ...ayer_interface_inheritance_override_25.ets | 4 +- ...ayer_interface_inheritance_override_26.ets | 43 + ...ayer_interface_inheritance_override_27.ets | 43 + ...ayer_interface_inheritance_override_28.ets | 43 + ...ayer_interface_inheritance_override_29.ets | 43 + ...ayer_interface_inheritance_override_30.ets | 43 + ...ayer_interface_inheritance_override_31.ets | 59 + ...ayer_interface_inheritance_override_32.ets | 43 + ...ayer_interface_inheritance_override_33.ets | 43 + ...ayer_interface_inheritance_override_34.ets | 13 +- ...ayer_interface_inheritance_override_35.ets | 19 +- ...ayer_interface_inheritance_override_36.ets | 21 +- ...ayer_interface_inheritance_override_37.ets | 38 + ...er_interface_inheritance_override_ext.ets} | 0 ...rface_inheritance_override_ext.params.yaml | 429 ++ .../type_system/type_system_0.ets | 6 +- .../type_system/type_system_1.ets | 16 +- .../type_system/type_system_10.ets | 2 +- .../type_system/type_system_11.ets | 0 .../type_system/type_system_12.ets | 2 +- .../type_system/type_system_13.ets | 0 .../type_system/type_system_14.ets | 4 +- .../type_system/type_system_15.ets | 8 +- .../type_system/type_system_16.ets | 0 .../type_system/type_system_17.ets | 6 +- .../type_system/type_system_18.ets | 9 +- .../type_system/type_system_19.ets | 0 .../type_system/type_system_2.ets | 4 +- .../type_system/type_system_20.ets | 4 +- .../type_system/type_system_21.ets | 8 +- .../type_system/type_system_22.ets | 8 +- .../type_system/type_system_23.ets | 56 + .../type_system/type_system_24.ets | 16 +- .../type_system/type_system_25.ets | 2 +- .../type_system/type_system_26.ets | 2 +- .../type_system/type_system_27.ets | 2 +- .../type_system/type_system_28.ets | 2 +- .../type_system/type_system_29.ets | 2 +- .../type_system/type_system_3.ets | 0 .../type_system/type_system_30.ets | 2 +- .../type_system/type_system_4.ets | 42 + .../type_system/type_system_5.ets | 4 +- .../type_system/type_system_6.ets | 4 +- .../type_system/type_system_7.ets | 4 +- .../type_system/type_system_8.ets | 2 +- .../type_system/type_system_9.ets | 0 .../abstract_method_conflict/conflict_01.ets | 2 +- .../abstract_method_conflict/conflict_02.ets | 2 +- .../abstract_method_conflict/conflict_03.ets | 2 +- .../abstract_method_conflict/conflict_04.ets | 4 +- .../abstract_method_conflict/conflict_05.ets | 2 +- .../abstract_method_conflict/conflict_06.ets | 2 +- .../abstract_method_conflict/conflict_07.ets | 21 +- .../abstract_method_conflict/conflict_08.ets | 5 +- .../abstract_method_conflict/conflict_09.ets | 44 + .../abstract_method_conflict/conflict_10.ets | 40 + .../abstract_method_conflict/conflict_11.ets | 18 +- .../abstract_method_conflict/conflict_12.ets | 7 +- .../abstract_method_conflict/conflict_13.ets | 51 + .../abstract_method_conflict/conflict_14.ets | 0 .../abstract_method_conflict/conflict_15.ets | 0 .../abstract_method_conflict/conflict_16.ets | 2 +- .../abstract_method_conflict/conflict_17.ets | 14 +- .../abstract_method_conflict/conflict_18.ets | 11 +- .../abstract_method_01.ets | 2 +- .../abstract_method_02.ets | 23 +- .../abstract_method_03.ets | 16 +- .../abstract_method_04.ets | 4 +- .../abstract_method_05.ets | 4 +- .../abstract_method_06.ets | 39 + .../abstract_method_07.ets | 14 +- .../abstract_method_08.ets | 6 +- .../abstract_method_09.ets | 12 +- .../abstract_method_10.ets | 65 + .../abstract_method_11.ets | 24 +- .../abstract_method_12.ets | 25 +- .../abstract_method_13.ets | 5 +- .../abstract_method_14.ets | 4 +- .../abstract_method_15.ets | 10 +- .../abstract_method_16.ets | 44 + .../abstract_method_17.ets | 0 .../abstract_method_18.ets | 20 +- .../abstract_method_19.ets | 4 +- .../abstract_method_20.ets | 30 + .../abstract_method_21.ets | 45 + .../abstract_method_22.ets | 29 + .../child_specifies_parent_use_case_01.ets | 0 .../child_specifies_parent_use_case_02.ets | 0 .../child_specifies_parent_use_case_03.ets | 8 +- .../child_specifies_parent_use_case_04.ets | 54 + .../child_specifies_parent_use_case_05.ets | 24 +- .../child_specifies_parent_use_case_06.ets | 42 + .../child_specifies_parent_use_case_07.ets | 63 + .../child_specifies_parent_use_case_08.ets | 4 +- .../child_specifies_parent_use_case_09.ets | 16 +- .../child_specifies_parent_use_case_10.ets | 42 + .../child_specifies_parent_use_case_11.ets | 53 + .../child_specifies_parent_use_case_12.ets | 0 .../child_specifies_parent_use_case_13.ets | 5 +- .../child_specifies_parent_use_case_14.ets | 18 +- .../child_specifies_parent_use_case_15.ets | 53 + .../child_specifies_parent_use_case_16.ets | 42 + .../child_specifies_parent_use_case_17.ets | 42 + .../child_specifies_parent_use_case_18.ets | 26 +- ...e_interface_constant_conflicts_case_01.ets | 8 +- ...e_interface_constant_conflicts_case_02.ets | 4 +- ...e_interface_constant_conflicts_case_03.ets | 31 + ...e_interface_constant_conflicts_case_04.ets | 4 +- ...e_interface_constant_conflicts_case_05.ets | 31 + ...e_interface_constant_conflicts_case_06.ets | 4 +- ...e_interface_constant_conflicts_case_07.ets | 31 + ...e_interface_constant_conflicts_case_08.ets | 31 + ...e_interface_constant_conflicts_case_09.ets | 27 + ...e_interface_constant_conflicts_case_10.ets | 27 + ...e_interface_constant_conflicts_case_11.ets | 0 ...e_interface_constant_conflicts_case_12.ets | 8 +- ...e_interface_constant_conflicts_case_13.ets | 6 +- ...e_interface_constant_conflicts_case_14.ets | 31 + ...e_interface_constant_conflicts_case_15.ets | 31 + ...e_interface_constant_conflicts_case_16.ets | 4 +- ...e_interface_constant_conflicts_case_17.ets | 4 +- ...e_interface_constant_conflicts_case_18.ets | 4 +- ...e_interface_constant_conflicts_case_19.ets | 27 + ...e_interface_constant_conflicts_case_20.ets | 35 + ...e_interface_constant_conflicts_case_21.ets | 31 + ...e_interface_constant_conflicts_case_22.ets | 4 +- ...e_interface_constant_conflicts_case_23.ets | 27 + ...e_interface_constant_conflicts_case_24.ets | 27 + ...e_interface_constant_conflicts_case_25.ets | 27 + ...e_interface_constant_conflicts_case_26.ets | 27 + .../moduleA.ets | 23 + .../moduleB.ets | 23 + ...arent_interfaces_same_constant_case_01.ets | 34 + ...arent_interfaces_same_constant_case_02.ets | 32 + ...arent_interfaces_same_constant_case_03.ets | 29 + ...arent_interfaces_same_constant_case_04.ets | 26 + ...arent_interfaces_same_constant_case_05.ets | 34 + ...arent_interfaces_same_constant_case_06.ets | 29 + ...arent_interfaces_same_constant_case_07.ets | 29 + ...arent_interfaces_same_constant_case_08.ets | 26 + ...arent_interfaces_same_constant_case_09.ets | 30 + ...arent_interfaces_same_constant_case_10.ets | 29 + ...arent_interfaces_same_constant_case_11.ets | 29 + ...arent_interfaces_same_constant_case_12.ets | 34 + ...arent_interfaces_same_constant_case_13.ets | 29 + ...arent_interfaces_same_constant_case_14.ets | 32 + ...arent_interfaces_same_constant_case_15.ets | 30 + ...arent_interfaces_same_constant_case_16.ets | 31 + ...arent_interfaces_same_constant_case_17.ets | 34 + ...arent_interfaces_same_constant_case_18.ets | 29 + .../namespaceA.ets | 25 + .../namespaceB.ets | 25 + .../childModule.ets | 0 .../parentModule.ets | 0 ...erify_override_conflict_method_case_01.ets | 2 +- ...erify_override_conflict_method_case_02.ets | 6 +- ...erify_override_conflict_method_case_03.ets | 6 +- ...erify_override_conflict_method_case_04.ets | 2 +- ...erify_override_conflict_method_case_05.ets | 6 +- ...erify_override_conflict_method_case_06.ets | 6 +- ...erify_override_conflict_method_case_07.ets | 18 +- ...erify_override_conflict_method_case_08.ets | 6 +- ...erify_override_conflict_method_case_09.ets | 15 +- ...erify_override_conflict_method_case_10.ets | 6 +- ...erify_override_conflict_method_case_11.ets | 2 +- ...erify_override_conflict_method_case_12.ets | 4 +- ...erify_override_conflict_method_case_13.ets | 8 +- ...erify_override_conflict_method_case_14.ets | 8 +- ...erify_override_conflict_method_case_15.ets | 8 +- ...erify_override_conflict_method_case_16.ets | 39 + ...erify_override_conflict_method_case_17.ets | 12 +- ...erify_override_conflict_method_case_18.ets | 39 + ...s_calls_parent_class_interface_method.ets} | 0 ..._parent_class_interface_method.params.yaml | 38 + .../same_name_method/same_name_01.ets | 31 + .../same_name_method/same_name_02.ets | 31 + .../same_name_method/same_name_03.ets | 46 + .../same_name_method/same_name_04.ets | 31 + .../same_name_method/same_name_05.ets | 33 + .../same_name_method/same_name_06.ets | 45 + .../static_method/static_method_01.ets | 23 + .../static_method/static_method_02.ets | 38 + .../static_method/static_method_03.ets | 23 + .../static_method/static_method_04.ets | 38 + .../static_method/static_method_05.ets | 11 +- .../interface_inheritance_const/const_01.ets | 7 +- .../interface_inheritance_const/const_02.ets | 39 + .../interface_inheritance_const/const_03.ets | 2 +- .../interface_inheritance_const/const_04.ets | 32 + .../interface_inheritance_const/const_05.ets | 32 + .../interface_inheritance_const/const_06.ets | 32 + .../interface_inheritance_const/const_07.ets | 32 + .../interface_inheritance_const/const_08.ets | 34 + .../interface_inheritance_const/const_09.ets | 28 + .../interface_inheritance_const/const_10.ets | 34 + .../interface_inheritance_const/const_11.ets | 4 +- .../interface_inheritance_const/const_12.ets | 33 + .../interface_inheritance_const/const_13.ets | 34 + .../interface_inheritance_const/const_14.ets | 34 + .../interface_inheritance_const/const_15.ets | 32 + .../interface_inheritance_const/const_16.ets | 32 + .../interface_inheritance_const/const_17.ets | 8 +- .../interface_inheritance_const/const_18.ets | 6 +- .../interface_inheritance_const/const_19.ets | 38 + ...array_boolean_in_subclass_interface_01.ets | 2 +- ...array_boolean_in_subclass_interface_02.ets | 35 + ...s_array_class_in_subclass_interface_01.ets | 2 +- ...s_array_class_in_subclass_interface_02.ets | 42 + ...ts_array_date_in_subclass_interface_01.ets | 37 + ...ts_array_date_in_subclass_interface_02.ets | 37 + ...ts_array_enum_in_subclass_interface_01.ets | 2 +- ...ts_array_enum_in_subclass_interface_02.ets | 39 + ...nts_array_int_in_subclass_interface_01.ets | 2 +- ...nts_array_int_in_subclass_interface_02.ets | 35 + ...ray_interface_in_subclass_interface_01.ets | 2 +- ...ray_interface_in_subclass_interface_02.ets | 42 + ...ts_array_null_in_subclass_interface_01.ets | 2 +- ...ts_array_null_in_subclass_interface_02.ets | 35 + ..._array_number_in_subclass_interface_01.ets | 2 +- ..._array_number_in_subclass_interface_02.ets | 35 + ..._array_string_in_subclass_interface_01.ets | 2 +- ..._array_string_in_subclass_interface_02.ets | 35 + ...ray_undefined_in_subclass_interface_01.ets | 2 +- ...ray_undefined_in_subclass_interface_02.ets | 35 + ...tants_boolean_in_subclass_interface_01.ets | 35 + ...tants_boolean_in_subclass_interface_02.ets | 35 + ...nstants_class_in_subclass_interface_01.ets | 42 + ...nstants_class_in_subclass_interface_02.ets | 42 + ...onstants_date_in_subclass_interface_01.ets | 37 + ...onstants_date_in_subclass_interface_02.ets | 37 + ...onstants_enum_in_subclass_interface_01.ets | 39 + ...onstants_enum_in_subclass_interface_02.ets | 39 + ..._genericclass_in_subclass_interface_01.ets | 6 +- ..._genericclass_in_subclass_interface_02.ets | 6 +- ..._genericclass_in_subclass_interface_03.ets | 6 +- ..._genericclass_in_subclass_interface_04.ets | 6 +- ..._genericclass_in_subclass_interface_05.ets | 6 +- ..._genericclass_in_subclass_interface_06.ets | 6 +- ..._genericclass_in_subclass_interface_07.ets | 6 +- ..._genericclass_in_subclass_interface_08.ets | 6 +- ..._genericclass_in_subclass_interface_09.ets | 6 +- ..._genericclass_in_subclass_interface_10.ets | 6 +- ..._genericclass_in_subclass_interface_11.ets | 6 +- ..._genericclass_in_subclass_interface_12.ets | 6 +- ..._genericclass_in_subclass_interface_13.ets | 6 +- ..._genericclass_in_subclass_interface_14.ets | 45 + ..._genericclass_in_subclass_interface_15.ets | 4 +- ..._genericclass_in_subclass_interface_16.ets | 6 +- ..._genericclass_in_subclass_interface_17.ets | 6 +- ..._genericclass_in_subclass_interface_18.ets | 6 +- ..._genericclass_in_subclass_interface_19.ets | 6 +- ..._genericclass_in_subclass_interface_20.ets | 6 +- ..._genericclass_in_subclass_interface_21.ets | 43 + ..._genericclass_in_subclass_interface_22.ets | 45 + ..._genericclass_in_subclass_interface_23.ets | 52 + ..._genericclass_in_subclass_interface_24.ets | 46 + ..._genericclass_in_subclass_interface_25.ets | 49 + ..._genericclass_in_subclass_interface_26.ets | 45 + ..._genericclass_in_subclass_interface_27.ets | 51 + ..._genericclass_in_subclass_interface_28.ets | 45 + ..._genericclass_in_subclass_interface_29.ets | 45 + ..._genericclass_in_subclass_interface_30.ets | 45 + ..._genericclass_in_subclass_interface_31.ets | 45 + ..._genericclass_in_subclass_interface_32.ets | 45 + ..._genericclass_in_subclass_interface_33.ets | 50 + ..._genericclass_in_subclass_interface_34.ets | 45 + ..._genericclass_in_subclass_interface_35.ets | 47 + ..._genericclass_in_subclass_interface_36.ets | 43 + ..._genericclass_in_subclass_interface_37.ets | 49 + ..._genericclass_in_subclass_interface_38.ets | 43 + ..._genericclass_in_subclass_interface_39.ets | 43 + ..._genericclass_in_subclass_interface_40.ets | 43 + ...constants_int_in_subclass_interface_01.ets | 35 + ...constants_int_in_subclass_interface_02.ets | 35 + ...nts_interface_in_subclass_interface_01.ets | 41 + ...nts_interface_in_subclass_interface_02.ets | 41 + ...onstants_null_in_subclass_interface_01.ets | 2 +- ...onstants_null_in_subclass_interface_02.ets | 35 + ...stants_number_in_subclass_interface_01.ets | 35 + ...stants_number_in_subclass_interface_02.ets | 35 + ...stants_string_in_subclass_interface_01.ets | 35 + ...stants_string_in_subclass_interface_02.ets | 35 + ...nts_undefined_in_subclass_interface_01.ets | 2 +- ...nts_undefined_in_subclass_interface_02.ets | 35 + ...s_union_class_in_subclass_interface_01.ets | 43 + ...s_union_class_in_subclass_interface_02.ets | 43 + ...s_union_class_in_subclass_interface_03.ets | 43 + ...s_union_class_in_subclass_interface_04.ets | 43 + ...s_union_class_in_subclass_interface_05.ets | 43 + ...s_union_class_in_subclass_interface_06.ets | 43 + ...s_union_class_in_subclass_interface_07.ets | 54 + ...s_union_class_in_subclass_interface_08.ets | 56 + ...s_union_class_in_subclass_interface_09.ets | 49 + ...s_union_class_in_subclass_interface_10.ets | 49 + ...s_union_class_in_subclass_interface_11.ets | 45 + ...s_union_class_in_subclass_interface_12.ets | 45 + ...s_union_class_in_subclass_interface_13.ets | 45 + ...s_union_class_in_subclass_interface_14.ets | 45 + ...s_union_class_in_subclass_interface_15.ets | 45 + ...s_union_class_in_subclass_interface_16.ets | 45 + ...s_union_class_in_subclass_interface_17.ets | 58 + ...s_union_class_in_subclass_interface_18.ets | 56 + ...s_union_class_in_subclass_interface_19.ets | 50 + ...s_union_class_in_subclass_interface_20.ets | 49 + ...s_union_class_in_subclass_interface_21.ets | 2 +- ...s_union_class_in_subclass_interface_22.ets | 2 +- ...s_union_class_in_subclass_interface_23.ets | 2 +- ...s_union_class_in_subclass_interface_24.ets | 2 +- ...union_class_in_subclass_interface_ext.ets} | 0 ...lass_in_subclass_interface_ext.params.yaml | 32 +- .../enum_int.ets | 20 +- .../enum_int.params.yaml | 459 +- .../enum_int_n.ets | 19 +- .../enum_int_n.params.yaml | 103 +- .../enum_long.ets | 34 - .../enum_long.params.yaml | 567 -- .../enum_long_n.ets | 36 - .../enum_long_n.params.yaml | 82 - .../enum_str.params.yaml | 47 +- .../enum_str_n.params.yaml | 12 +- .../enum_constant_ordinal.ets | 2 +- .../enum_constant_to_string.ets | 2 +- .../enum_constant_to_string_1.ets | 2 +- .../enum_ensure_not_nullish.ets | 2 +- .../enum_ensure_not_nullish_call.ets | 2 +- .../enum_ensure_not_nullish_interface.ets | 2 +- .../enum_member_name1.ets | 6 +- .../enum_member_name2.ets | 6 +- .../enum_member_name3.ets | 6 +- .../enum_member_name4.ets | 6 +- .../enum_member_name5.ets | 6 +- .../enum_member_values.ets | 2 +- .../enum_type_methods_valueof.ets | 4 +- .../enum_double.ets | 26 - .../enum_double.params.yaml | 48 - .../enum_double_n.ets | 27 - .../enum_double_n.params.yaml | 58 - .../enum_type_anno.ets | 26 - .../enum_type_anno.params.yaml | 52 - .../enum_type_anno_n.ets | 27 - .../enum_type_anno_n.params.yaml | 54 - ...any_number_of_constants_2.ets.expected.err | 16 - ...any_number_of_constants_3.ets.expected.err | 16 - ...any_number_of_constants_4.ets.expected.err | 15 - ...any_number_of_constants_5.ets.expected.err | 15 - ...any_number_of_constants_6.ets.expected.err | 15 - ...any_number_of_constants_7.ets.expected.err | 15 - ...any_number_of_constants_8.ets.expected.err | 15 - .../11.enumerations/enum_cte.ets | 66 - .../11.enumerations/enum_cte.params.yaml | 170 - .../11.enumerations/enum_decl.ets | 65 - .../11.enumerations/enum_decl.params.yaml | 355 -- .../11.enumerations/enum_export.ets | 48 +- .../11.enumerations/enum_export.params.yaml | 130 +- .../11.enumerations/to_export.ets | 26 +- .../01.errors/error_call.ets.expected.err | 18 - .../01.errors/error_call_stack.ets | 4 +- .../01.errors/error_call_with_recovery.ets | 2 +- .../import_declarations.params.yaml | 92 +- ...import_reexported_declarations.params.yaml | 122 +- .../01.separate_modules/init_once/test.ets | 34 - .../module_implicit_import.params.yaml | 34 +- .../import_conflict_neg.ets | 25 - .../03.selective_binding/import_example.ets | 35 - .../import_example.params.yaml | 64 - .../03.selective_binding/modules/example.ets | 26 - .../original_binding_name.ets | 28 - .../original_binding_name_neg.ets | 29 - .../type_binding_class_gen.ets | 29 - .../type_binding_enum.ets | 27 - .../type_binding_function.ets | 27 - .../type_binding_function_gen.ets | 29 - .../type_binding_tuple.ets | 28 - .../type_binding_union.ets | 31 - .../type_binding_with_alias.ets | 27 - .../type_binding_with_alias_neg.ets | 27 - ...y_and_implicitly_import_5.ets.expected.err | 15 - .../import_same_names.ets.expected.err | 15 - .../import_statements.ets | 11 +- .../modules/statements.ets | 26 +- .../import_all_as.ets | 0 .../import_all_as.params.yaml | 0 .../import_simple_name.ets | 0 .../import_simple_name_as.ets | 0 .../multiple_import_simple_name.ets | 0 .../multiple_import_simple_name_as.ets | 0 ...multiple_import_simple_name_as_non_neg.ets | 0 .../explicitly_and_implicitly_import_1.ets | 0 .../explicitly_and_implicitly_import_2.ets | 0 .../explicitly_and_implicitly_import_3.ets | 0 .../explicitly_and_implicitly_import_4.ets | 0 .../explicitly_and_implicitly_import_5.ets | 0 .../explicitly_and_implicitly_import_6.ets | 0 .../import_same_names.ets | 0 .../several_imports.ets | 0 .../several_imports_In_one.ets | 0 .../default_export_neg.ets | 0 .../default_export_neg_2.ets | 4 +- .../default_import_abstract_class.ets | 6 +- .../default_import_class.ets | 8 +- .../default_import_const_var.ets | 6 +- .../default_import_const_var_neg.ets | 4 +- .../default_import_enum.ets | 6 +- .../default_import_function.ets | 6 +- .../default_import_function_gen.ets | 6 +- .../default_import_function_same_name.ets | 6 +- .../default_import_generic_class.ets | 6 +- .../default_import_interface.ets | 6 +- .../default_import_tuple.ets | 8 +- .../default_import_type.ets | 6 +- .../default_import_union.ets | 12 +- .../default_import_variable.ets | 6 +- .../export_default/selective_export.ets | 0 .../export_default/single_export.ets | 0 .../import_defaultExport_allBinding.ets | 12 +- ...import_defaultExport_selectiveBindings.ets | 14 +- .../import_default_exported_func_neg.ets | 4 +- .../import_default_exported_func_neg_2.ets | 4 +- .../import_default_exported_func_neg_3.ets | 8 +- .../multiple_default_export.ets | 12 +- .../multiple_default_export_2.ets | 4 +- .../multiple_default_export_neg.ets | 0 .../multiple_default_export_neg_2.ets | 4 +- .../multiple_export.ets | 8 +- .../multiple_levels_default_export.ets | 6 +- .../multiple_levels_default_export_2.ets | 6 +- .../multiple_levels_default_export_3.ets | 6 +- .../export_multiple_default_types.ets | 0 .../type_binding_abstract_class.ets | 6 +- .../05.type_binding}/type_binding_class.ets | 6 +- .../type_binding_class_alias.ets | 6 +- .../type_binding_class_neg.ets | 4 +- .../type_binding_class_neg_2.ets | 4 +- .../type_binding_class_neg_3.ets | 0 .../type_binding_class_same_name.ets | 6 +- .../type_binding_class_same_name_2.ets | 6 +- .../type_binding_interface.ets | 4 +- .../type_binding_var_boxed.ets | 6 +- .../type_binding_var_default.ets | 6 +- .../type_binding_var_primitive.ets | 6 +- .../06.import_path}/bad/import_path_bad.ets | 0 .../bad/import_path_bad.params.yaml | 0 .../06.import_path}/dir/import_path_dir.ets | 0 .../dir/import_path_dir.params.yaml | 0 .../dir/import_path_dir_global.ets | 0 .../06.import_path}/dir/module_a.ets | 0 .../06.import_path}/dir/module_a/module_a.ets | 0 .../dir/nesteddir/module_a/module_a.ets | 0 .../file/import_baseURL_path_file.ets | 2 +- .../06.import_path}/file/import_path_file.ets | 0 .../file/import_path_file.params.yaml | 0 .../file/import_path_file_global.ets | 0 .../file/import_path_file_global.params.yaml | 0 .../06.import_path}/file/module_a.ets | 0 .../file/nesteddir/module_a.ets | 0 .../06.import_path}/module_a.ets | 0 .../import.ets | 0 .../import.params.yaml | 0 .../import_all.ets | 0 .../import_as.ets | 0 .../import_as.params.yaml | 0 .../core_default_import.ets | 0 .../core_default_import.params.yaml | 0 .../stdlib_default_import.ets | 0 .../stdlib_default_import.params.yaml | 12 +- .../declaration_module.ets | 4 +- .../declaration_modules.ets | 0 .../declaration_modules.params.yaml | 16 +- .../declaration_usage.ets | 0 .../declaration_usage2.ets | 0 .../declaration_usage3.ets | 2 +- .../declaration_usage4.ets | 2 +- .../declaration_usage5.ets | 0 .../declaration_usage6.ets | 0 .../declaration_usage_neg.ets | 0 .../declaration_usage_neg2.ets | 0 .../struct_declaration_n _1.ets} | 0 .../struct_declaration_n_1.ets | 24 + .../struct_declaration_n_2.ets | 0 .../struct_declaration_n_3.ets | 0 .../export_type_class_gen.ets | 30 - .../export_type_enum.ets | 25 - .../export_type_func.ets | 23 - .../export_type_func_gen.ets | 23 - .../export_type_union.ets | 23 - .../module}/cyclic_dependency/module.ets | 0 .../module}/cyclic_dependency/module_a.ets | 0 .../module}/cyclic_dependency/module_b.ets | 0 .../module}/cyclic_dependency/test.ets | 0 .../module}/cyclic_dependency/test2.ets | 0 .../module}/init_once/global.ets | 0 .../module}/init_once/module.ets | 0 .../module/init_once/test.ets | 34 + .../module}/init_order/module.ets | 0 .../module}/init_order/test.ets | 0 .../package}/cyclic_dependency/pkgA/test.ets | 0 .../cyclic_dependency/pkgB/module.ets | 0 .../package}/init_once/global/module.ets | 0 .../package}/init_once/pkg/module.ets | 0 .../package/init_once/test.ets | 33 + .../package}/init_order/pkg/module.ets | 0 .../package/init_order/test.ets | 33 + .../simple_spec4_1.ets | 52 - .../ambient01_test.ets | 27 - .../ambient02_test.ets | 27 - .../ambient03_test.ets | 27 - .../export_default_anonymous.ets | 40 - .../export_default_anonymous.ets.expected.err | 16 - .../pkg01_test.ets | 25 - .../01.selective_export_directive/t01/c.ets | 25 - .../01.selective_export_directive/t02/c.ets | 23 - .../01.selective_export_directive/t02/d.ets | 26 - .../01.selective_export_directive/t03/a.ets | 22 - .../01.selective_export_directive/t03/d.ets | 26 - .../01.selective_export_directive/t04/a.ets | 21 - .../01.selective_export_directive/t04/d.ets | 29 - .../01.selective_export_directive/t05/a.ets | 20 - .../01.selective_export_directive/t05/d.ets | 29 - .../ambient01_test.ets | 27 - .../ambient02_test.ets | 27 - .../ambient03_test.ets | 27 - .../export_default_anonymous.ets | 50 - .../export_default_anonymous.ets.expected.err | 20 - .../02.single_export_directive/pkg01_test.ets | 25 - .../default_export_abstract_class.ets | 0 .../default_export_class.ets | 0 .../default_export_const.ets | 0 .../default_export_enum.ets | 0 .../default_export_function.ets | 0 .../default_export_function_gen.ets | 2 +- .../default_export_generic_class.ets | 0 .../default_export_interface.ets | 0 .../default_export_tuple.ets | 0 .../default_export_type.ets | 0 .../default_export_type_2.ets | 0 .../default_export_type_2_level.ets | 0 .../default_export_type_2_level_2.ets | 0 .../default_export_type_2_level_3.ets | 0 .../default_export_union.ets | 0 .../default_export_variable.ets | 0 .../non_default_export_type.ets | 0 .../nothing_exported.ets | 0 .../export_declarations.ets | 0 .../export_declarations.params.yaml | 0 .../exported_grouped_declarations.ets | 0 .../exported_grouped_declarations.params.yaml | 0 .../import_exported_element.ets | 4 +- .../import_not_exported_element.ets | 4 +- .../export_default_type.ets | 0 .../export_type_abstract_class.ets | 0 .../export_type_class.ets | 0 .../export_type_class_2.ets | 0 .../export_type_class_same_name.ets | 1 - .../export_type_class_same_name_2.ets | 0 .../export_type_interface.ets | 0 .../export_type_var_boxed.ets | 0 .../export_type_var_primitive.ets | 0 .../export_type_var_tpl.ets | 0 .../bad_top_level_declarations.ets | 0 .../bad_top_level_declarations.params.yaml | 0 .../top_level_declarations.ets | 0 .../top_level_declarations.params.yaml | 0 .../namespace_declarations_basics.ets | 0 .../namespace_declarations_basics.params.yaml | 62 +- .../namespace_declarations_neg1.ets | 0 .../namespace_declarations_neg10.ets | 0 .../namespace_declarations_neg11.ets | 2 +- .../namespace_declarations_neg12.ets | 0 .../namespace_declarations_neg13.ets | 2 +- .../namespace_declarations_neg14.ets | 2 +- .../namespace_declarations_neg15.ets | 2 +- .../namespace_declarations_neg16.ets | 8 +- .../namespace_declarations_neg2.ets | 0 .../namespace_declarations_neg3.ets | 0 .../namespace_declarations_neg4.ets | 0 .../namespace_declarations_neg5.ets | 2 +- .../namespace_declarations_neg6.ets | 8 +- .../namespace_declarations_neg7.ets | 8 +- .../namespace_declarations_neg8.ets | 0 .../namespace_declarations_neg9.ets | 0 .../namespace_storage.ets | 0 .../namespace_storage2.ets | 0 .../pack1/namespace_package1.ets | 0 .../pack1/namespace_package2.ets | 0 .../pack1/namespace_package3.ets | 10 +- .../simple_spec4_1.ets | 51 + .../simple_spec4_2.ets | 8 +- .../simple_spec4_3.ets | 2 +- .../simple_spec_pos1.ets | 2 +- .../simple_spec_pos2.ets | 2 +- .../simple_spec_pos3.ets | 2 +- .../simple_spec_pos4.ets | 2 +- .../ambient01/file.d.ets | 0 .../ambient01/file.ets | 0 .../ambient01_test.ets | 27 + .../ambient02/file.d.ets | 0 .../ambient02/file.ets | 0 .../ambient02_test.ets | 27 + .../ambient03/file.d.ets | 0 .../ambient03/file.ets | 0 .../ambient03_test.ets | 27 + .../export_as_same_name.ets | 0 .../export_default_anonymous.ets | 40 + .../export_newclass.ets | 0 .../export_number.ets | 0 .../export_string.ets | 0 .../export_nothing.ets | 0 .../multiple_export.ets | 0 .../multiple_export_as.ets | 0 .../multiple_export_as_between.ets | 0 .../multiple_export_as_first.ets | 0 .../multiple_export_as_last.ets | 0 .../negative_selective_exports.ets | 0 .../negative_selective_exports.params.yaml | 0 .../no_export.ets | 0 .../01.selective_export_directive/pkg01/a.ets | 0 .../01.selective_export_directive/pkg01/b.ets | 0 .../01.selective_export_directive/pkg01/c.ets | 0 .../01.selective_export_directive/pkg01/d.ets | 0 .../pkg01_test.ets | 25 + .../selective_exports.ets | 0 .../selective_exports.params.yaml | 0 .../single_as_export.ets | 0 .../single_export.ets | 0 .../01.selective_export_directive/t01/a.ets | 0 .../01.selective_export_directive/t01/b.ets | 0 .../01.selective_export_directive/t01/c.ets | 25 + .../01.selective_export_directive/t02/a.ets | 0 .../01.selective_export_directive/t02/b.ets | 0 .../01.selective_export_directive/t02/c.ets | 23 + .../01.selective_export_directive/t02/d.ets | 26 + .../01.selective_export_directive/t03/a.ets | 22 + .../01.selective_export_directive/t03/b.ets | 0 .../01.selective_export_directive/t03/c.ets | 0 .../01.selective_export_directive/t03/d.ets | 26 + .../01.selective_export_directive/t04/a.ets | 21 + .../01.selective_export_directive/t04/b.ets | 0 .../01.selective_export_directive/t04/c.ets | 0 .../01.selective_export_directive/t04/d.ets | 29 + .../01.selective_export_directive/t05/a.ets | 20 + .../01.selective_export_directive/t05/b.ets | 0 .../01.selective_export_directive/t05/c.ets | 0 .../01.selective_export_directive/t05/d.ets | 29 + .../ambient01/file.d.ets | 0 .../ambient01/file.ets | 0 .../ambient01_test.ets | 27 + .../ambient02/file.d.ets | 0 .../ambient02/file.ets | 0 .../ambient02_test.ets | 27 + .../ambient03/file.d.ets | 0 .../ambient03/file.ets | 0 .../ambient03_test.ets | 27 + .../ambient04/file.d.ets | 0 .../ambient04/file.ets | 0 .../ambient04_test.ets | 4 +- .../export_default_anonymous.ets | 50 + .../export_add_expressions.ets | 0 .../export_default_anonymous/export_array.ets | 0 .../export_lambda.ets | 0 .../export_multi_expressions.ets | 0 .../export_newclass.ets | 0 .../export_number.ets | 0 .../export_string.ets | 0 .../02.single_export_directive/pkg01/a.ets | 0 .../02.single_export_directive/pkg01/b.ets | 0 .../02.single_export_directive/pkg01/c.ets | 0 .../02.single_export_directive/pkg01/d.ets | 0 .../02.single_export_directive/pkg01_test.ets | 25 + .../single_export.ets | 2 +- .../single_export.params.yaml | 0 .../03.export_type_directive/class_a.ets | 0 .../03.export_type_directive/class_a_as_b.ets | 0 .../class_a_as_b_twice.ets | 0 .../const_as_type.ets | 0 .../export_already_declared.ets | 0 .../export_as_already_declared.ets | 0 .../export_type_of_as_type.ets | 0 .../negative_export_as_by_old_name.ets | 0 .../negative_export_as_twice.ets | 0 .../04.re-export_directive/module_a.ets | 0 .../04.re-export_directive/module_all.ets | 0 .../module_all_renamed.ets | 0 .../04.re-export_directive/module_b.ets | 0 .../module_b_re-export.ets | 0 .../pkg01_re-export_all_by_old_names.ets | 2 +- .../04.re-export_directive/pkg01a/a.ets | 0 .../04.re-export_directive/pkg01b/a.ets | 0 .../pkg02_re-export_all_with_rename.ets | 2 +- .../04.re-export_directive/pkg02a/a.ets | 0 .../04.re-export_directive/pkg02b/a.ets | 0 .../pkg03_re-export_all.ets | 2 +- .../04.re-export_directive/pkg03a/a.ets | 0 .../04.re-export_directive/pkg03b/a.ets | 0 .../04.re-export_directive/re-export_all.ets | 2 +- .../re-export_all_by_old_names.ets | 2 +- .../re-export_all_namespace.ets | 22 +- .../re-export_all_with_rename.ets | 2 +- ...ram_entry_no_handle_error.ets.expected.err | 17 - .../block_declaration.ets | 3 +- .../block_declaration.params.yaml | 21 +- .../block_execution.ets | 4 +- .../multiple_block_execution.ets | 4 +- .../multiple_entrypoints.ets | 0 .../program_entry_cmdline.ets | 4 +- .../program_entry_error_coroutine.ets | 2 +- .../program_entry_error_coroutines.ets | 4 +- .../program_entry_export.ets | 2 +- .../program_entry_invalid.ets | 0 .../program_entry_no_handle_error.ets | 0 .../program_entry_normal.ets | 2 +- .../program_entry_normal_coroutine.ets | 2 +- .../program_entry_normal_coroutines.ets | 4 +- .../program_entry_package.ets | 2 +- .../program_entry_parameters.ets | 2 +- .../program_entry_top_level.ets | 4 +- .../program_entry_void.ets | 0 .../constant_declarations.d.ets | 54 - .../constant_declarations.ets | 44 +- .../constant_declarations.params.yaml | 48 + .../constant_declarations_n.d.ets | 30 - .../constant_declarations_n.ets | 35 - .../constant_usage.ets | 28 - .../constant_usage.params.yaml | 96 - .../constant_usage_n.ets | 29 - .../constant_usage_n.params.yaml | 32 - .../constant_usage_n_0.ets.expected.err | 22 - .../constant_usage_n_1.ets.expected.err | 26 - .../constant_usage_n_2.ets.expected.err | 24 - .../function_declarations.d.ets | 27 - .../function_declarations.ets | 10 +- .../function_declarations.params.yaml | 32 +- .../function_declarations_n.ets | 24 - .../function_declarations_n.params.yaml | 29 - .../overload_function_declarations.d.ets | 38 - .../overload_function_declarations.ets | 41 - .../overload_function_usage.ets | 28 - .../overload_function_usage.params.yaml | 35 - .../class_declarations.ets | 10 +- .../class_declarations.params.yaml | 190 + .../class_declarations_neg.ets | 0 .../class_declarations_neg.params.yaml | 57 + .../01.ambient_indexer/index_decl.ets | 24 - .../01.ambient_indexer/index_decl.params.yaml | 47 - .../index_decl_d/index_decl_0.d.ets | 29 - .../index_decl_d/index_decl_1.d.ets | 28 - .../index_decl_d/index_decl_2.d.ets | 28 - .../index_decl_d/index_decl_3.d.ets | 30 - .../index_decl_d/index_decl_4.d.ets | 32 - .../01.ambient_indexer/index_declarations.ets | 28 - .../index_declarations.params.yaml | 45 - .../index_declarations_neg.ets | 24 - .../index_declarations_neg.params.yaml | 28 - .../call_sig_decl.ets | 24 - .../call_sig_decl.params.yaml | 35 - .../call_sig_decl_d/call_sig_decl_0.d.ets | 27 - .../call_sig_decl_d/call_sig_decl_1.d.ets | 27 - .../call_sig_decl_d/call_sig_decl_2.d.ets | 27 - .../call_sig_declarations.ets | 28 - .../call_sig_declarations.params.yaml | 26 - .../call_sig_declarations_neg.ets | 24 - .../call_sig_declarations_neg.params.yaml | 29 - .../03.ambient_iterable/iterable_decl.ets | 38 - .../iterable_decl.params.yaml | 28 - .../iterable_decl_d/iterable_decl_0.d.ets | 35 - .../iterable_decl_d/iterable_decl_1.d.ets | 35 - .../iterable_declarations.ets | 28 - .../iterable_declarations.params.yaml | 29 - .../iterable_declarations_neg.ets | 24 - .../iterable_declarations_neg.params.yaml | 42 - .../04.class_declarations/class_decl.ets | 24 - .../class_decl.params.yaml | 148 - .../class_decl_d/class_decl_0.d.ets | 26 - .../class_decl_d/class_decl_1.d.ets | 26 - .../class_decl_d/class_decl_10.d.ets | 30 - .../class_decl_d/class_decl_11.d.ets | 28 - .../class_decl_d/class_decl_12.d.ets | 28 - .../class_decl_d/class_decl_13.d.ets | 28 - .../class_decl_d/class_decl_14.d.ets | 28 - .../class_decl_d/class_decl_15.d.ets | 28 - .../class_decl_d/class_decl_16.d.ets | 31 - .../class_decl_d/class_decl_17.d.ets | 28 - .../class_decl_d/class_decl_18.d.ets | 28 - .../class_decl_d/class_decl_19.d.ets | 31 - .../class_decl_d/class_decl_2.d.ets | 27 - .../class_decl_d/class_decl_20.d.ets | 28 - .../class_decl_d/class_decl_21.d.ets | 28 - .../class_decl_d/class_decl_22.d.ets | 34 - .../class_decl_d/class_decl_23.d.ets | 29 - .../class_decl_d/class_decl_24.d.ets | 34 - .../class_decl_d/class_decl_25.d.ets | 29 - .../class_decl_d/class_decl_26.d.ets | 29 - .../class_decl_d/class_decl_27.d.ets | 34 - .../class_decl_d/class_decl_3.d.ets | 27 - .../class_decl_d/class_decl_4.d.ets | 27 - .../class_decl_d/class_decl_5.d.ets | 26 - .../class_decl_d/class_decl_6.d.ets | 28 - .../class_decl_d/class_decl_7.d.ets | 28 - .../class_decl_d/class_decl_8.d.ets | 28 - .../class_decl_d/class_decl_9.d.ets | 28 - .../class_declarations.params.yaml | 154 - .../class_declarations_neg.params.yaml | 97 - .../interface_declarations.ets | 0 .../interface_declarations.params.yaml | 0 .../namespace_declarations.ets | 0 .../namespace_declarations.params.yaml | 0 .../bad_ambient_declarations.ets | 4 + .../bad_ambient_declarations.params.yaml | 36 +- .../import_decl/declarations.d.ets | 36 - .../import_decl/declarations.ets | 35 - .../import_decl/import_declarations.ets | 28 - .../import_declarations.params.yaml | 36 - .../import_decl_n/declarations_n.d.ets | 34 - .../import_decl_n/declarations_n.ets | 33 - .../import_decl_n/import_declarations_n.ets | 29 - .../import_declarations_n.params.yaml | 30 - .../import_declarations_n_0.ets.expected.err | 21 - .../import_declarations_n_1.ets.expected.err | 22 - .../import_declarations_n_2.ets.expected.err | 21 - .../consecutive_arrays.ets | 23 - .../negative_cases.ets | 29 - .../negative_cases.params.yaml | 23 - .../positive_cases.ets | 43 - .../positive_cases.params.yaml | 79 - .../union_types.ets | 32 - .../union_types.params.yaml | 18 - .../negative_cases.ets | 31 - .../negative_cases.params.yaml | 25 - .../positive_cases.ets | 44 - .../positive_cases.params.yaml | 30 - .../declaration_type_inference.ets | 33 - .../declaration_type_inference.params.yaml | 26 - .../expression_type_evaluation_1.ets | 39 - .../expression_type_evaluation_1.params.yaml | 18 - .../expression_type_evaluation_2.ets | 41 - .../expression_type_evaluation_2.params.yaml | 23 - .../negative_unary_operator.ets | 28 - .../numeric_expressions_widening.ets | 47 - .../numeric_expressions_widening.params.yaml | 23 - .../string_concatenation.ets | 34 - .../06.other_contexts/subtyping.ets | 33 - .../negative_cases.ets | 27 - .../positive_cases.ets | 27 - .../cast_to_class_n.ets | 0 .../cast_to_class_n.params.yaml | 0 .../cast_to_subclass_array.ets | 0 .../cast_to_subinterface_array.ets | 0 .../obj_cast_to_primitive.ets | 0 .../03.subtyping_for_union_types/negative.ets | 0 .../negative.params.yaml | 40 + .../03.subtyping_for_union_types/positive.ets | 26 + .../positive.params.yaml | 52 + .../negative.ets | 42 + .../negative.params.yaml | 27 + .../positive.ets | 42 + .../positive.params.yaml | 29 + .../array_type.ets | 0 .../cast_to_object.ets | 0 .../cast_to_object_array.ets | 0 .../cast_to_superclass.ets | 0 .../primitive_cast_to_object.ets | 0 .../generic_cast_to_generic_superclass.ets | 18 +- .../generic_cast_to_object.ets | 4 +- ...generic_cast_to_object_with_parameters.ets | 14 +- .../generic_cast_to_superclass.ets | 4 - .../generic_sub_and_superinterfaces.ets | 26 + .../generic_subinterface.ets | 23 + .../non_generic_cast_to_object.ets | 1 - .../non_generic_cast_to_superclass.ets | 27 + .../non_generic_superinterface.ets | 7 +- .../literal_type.ets | 8 +- .../literal_union_type.ets | 8 +- .../union_type.ets | 17 +- .../primitive_types_cast.ets | 0 .../primitive_types_cast.params.yaml | 1 + .../generic_cast_to_generic_superclass2_n.ets | 31 - .../generic_cast_to_generic_superclass_n.ets | 31 - .../generic_cast_to_object_n.ets | 25 - ...neric_cast_to_object_with_parameters_n.ets | 28 - .../generic_cast_to_superclass_n.ets | 28 - .../generic_sub_and_superinterfaces.ets | 36 - .../generic_sub_and_superinterfaces_n.ets | 33 - .../generic_subinterface.ets | 37 - .../generic_subinterface_n.ets | 35 - .../non_generic_cast_to_object_n.ets | 25 - .../non_generic_cast_to_superclass.ets | 46 - .../non_generic_cast_to_superclass_n0.ets | 28 - .../non_generic_cast_to_superclass_n1.ets | 40 - .../non_generic_cast_to_superclass_n2.ets | 42 - .../non_generic_superinterface_n0.ets | 28 - .../non_generic_superinterface_n1.ets | 29 - .../non_generic_superinterface_n2.ets | 37 - .../non_generic_superinterface_n3.ets | 39 - .../subtyping_literals.ets | 28 - .../subtyping_literals.params.yaml | 62 - .../negative.params.yaml | 59 - .../03.subtyping_for_union_types/positive.ets | 29 - .../positive.params.yaml | 122 - .../negative.ets | 49 - .../negative.params.yaml | 63 - .../positive_function.ets | 51 - .../positive_function.params.yaml | 32 - .../positive_function_generic.ets | 51 - .../positive_function_generic.params.yaml | 32 - .../positive_instance_method.ets | 49 - .../positive_instance_method.params.yaml | 33 - .../positive_interface_method.ets | 51 - .../positive_interface_method.params.yaml | 34 - .../positive_lambda.ets | 46 - .../positive_lambda.params.yaml | 38 - .../positive_static_method.ets | 47 - .../positive_static_method.params.yaml | 34 - .../negative.ets | 32 - .../negative.params.yaml | 77 - .../negative_type_safety.ets | 43 - .../negative_type_safety.params.yaml | 73 - .../positive.ets | 35 - .../positive.params.yaml | 97 - .../NotASubtype0.ets | 27 - .../NotASubtype1.ets | 27 - .../type_identity_case_01.ets | 4 +- .../type_identity_case_02.ets | 4 +- .../type_identity_case_03.ets | 8 +- .../type_identity_case_04.ets | 2 +- .../type_identity_case_05.ets | 4 +- .../type_identity_case_06.ets | 6 +- .../type_identity_case_07.ets | 2 +- .../type_identity_case_08.ets | 2 +- .../type_identity_case_09.ets | 4 +- .../type_identity_case_10.ets | 2 +- .../type_identity_case_11.ets | 4 +- .../type_identity_case_12.ets | 6 +- .../type_identity_case_13.ets | 2 +- .../type_identity_case_14.ets | 2 +- .../type_identity_case_15.ets | 2 +- .../type_identity_case_16.ets | 2 +- .../type_identity_case_17.ets | 2 +- .../type_identity_case_18.ets | 6 +- .../type_identity_case_19.ets | 2 +- .../type_identity_case_20.ets | 2 +- .../type_identity_case_21.ets | 2 +- .../type_identity_case_22.ets | 4 +- .../type_identity_case_23.ets | 4 +- .../type_identity_case_24.ets | 6 +- .../class_and_interface.ets | 0 .../class_and_interface.params.yaml | 0 .../classes_compatibility.ets | 0 .../classes_compatibility.params.yaml | 0 .../enums_compatibility.ets | 0 .../functions_compatibility.ets | 2 +- .../functions_compatibility.params.yaml | 0 .../functions_compatibility_opt.ets | 0 .../functions_compatibility_opt.params.yaml | 8 +- .../tuple_enum_and_object_literal.ets | 0 .../tuple_enum_and_object_literal.params.yaml | 6 +- .../contravariance_class_example.ets | 4 +- .../contravariance_class_negative_example.ets | 0 .../contravariance_function.ets | 0 .../contravariance_function_negative.ets | 0 .../covariance/covariance_class_example.ets | 6 +- .../covariance_class_negative_example.ets | 0 .../covariance/covariance_function.ets | 2 +- .../example_type_variance_case_01.ets | 2 +- .../example_type_variance_case_02.ets | 2 +- .../example_type_variance_case_03.ets | 4 +- .../example_type_variance_case_04.ets | 4 +- .../example_type_variance_case_05.ets | 2 +- .../example_type_variance_case_06.ets | 2 +- .../example_type_variance_case_07.ets | 2 +- .../example_type_variance_case_08.ets | 2 +- .../example_type_variance_case_09.ets | 2 +- .../example_type_variance_case_10.ets | 2 +- .../example_type_variance_case_11.ets | 2 +- .../example_type_variance_case_12.ets | 0 .../example_type_variance_case_13.ets | 0 .../example_type_variance_case_14.ets | 0 .../example_type_variance_case_15.ets | 2 +- .../example_type_variance_case_16.ets | 0 .../example_type_variance_case_17.ets | 0 .../example_type_variance_case_18.ets | 4 +- .../example_type_variance_case_19.ets | 2 +- .../example_type_variance_case_20.ets | 0 .../example_type_variance_case_21.ets | 2 +- .../example_type_variance_case_22.ets | 2 +- .../example_type_variance_case_23.ets | 2 +- .../example_type_variance_case_24.ets | 0 .../example_type_variance_case_25.ets | 2 +- .../example_type_variance_case_26.ets | 0 .../example_type_variance_case_27.ets | 2 +- .../invariance/invariance_class_example.ets | 2 +- .../invariance/invariance_function.ets | 2 +- .../invariance_function.params.yaml | 4 +- .../invariance_function_callback.ets | 2 +- .../invariance_function_callback_1.ets | 2 +- .../invariance_function_incorrect.ets | 0 .../asymmetric_verification_case_01.ets | 4 +- .../asymmetric_verification_case_02.ets | 4 +- .../asymmetric_verification_case_03.ets | 4 +- .../asymmetric_verification_case_04.ets | 4 +- .../asymmetric_verification_case_05.ets | 4 +- .../asymmetric_verification_case_06.ets | 4 +- .../asymmetric_verification_case_07.ets | 4 +- .../boundary_case/boundary_case_01.ets | 4 +- .../boundary_case/boundary_case_02.ets | 4 +- .../boundary_case/boundary_case_03.ets | 4 +- .../boundary_case/boundary_case_04.ets | 4 +- .../boundary_case/boundary_case_05.ets | 4 +- .../boundary_case/boundary_case_06.ets | 4 +- .../boundary_case/boundary_case_07.ets | 4 +- .../boundary_case/boundary_case_08.ets | 4 +- .../diff_type_compat_case_01.ets | 2 +- .../diff_type_compat_case_02.ets | 2 +- .../diff_type_compat_case_03.ets | 2 +- .../diff_type_compat_case_04.ets | 2 +- .../diff_type_compat_case_05.ets | 2 +- .../diff_type_compat_case_06.ets | 2 +- .../diff_type_compat_case_07.ets | 2 +- .../diff_type_compat_case_08.ets | 2 +- .../diff_type_compat_case_09.ets | 2 +- .../diff_type_compat_case_10.ets | 2 +- .../diff_type_compat_case_11.ets | 2 +- .../diff_type_compat_case_12.ets | 2 +- .../diff_type_compat_case_13.ets | 2 +- .../diff_type_compat_case_14.ets | 2 +- .../diff_type_compat_case_15.ets | 2 +- .../implicit_compat_case_01.ets | 4 +- .../implicit_compat_case_02.ets | 4 +- .../implicit_compat_case_03.ets | 4 +- .../implicit_compat_case_04.ets | 4 +- .../implicit_compat_case_05.ets | 4 +- .../implicit_compat_case_06.ets | 4 +- .../implicit_compat_case_07.ets | 4 +- .../implicit_compat_case_08.ets | 4 +- ...nce_relationship_compatibility_case_01.ets | 4 +- ...nce_relationship_compatibility_case_02.ets | 4 +- ...nce_relationship_compatibility_case_03.ets | 4 +- ...nce_relationship_compatibility_case_04.ets | 4 +- ...nce_relationship_compatibility_case_05.ets | 4 +- ...nce_relationship_compatibility_case_06.ets | 2 +- ...nce_relationship_compatibility_case_07.ets | 4 +- ...nce_relationship_compatibility_case_08.ets | 4 +- ...e_implementation_compatibility_case_01.ets | 2 +- ...e_implementation_compatibility_case_02.ets | 2 +- ...e_implementation_compatibility_case_03.ets | 2 +- ...e_implementation_compatibility_case_04.ets | 2 +- ...e_implementation_compatibility_case_05.ets | 2 +- .../rest_params.ets | 6 +- .../rest_params.params.yaml | 24 +- .../rest_params_spread.ets | 6 +- .../rest_params_spread.params.yaml | 24 +- .../same_type_compat_no_implicit_case_01.ets | 4 +- .../same_type_compat_no_implicit_case_02.ets | 4 +- .../same_type_compat_no_implicit_case_03.ets | 4 +- .../same_type_compat_no_implicit_case_04.ets | 4 +- .../same_type_compat_no_implicit_case_05.ets | 4 +- .../same_type_compat_no_implicit_case_06.ets | 4 +- .../same_type_compat_no_implicit_case_07.ets | 4 +- .../same_type_compat_no_implicit_case_08.ets | 4 +- .../same_type_compat_no_implicit_case_09.ets | 4 +- .../same_type_compat_no_implicit_case_10.ets | 8 +- .../same_type_compat_no_implicit_case_11.ets | 4 +- .../same_type_compat_no_implicit_case_12.ets | 4 +- .../same_type_compat_no_implicit_case_13.ets | 4 +- .../same_type_compat_no_implicit_case_14.ets | 4 +- .../same_type_compat_no_implicit_case_15.ets | 4 +- .../same_type_compat_no_implicit_case_16.ets | 4 +- .../same_type_compat_no_implicit_case_17.ets | 4 +- .../same_type_compat_no_implicit_case_18.ets | 4 +- .../same_type_compat_no_implicit_case_19.ets | 4 +- .../same_type_compat_no_implicit_case_20.ets | 4 +- .../same_type_compat_no_implicit_case_21.ets | 4 +- .../same_type_compat_no_implicit_case_22.ets | 4 +- .../same_type_compat_no_implicit_case_23.ets | 4 +- .../same_type_compat_no_implicit_case_24.ets | 4 +- .../same_type_compat_no_implicit_case_25.ets | 4 +- .../same_type_compat_no_implicit_case_26.ets | 4 +- .../same_type_compat_no_implicit_case_27.ets | 4 +- .../same_type_compat_no_implicit_case_28.ets | 4 +- .../same_type_compat_no_implicit_case_29.ets | 4 +- .../same_type_compat_no_implicit_case_30.ets | 4 +- .../single_params.ets | 6 +- .../single_params.params.yaml | 77 +- .../tuple_rest_params.ets | 6 +- .../tuple_rest_params.params.yaml | 10 +- .../clss.ets | 30 - .../clss.params.yaml | 886 ---- .../func_clss.ets | 35 - .../func_clss.params.yaml | 166 - .../func_func.ets | 35 - .../func_func.params.yaml | 192 - .../func_union.ets | 35 - .../func_union.params.yaml | 166 - .../intf.ets | 30 - .../intf.params.yaml | 886 ---- .../unions_arr.ets | 35 - .../unions_arr.params.yaml | 108 - .../unions_clss.ets | 35 - .../unions_clss.params.yaml | 110 - .../unions_fixed_arr.ets | 35 - .../unions_fixed_arr.params.yaml | 110 - .../unions_func.ets | 38 - .../unions_func.params.yaml | 110 - .../unions_lit.ets | 29 - .../unions_lit.params.yaml | 110 - .../rest_parameter_with_optional.ets | 31 - .../rest_parameter_with_optional.params.yaml | 181 - .../01.smart_types/comb_01a.ets | 71 + .../01.smart_types/comb_01b.ets | 67 + .../01.smart_types}/comb_01c.ets | 22 +- .../01.smart_types}/comb_01d.ets | 24 +- .../01.smart_types}/comb_10a.ets | 22 +- .../01.smart_types}/comb_11a.ets | 8 +- .../01.smart_types}/comb_11b.ets | 8 +- .../01.smart_types}/comb_11c.ets | 8 +- .../01.smart_types}/comb_11d.ets | 8 +- .../01.smart_types}/comb_12a.ets | 8 +- .../01.smart_types}/comb_12b.ets | 8 +- .../01.smart_types}/comb_13.ets | 22 +- .../01.smart_types}/comb_13a.ets | 10 +- .../01.smart_types}/comb_13b.ets | 10 +- .../01.smart_types}/comb_13c.ets | 12 +- .../01.smart_types}/comb_13d.ets | 12 +- .../01.smart_types}/cond_expr.ets | 0 .../01.smart_types}/cond_expr.params.yaml | 0 .../01.smart_types}/for_of_stmt.ets | 0 .../01.smart_types}/for_of_stmt.params.yaml | 0 .../01.smart_types}/func_overload.ets | 20 +- .../01.smart_types/func_overload.params.yaml | 108 + .../01.smart_types}/if_stmt.ets | 0 .../01.smart_types}/if_stmt.params.yaml | 0 .../01.smart_types}/if_stmt2.ets | 14 +- .../01.smart_types}/if_stmt2.params.yaml | 0 .../01.smart_types}/un1.ets | 0 .../01.smart_types}/un1.params.yaml | 0 .../01.smart_types}/un2.ets | 0 .../01.smart_types}/un2.params.yaml | 0 .../01.smart_types}/un3.ets | 0 .../01.smart_types}/un3.params.yaml | 0 .../01.smart_types}/un4.ets | 0 .../01.smart_types}/un4.params.yaml | 0 .../01.smart_types}/un_bool_ops.ets | 0 .../01.smart_types}/un_bool_ops.params.yaml | 0 .../01.smart_types}/un_num_ops.ets | 0 .../01.smart_types}/un_num_ops.params.yaml | 5 +- .../01.smart_types}/while_stmt.ets | 0 .../01.smart_types}/while_stmt.params.yaml | 0 .../ex_6_1.ets | 36 + .../neg.ets} | 0 .../neg.params.yaml | 106 + .../overload_equivalent_example_0.ets | 35 + .../overload_equivalent_example_1.ets | 35 + .../overload_equivalent_example_10.ets | 40 + .../overload_equivalent_example_2.ets | 45 + .../overload_equivalent_example_3.ets | 44 + .../overload_equivalent_example_4.ets | 46 + .../overload_equivalent_example_5.ets | 45 + .../overload_equivalent_example_6.ets | 44 + .../overload_equivalent_example_7.ets | 45 + .../overload_equivalent_example_8.ets | 44 + .../overload_equivalent_example_9.ets | 34 + .../01.overload-equivalent_signatures/pos.ets | 29 + .../pos.params.yaml | 120 + ...interface_override_with_object_example.ets | 37 + ...e_override_with_object_example.params.yaml | 32 + ...ce_override_with_object_example_return.ets | 34 + ...ide_with_object_example_return.params.yaml | 22 + ...verride_with_object_example_return_neg.ets | 5 +- ...with_object_example_return_neg.params.yaml | 23 + .../override_compatibility_array.ets | 18 +- .../override_compatibility_array.params.yaml | 200 + .../override_compatibility_class.ets | 18 +- .../override_compatibility_class.params.yaml | 327 ++ .../override_compatibility_enum.ets | 45 + .../override_compatibility_enum.params.yaml | 95 + .../override_compatibility_function.ets | 20 +- ...verride_compatibility_function.params.yaml | 186 + .../override_compatibility_parameter.ets | 48 + ...erride_compatibility_parameter.params.yaml | 241 + .../override_compatibility_primitive.ets | 18 +- ...erride_compatibility_primitive.params.yaml | 155 + .../override_compatibility_tuple.ets | 18 +- .../override_compatibility_tuple.params.yaml | 190 + .../override_compatible_signature.ets | 46 + .../override_compatible_signature.params.yaml | 164 + .../override_with_object.ets | 16 +- .../override_with_object.params.yaml | 698 +++ .../override_with_object_n.ets | 17 +- .../override_with_object_n.params.yaml | 72 + .../function_argument_equivalent.ets | 53 + .../function_argument_equivalent_n.ets | 37 + ...function_argument_equivalent_n.params.yaml | 36 + .../function_argument_equivalent_neg.ets | 4 +- ...nction_argument_equivalent_neg.params.yaml | 43 + .../function_argument_equivalent_neg_n2.ets | 27 + ...ion_argument_equivalent_neg_n2.params.yaml | 50 + .../function_import.ets | 34 + .../function_import.params.yaml | 24 + .../function_import_and_decl.ets | 38 + .../function_import_and_decl.params.yaml | 59 + .../function_import_from_same_cu.ets | 54 + .../function_import_neg.ets | 34 + .../function_import_neg.params.yaml | 28 + .../function_override.ets | 24 + .../function_override_module.ets | 26 + .../modules/function_export_a_2params.ets | 0 .../modules/function_export_a_array.ets | 0 .../modules/function_export_a_boxed.ets | 0 .../modules/function_export_a_custom.ets | 2 +- .../modules/function_export_a_enum.ets | 33 + .../modules/function_export_a_function.ets | 0 .../modules/function_export_a_generic.ets | 2 +- .../modules/function_export_a_no_arg.ets | 0 .../modules/function_export_a_primitive.ets | 0 .../modules/function_export_a_tuple.ets | 2 +- .../modules/function_export_a_union.ets | 2 +- .../modules/function_export_all.ets | 111 + .../modules/function_export_b_2params.ets | 0 .../modules/function_export_b_array.ets | 0 .../modules/function_export_b_boxed.ets | 2 +- .../modules/function_export_b_custom.ets | 2 +- .../modules/function_export_b_function.ets | 2 +- .../modules/function_export_b_generic.ets | 0 .../modules/function_export_b_no_arg.ets | 0 .../modules/function_export_b_primitive.ets | 2 +- .../modules/function_export_b_tuple.ets | 2 +- .../modules/function_export_b_union.ets | 2 +- .../modules/function_export_neg.ets | 30 + .../modules/function_export_neg_1.ets | 28 + .../modules/function_export_neg_2.ets | 30 + .../modules/function_export_neg_3.ets | 30 + .../access_modifier_over.ets | 57 + .../access_modifier_over.params.yaml | 328 ++ .../class_method_over_n3.ets | 39 + .../class_method_over_n3.params.yaml | 365 ++ .../constructor_overload.ets | 1 + .../constructor_overload.params.yaml | 36 +- .../instance_method_over_n2.ets | 64 + .../instance_method_over_n2.params.yaml | 77 + .../single_class_over_generic_1.ets | 2 +- .../single_class_over_generic_2.ets | 2 +- .../single_class_over_generic_3.ets | 0 .../single_class_overload_n.ets | 0 .../single_class_overload_n.params.yaml | 235 +- .../static_method_over_n2.ets | 64 + .../static_method_over_n2.params.yaml | 71 + .../two_class_method_over_n.ets | 16 +- .../two_class_method_over_n.params.yaml | 8 + .../im_over.ets | 29 + .../im_over.params.yaml | 837 +++ .../im_over2.ets | 5 +- .../im_over2.params.yaml | 129 + .../interface_return_value_overload.ets | 12 +- .../interface_return_value_overload_1.ets | 12 +- .../interface_return_value_overload_2.ets | 19 +- .../multiple_interfaces_inheritance.ets | 6 +- ...ultiple_interfaces_inheritance.params.yaml | 99 + .../single_interface_overload_n.ets | 15 +- .../single_interface_overload_n.params.yaml | 0 .../single_interface_overload_neg.ets | 32 + .../single_interface_overload_neg.params.yaml | 70 + .../two_interfaces.ets | 18 +- .../two_interfaces.params.yaml | 20 +- .../01.numeric_constant_expressions/float.ets | 38 - .../float.params.yaml | 50 - .../float_neg.ets | 39 - .../float_neg.params.yaml | 25 - .../integer.ets | 38 - .../integer.params.yaml | 315 -- .../integer_neg.ets | 39 - .../integer_neg.params.yaml | 34 - .../overload_no_candidate_func.ets | 0 .../overload_no_candidate_meth.ets | 0 .../better_shorter_conversion_0.ets | 4 +- .../better_shorter_conversion_1.ets | 2 +- .../better_shorter_conversion_2.ets | 2 +- .../better_shorter_conversion_3.ets | 2 +- .../02.best_candidate_selection/ex_0.ets | 0 .../02.best_candidate_selection/ex_2.ets | 0 .../02.best_candidate_selection/ex_3.ets | 0 .../02.best_candidate_selection/ex_4_1.ets | 0 .../02.best_candidate_selection/ex_4_2.ets | 0 .../02.best_candidate_selection/ex_5_1.ets | 2 +- .../02.best_candidate_selection/ex_7.ets | 4 +- .../04.computing_smart_types/comb_01a.ets | 71 - .../04.computing_smart_types/comb_01b.ets | 67 - .../func_overload.params.yaml | 72 - .../07.smart_cast_examples/spec_example1.ets | 27 - .../07.smart_cast_examples/spec_example2.ets | 55 - .../07.smart_cast_examples/spec_example3.ets | 39 - .../bad-static-location.ets | 4 +- .../access_modifier_over_private.ets | 61 - .../access_modifier_over_private.params.yaml | 85 - .../access_modifier_over_protected.ets | 61 - ...access_modifier_over_protected.params.yaml | 46 - .../access_modifier_over_public.ets | 61 - .../access_modifier_over_public.params.yaml | 91 - .../class_method_over.ets | 38 - .../class_method_over.params.yaml | 397 -- .../instance_method_over.ets | 72 - .../instance_method_over.params.yaml | 164 - .../static_method_over.ets | 72 - .../static_method_over.params.yaml | 165 - .../im_overloading1.ets | 37 - .../im_overloading1.params.yaml | 81 - .../im_overloading2.ets | 28 - .../im_overloading2.params.yaml | 300 -- .../im_overriding1.ets | 34 - .../im_overriding1.params.yaml | 227 - .../intf_clss.ets | 51 - .../intf_clss.params.yaml | 40 - .../intf_intf_clss1.ets | 57 - .../intf_intf_clss1.params.yaml | 56 - .../intf_intf_clss2.ets | 54 - .../intf_intf_clss2.params.yaml | 57 - .../intf_intf_clss3.ets | 55 - .../intf_intf_clss3.params.yaml | 62 - .../intf_intf_clss4.ets | 54 - .../intf_intf_clss4.params.yaml | 65 - .../intf_intf_intf_clss1.ets | 58 - .../intf_intf_intf_clss1.params.yaml | 77 - .../access_modifier_over_compatible.ets | 61 - ...ccess_modifier_over_compatible.params.yaml | 145 - .../different_return_types.ets | 58 - .../different_return_types.params.yaml | 32 - ..._multiple_methods_with_same_signatures.ets | 41 - ...interface_override_with_object_example.ets | 48 - ...e_override_with_object_example.params.yaml | 22 - ...rface_override_with_object_example_neg.ets | 35 - ...erride_with_object_example_neg.params.yaml | 22 - ...ce_override_with_object_example_return.ets | 49 - ...ide_with_object_example_return.params.yaml | 23 - ...with_object_example_return_neg.params.yaml | 22 - .../override_compatibility_array.params.yaml | 160 - .../override_compatibility_class.params.yaml | 196 - .../override_compatibility_enum.ets | 47 - .../override_compatibility_enum.params.yaml | 88 - .../override_compatibility_fixed_array.ets | 44 - ...ride_compatibility_fixed_array.params.yaml | 158 - ...verride_compatibility_function.params.yaml | 695 --- .../override_compatibility_intf.ets | 49 - .../override_compatibility_intf.params.yaml | 160 - .../override_compatibility_parameter.ets | 49 - ...erride_compatibility_parameter.params.yaml | 279 - ...erride_compatibility_primitive.params.yaml | 120 - .../override_compatibility_tuple.params.yaml | 237 - .../override_compatible_signature.ets | 49 - .../override_compatible_signature.params.yaml | 156 - .../override_with_object.params.yaml | 306 -- .../override_with_object_n.params.yaml | 224 - .../spec_example_0a.ets | 32 - .../spec_example_0b.ets | 25 - .../spec_example_1.ets | 60 - .../spec_example_2.ets | 60 - .../spec_example_3.ets | 70 - .../spec_example_4.ets | 62 - .../Sig.ets | 46 - .../Sig.params.yaml | 541 -- .../SigNeg.ets | 47 - .../SigNeg.params.yaml | 86 - .../SpecExample0.ets | 37 - .../SpecExample1_1.ets | 41 - .../SpecExample1_2.ets | 40 - .../SpecExample1_3.ets | 46 - .../SpecExample1_4.ets | 47 - .../SpecExample1_5.ets | 50 - .../cond_f1.ets | 0 .../cond_f1.params.yaml | 38 +- .../cond_f2.ets | 0 .../cond_f2.params.yaml | 0 .../cond_t1.ets | 0 .../cond_t1.params.yaml | 34 +- .../cond_t2.ets | 0 .../cond_t2.params.yaml | 10 +- .../do_f.ets | 0 .../do_f.params.yaml | 0 .../do_t.ets | 0 .../do_t.params.yaml | 10 +- .../for_f.ets | 0 .../for_f.params.yaml | 0 .../for_t.ets | 0 .../for_t.params.yaml | 10 +- .../if_f1.ets | 0 .../if_f1.params.yaml | 38 +- .../if_f2.ets | 0 .../if_f2.params.yaml | 2 +- .../if_t1.ets | 0 .../if_t1.params.yaml | 32 +- .../if_t2.ets | 0 .../if_t2.params.yaml | 10 +- .../ops.ets | 10 +- .../ops.params.yaml | 0 .../ops2.ets | 16 +- .../ops2.params.yaml | 5 +- .../while_f.ets | 0 .../while_f.params.yaml | 0 .../while_t.ets | 0 .../while_t.params.yaml | 10 +- .../cons/cons_access.ets | 28 - .../cons/cons_access.params.yaml | 81 - .../cons/cons_arrays1.ets | 54 - .../cons/cons_arrays1.params.yaml | 73 - .../cons/cons_arrays2.ets | 54 - .../cons/cons_arrays2.params.yaml | 73 - .../cons/cons_classes1.ets | 49 - .../cons/cons_classes1.params.yaml | 38 - .../cons/cons_classes2.ets | 49 - .../cons/cons_classes2.params.yaml | 41 - .../cons/cons_enums1.ets | 48 - .../cons/cons_enums1.params.yaml | 50 - .../cons/cons_enums2.ets | 48 - .../cons/cons_enums2.params.yaml | 50 - .../cons/cons_enums3.ets | 48 - .../cons/cons_enums3.params.yaml | 50 - .../cons/cons_enums4.ets | 48 - .../cons/cons_enums4.params.yaml | 50 - .../cons/cons_fixed_arrays1.ets | 54 - .../cons/cons_fixed_arrays1.params.yaml | 60 - .../cons/cons_fixed_arrays2.ets | 54 - .../cons/cons_fixed_arrays2.params.yaml | 63 - .../cons/cons_functions.ets | 55 - .../cons/cons_functions.params.yaml | 61 - .../cons/cons_impl_sig.ets | 30 - .../cons/cons_impl_sig.params.yaml | 75 - .../cons/cons_interfaces1.ets | 49 - .../cons/cons_interfaces1.params.yaml | 38 - .../cons/cons_interfaces2.ets | 49 - .../cons/cons_interfaces2.params.yaml | 41 - .../cons/cons_neg.ets | 28 - .../cons/cons_neg.params.yaml | 79 - .../cons/cons_numeric.ets | 49 - .../cons/cons_numeric.params.yaml | 102 - .../cons/cons_single.ets | 30 - .../cons/cons_single.params.yaml | 58 - .../cons/cons_tuples.ets | 48 - .../cons/cons_tuples.params.yaml | 39 - .../func/func_arrays1.ets | 52 - .../func/func_arrays1.params.yaml | 73 - .../func/func_arrays2.ets | 52 - .../func/func_arrays2.params.yaml | 73 - .../func/func_async.ets | 30 - .../func/func_async.params.yaml | 67 - .../func/func_classes1.ets | 47 - .../func/func_classes1.params.yaml | 38 - .../func/func_classes2.ets | 47 - .../func/func_classes2.params.yaml | 41 - .../func/func_enums1.ets | 44 - .../func/func_enums1.params.yaml | 50 - .../func/func_enums2.ets | 44 - .../func/func_enums2.params.yaml | 50 - .../func/func_enums3.ets | 44 - .../func/func_enums3.params.yaml | 50 - .../func/func_enums4.ets | 44 - .../func/func_enums4.params.yaml | 50 - .../func/func_fixed_arrays1.ets | 52 - .../func/func_fixed_arrays1.params.yaml | 60 - .../func/func_fixed_arrays2.ets | 52 - .../func/func_fixed_arrays2.params.yaml | 63 - .../func/func_functions.ets | 51 - .../func/func_functions.params.yaml | 61 - .../func/func_impl_sig.ets | 30 - .../func/func_impl_sig.params.yaml | 59 - .../func/func_interfaces1.ets | 47 - .../func/func_interfaces1.params.yaml | 38 - .../func/func_interfaces2.ets | 47 - .../func/func_interfaces2.params.yaml | 41 - .../func/func_neg.ets | 28 - .../func/func_neg.params.yaml | 45 - .../func/func_numeric.ets | 45 - .../func/func_numeric.params.yaml | 102 - .../func/func_order.ets | 30 - .../func/func_order.params.yaml | 78 - .../func/func_rest.ets | 30 - .../func/func_rest.params.yaml | 102 - .../func/func_single.ets | 30 - .../func/func_single.params.yaml | 50 - .../func/func_tuples.ets | 46 - .../func/func_tuples.params.yaml | 39 - .../meth/meth_access.ets | 28 - .../meth/meth_access.params.yaml | 134 - .../meth/meth_arrays1.ets | 55 - .../meth/meth_arrays1.params.yaml | 73 - .../meth/meth_arrays2.ets | 55 - .../meth/meth_arrays2.params.yaml | 73 - .../meth/meth_async.ets | 30 - .../meth/meth_async.params.yaml | 79 - .../meth/meth_classes1.ets | 50 - .../meth/meth_classes1.params.yaml | 38 - .../meth/meth_classes2.ets | 50 - .../meth/meth_classes2.params.yaml | 41 - .../meth/meth_enums1.ets | 47 - .../meth/meth_enums1.params.yaml | 50 - .../meth/meth_enums2.ets | 47 - .../meth/meth_enums2.params.yaml | 50 - .../meth/meth_enums3.ets | 47 - .../meth/meth_enums3.params.yaml | 50 - .../meth/meth_enums4.ets | 47 - .../meth/meth_enums4.params.yaml | 50 - .../meth/meth_fixed_arrays1.ets | 55 - .../meth/meth_fixed_arrays1.params.yaml | 60 - .../meth/meth_fixed_arrays2.ets | 55 - .../meth/meth_fixed_arrays2.params.yaml | 63 - .../meth/meth_functions.ets | 54 - .../meth/meth_functions.params.yaml | 61 - .../meth/meth_impl_sig.ets | 30 - .../meth/meth_impl_sig.params.yaml | 71 - .../meth/meth_interfaces1.ets | 50 - .../meth/meth_interfaces1.params.yaml | 38 - .../meth/meth_interfaces2.ets | 50 - .../meth/meth_interfaces2.params.yaml | 41 - .../meth/meth_neg.ets | 28 - .../meth/meth_neg.params.yaml | 99 - .../meth/meth_numeric.ets | 48 - .../meth/meth_numeric.params.yaml | 102 - .../meth/meth_order.ets | 30 - .../meth/meth_order.params.yaml | 63 - .../meth/meth_single.ets | 30 - .../meth/meth_single.params.yaml | 58 - .../meth/meth_tuples.ets | 49 - .../meth/meth_tuples.params.yaml | 39 - .../c_array_and_tuple_parameters.ets | 49 - .../c_array_and_tuple_parameters.params.yaml | 31 - .../constructor/c_enum_parameters.ets | 56 - .../constructor/c_enum_parameters.params.yaml | 40 - .../constructor/c_numeric_parameters.ets | 63 - .../c_numeric_parameters.params.yaml | 57 - .../c_optional_and_rest_parameters.ets | 49 - ...c_optional_and_rest_parameters.params.yaml | 47 - .../constructor/c_subtyping_params.ets | 46 - .../c_subtyping_params.params.yaml | 23 - .../constructor/overload_constructor.ets | 48 - .../overload_constructor.params.yaml | 26 - .../function/f_array_and_tuple_parameters.ets | 44 - .../f_array_and_tuple_parameters.params.yaml | 31 - .../function/f_enum_parameters.ets | 51 - .../function/f_enum_parameters.params.yaml | 40 - .../function/f_instance_function_overload.ets | 42 - .../f_instance_function_overload.params.yaml | 24 - .../function/f_numeric_parameters.ets | 58 - .../function/f_numeric_parameters.params.yaml | 57 - .../f_optional_and_rest_parameters.ets | 44 - ...f_optional_and_rest_parameters.params.yaml | 47 - .../function/f_subtyping_params.ets | 41 - .../function/f_subtyping_params.params.yaml | 23 - .../function/overload_function.ets | 50 - .../function/overload_function.params.yaml | 51 - .../method/m_array_and_tuple_parameters.ets | 47 - .../m_array_and_tuple_parameters.params.yaml | 31 - .../method/m_enum_parameters.ets | 54 - .../method/m_enum_parameters.params.yaml | 40 - .../method/m_instance_method_overload.ets | 42 - .../m_instance_method_overload.params.yaml | 24 - .../method/m_numeric_parameters.ets | 61 - .../method/m_numeric_parameters.params.yaml | 57 - .../method/m_optional_and_rest_parameters.ets | 47 - ...m_optional_and_rest_parameters.params.yaml | 47 - .../method/m_subtyping_params.ets | 44 - .../method/m_subtyping_params.params.yaml | 23 - .../method/overload_method.ets | 53 - .../method/overload_method.params.yaml | 51 - ...nction_argument_equivalent_neg.params.yaml | 55 - .../legacy_overload_negative.params.yaml | 300 -- .../overload_constructor_negative.ets | 44 - .../overload_constructor_negative.params.yaml | 30 - .../overload_function_negative.ets | 39 - .../overload_function_negative.params.yaml | 30 - .../overload_method_negative.ets | 42 - .../overload_method_negative.params.yaml | 30 - .../function_import_1_source.ets | 31 - .../function_import_1_source.params.yaml | 31 - .../function_import_2_sources.ets | 32 - .../function_import_2_sources.params.yaml | 28 - .../function_import_and_decl.ets | 35 - .../function_import_and_decl.params.yaml | 30 - .../function_import_neg.ets | 33 - .../function_import_neg.params.yaml | 25 - .../modules/function_export_all.ets | 61 - .../11.type_erasure/cast.ets | 28 - .../11.type_erasure/cast.params.yaml | 446 -- .../11.type_erasure/instanceof.ets | 25 - .../11.type_erasure/instanceof.params.yaml | 274 - .../11.type_erasure/instanceof_gen.ets | 25 - .../instanceof_gen.params.yaml | 287 - .../semantic_rules_case_01.ets | 2 +- .../semantic_rules_case_02.ets | 2 +- .../semantic_rules_case_03.ets | 2 +- .../semantic_rules_case_04.ets | 2 +- .../semantic_rules_case_05.ets | 2 +- .../semantic_rules_case_06.ets | 2 +- .../semantic_rules_case_07.ets | 2 +- .../semantic_rules_case_08.ets | 2 +- .../semantic_rules_case_09.ets | 2 +- .../semantic_rules_case_10.ets | 2 +- .../semantic_rules_case_11.ets | 2 +- .../semantic_rules_case_12.ets | 2 +- .../semantic_rules_case_13.ets | 2 +- .../semantic_rules_case_14.ets | 2 +- .../semantic_rules_case_15.ets | 2 +- .../semantic_rules_case_16.ets | 2 +- .../semantic_rules_case_19.ets | 2 +- .../semantic_rules_case_20.ets | 2 +- .../semantic_rules_case_21.ets | 4 +- .../semantic_rules_case_22.ets | 2 +- .../semantic_rules_case_23.ets | 2 +- .../semantic_rules_case_24.ets | 2 +- .../semantic_rules_case_25.ets | 2 +- .../semantic_rules_case_27.ets | 2 +- .../semantic_rules_case_28.ets | 2 +- .../semantic_rules_case_29.ets | 2 +- .../semantic_rules_case_31.ets | 2 +- .../01.character_literals/char_literals.ets | 12 +- .../01.character_literals/char_literals_n.ets | 3 +- .../char_literals_n.params.yaml | 3 - .../char_literals_spec_examples.ets | 11 +- .../01.character_literals/cond_func_ref.ets | 32 - .../cond_func_ref.params.yaml | 23 - .../01.character_literals/cond_func_val.ets | 32 - .../cond_func_val.params.yaml | 25 - .../cond_func_val_n0.ets | 31 - .../cmp_ref.ets | 30 - .../cmp_ref.params.yaml | 45 - .../cmp_val.ets | 30 - .../cmp_val.params.yaml | 45 - .../addition/add_arr_ref.ets | 6 +- .../addition/add_arr_ref.params.yaml | 2 +- .../addition}/add_arr_val.ets | 7 +- .../addition}/add_arr_val.params.yaml | 6 +- .../addition/add_func_ref.ets | 6 +- .../addition/add_func_ref.params.yaml | 6 +- .../addition/add_func_val.ets | 6 +- .../addition/add_func_val.params.yaml | 6 +- .../ch.ets | 0 .../ch.params.yaml | 2 + .../ch1.ets | 2 +- .../ch1.params.yaml | 2 +- .../comparison/cmp_ref.ets | 30 + .../comparison/cmp_ref.params.yaml | 53 + .../comparison/cmp_val.ets | 30 + .../comparison/cmp_val.params.yaml | 53 + .../concat}/conc2.ets | 2 +- .../concat}/conc2.params.yaml | 12 +- .../concat/conc_ref.ets | 38 + .../concat/conc_ref.params.yaml | 2 +- .../concat/conc_val.ets | 38 + .../concat/conc_val.params.yaml | 2 +- .../conditional/cond_exp_val.ets | 4 +- .../conditional/cond_exp_val.params.yaml | 6 +- .../conditional}/cond_fld_val.ets | 2 +- .../conditional}/cond_fld_val.params.yaml | 10 +- .../conditional/cond_func_ref.ets | 32 + .../conditional/cond_func_ref.params.yaml | 38 + .../conditional/cond_func_val.ets | 32 + .../conditional/cond_func_val.params.yaml | 43 + .../conditional/cond_func_val_n0.ets | 31 + .../decrement/dec_arr_ref.ets | 6 +- .../decrement/dec_arr_ref.params.yaml | 2 +- .../decrement/dec_arr_val.ets | 6 +- .../decrement/dec_arr_val.params.yaml | 2 +- .../decrement/dec_func_ref.ets | 8 +- .../decrement/dec_func_ref.params.yaml | 18 +- .../decrement/dec_func_val.ets | 8 +- .../decrement/dec_func_val.params.yaml | 18 +- .../increment/inc_arr_ref.ets | 6 +- .../increment/inc_arr_ref.params.yaml | 2 +- .../increment/inc_arr_val.ets | 6 +- .../increment/inc_arr_val.params.yaml | 2 +- .../increment/inc_func_ref.ets | 8 +- .../increment/inc_func_ref.params.yaml | 18 +- .../increment/inc_func_val.ets | 8 +- .../increment/inc_func_val.params.yaml | 18 +- .../subtraction/sub_arr_ref.ets | 6 +- .../subtraction/sub_arr_ref.params.yaml | 2 +- .../subtraction}/sub_arr_val.ets | 5 +- .../subtraction}/sub_arr_val.params.yaml | 6 +- .../subtraction/sub_func_ref.ets | 6 +- .../subtraction/sub_func_ref.params.yaml | 6 +- .../subtraction/sub_func_val.ets | 6 +- .../subtraction/sub_func_val.params.yaml | 6 +- .../unary}/unary_ref.ets | 6 +- .../unary}/unary_ref.params.yaml | 4 + .../unary}/unary_val.ets | 6 +- .../unary}/unary_val.params.yaml | 4 + .../fixed_array_creation_con1.ets | 58 - .../fixed_array_creation_con1.params.yaml | 133 - .../fixed_array_creation_con2.ets | 58 - .../fixed_array_creation_con2.params.yaml | 242 - .../fixed_array_creation_con3.ets | 58 - .../fixed_array_creation_con3.params.yaml | 360 -- .../fixed_array_creation_lit.ets | 40 - .../fixed_array_creation_lit.params.yaml | 323 -- .../02.fixed_array_types/far1.params.yaml | 42 +- .../02.fixed_array_types/far2.ets | 4 +- .../02.fixed_array_types/far2.params.yaml | 4 +- .../02.fixed_array_types/far3.params.yaml | 19 +- .../fixed_array.params.yaml | 4 +- .../02.fixed_array_types/fixed_array_n_rt.ets | 28 + .../fixed_array_n_rt.params.yaml | 18 + .../fixed_array_types_21.ets | 2 +- .../fixed_array_types_ext.ets | 16 +- .../fixed_array_types_ext.params.yaml | 543 +- .../expr.ets | 4 +- .../expr.params.yaml | 258 + .../expr_n.ets | 0 .../expr_n.params.yaml | 0 .../array_create_from_literal.ets | 30 + .../array_create_from_literal.params.yaml | 31 + ...array_create_from_type_parameter_neg_0.ets | 0 ...array_create_from_type_parameter_neg_1.ets | 0 ...array_create_from_type_parameter_neg_2.ets | 0 ...array_create_from_type_parameter_neg_3.ets | 0 .../array_creation_expressions.ets | 0 .../array_creation_expressions.params.yaml | 0 .../expr.ets | 0 .../expr.params.yaml | 107 + .../expr_n.ets | 0 .../expr_n.params.yaml | 4 +- .../expr.params.yaml | 399 -- .../expr_oome.ets | 32 - .../expr_oome.params.yaml | 31 - .../array_create_from_con1.ets | 58 - .../array_create_from_con1.params.yaml | 223 - .../array_create_from_con2.ets | 58 - .../array_create_from_con2.params.yaml | 321 -- .../array_create_from_con3.ets | 58 - .../array_create_from_con3.params.yaml | 417 -- .../array_create_from_lit1.ets | 47 - .../array_create_from_lit1.params.yaml | 32 - .../array_create_from_lit2.ets | 40 - .../array_create_from_lit2.params.yaml | 323 -- .../expr.params.yaml | 107 - .../enum_double_cte.ets | 36 - .../enum_double_cte.params.yaml | 88 - .../enum_double_decl.ets | 34 - .../enum_double_decl.params.yaml | 155 - .../enum_export_decl.ets | 54 - .../enum_export_decl.params.yaml | 307 -- .../enum_export_module_byte.ets | 31 - .../enum_export_module_double.ets | 31 - .../enum_export_module_float.ets | 31 - .../enum_export_module_int.ets | 31 - .../enum_export_module_long.ets | 31 - .../enum_export_module_short.ets | 31 - .../enum_export_module_string.ets | 31 - .../enum_float_cte.ets | 36 - .../enum_float_cte.params.yaml | 105 - .../enum_float_decl.ets | 34 - .../enum_float_decl.params.yaml | 155 - .../enum_integer_types_common_cte.ets | 59 - .../enum_integer_types_common_cte.params.yaml | 223 - .../enum_integer_types_common_decl.ets | 59 - ...enum_integer_types_common_decl.params.yaml | 839 --- .../enum_long_decl.ets | 34 - .../enum_long_decl.params.yaml | 151 - .../enum_string_cte.ets | 37 - .../enum_string_cte.params.yaml | 112 - .../enum_string_decl.ets | 34 - .../enum_string_decl.params.yaml | 179 - .../cte.ets | 0 .../cte.params.yaml | 0 .../ind_class.ets | 0 .../ind_class.params.yaml | 0 .../ind_expr.ets | 0 .../ind_expr.params.yaml | 0 .../ind_interface.ets | 0 .../ind_interface.params.yaml | 0 .../it.ets | 0 .../it.params.yaml | 0 .../ct_invoke.ets | 0 .../ct_invoke.params.yaml | 0 .../ct_invoke_access.ets | 0 .../ct_invoke_access.params.yaml | 0 .../ct_inst.ets | 0 .../ct_inst.params.yaml | 0 .../ct_inst1.ets | 0 .../ct_inst1.params.yaml | 0 .../ct_inst_access.ets | 0 .../ct_inst_access.params.yaml | 0 .../ct.ets | 0 .../ct.params.yaml | 0 .../ct1.ets | 0 .../ct1.params.yaml | 0 .../01.for-of_type_annotation/for_of.ets | 0 .../for_of.params.yaml | 4 +- .../01.for-of_type_annotation/for_of_n.ets | 0 .../for_of_n.params.yaml | 0 .../fn_overloading.ets | 152 + .../fn_overloading.params.yaml | 55 + .../fn_overloading2.ets | 35 + .../fn_overloading2.params.yaml | 19 + .../fn_overloading3.ets | 40 + .../fn_overloading3.params.yaml | 18 + .../fn_overloading4.ets | 46 + .../fn_overloading4.params.yaml | 19 + .../fn_overloading5.ets | 30 + .../fn_overloading5.params.yaml | 32 + .../fn_overloading_n.ets | 32 + .../fn_overloading_n.params.yaml | 133 + .../02.class_method_overloading}/cm_over1.ets | 0 .../cm_over1.params.yaml | 529 ++ .../02.class_method_overloading}/cm_over2.ets | 0 .../cm_over2.params.yaml | 100 +- .../02.class_method_overloading}/cm_over3.ets | 0 .../cm_over3.params.yaml | 71 +- .../03.constructor_overloading}/co1_over.ets | 0 .../co1_over.params.yaml | 382 ++ .../03.constructor_overloading}/co2_over.ets | 0 .../co2_over.params.yaml | 76 +- .../03.constructor_overloading}/co3_over.ets | 0 .../co3_over.params.yaml | 99 +- .../dist.ets | 30 + .../dist.params.yaml | 37 + .../overload.ets | 29 + .../overload.params.yaml | 26 + .../overload_neg.ets | 29 + .../overload_neg.params.yaml | 55 + .../01.native_functions/nat1.ets | 0 .../01.native_functions/nat10.ets | 0 .../01.native_functions/nat11.ets | 0 .../01.native_functions/nat2.ets | 0 .../01.native_functions/nat3.ets | 0 .../01.native_functions/nat4.ets | 0 .../01.native_functions/nat5.ets | 0 .../01.native_functions/nat6.ets | 0 .../01.native_functions/nat7.ets | 0 .../01.native_functions/nat8.ets | 0 .../01.native_functions/nat9.ets | 0 .../native_method_declaration.ets | 0 .../native_method_declaration_with_body.ets | 0 ...ative_method_declaration_with_keywords.ets | 0 ...thod_declaration_with_keywords.params.yaml | 0 .../03.native_constructors/natc1_1.ets | 0 .../03.native_constructors/natc1_2.ets | 0 .../03.native_constructors/natc1_3.ets | 0 .../03.native_constructors/natc_local_1.ets | 0 .../03.native_constructors/natc_local_2.ets | 0 .../legacy_negative/fn_legacy_overload_1.ets | 78 - .../legacy_negative/fn_legacy_overload_2.ets | 33 - .../legacy_negative/fn_legacy_overload_3.ets | 40 - .../legacy_negative/fn_legacy_overload_4.ets | 35 - .../legacy_negative/fn_legacy_overload_5.ets | 35 - .../fn_legacy_overload_5.params.yaml | 20 - .../legacy_negative/fn_legacy_overload_6.ets | 28 - .../fn_legacy_overload_6.params.yaml | 133 - .../module.ets | 23 - .../not_accessible_function_negative.ets | 54 - ...t_accessible_function_negative.params.yaml | 27 - .../overload_export.ets | 40 - .../overload_export.params.yaml | 28 - .../overload_location.ets | 48 - .../overload_location.params.yaml | 27 - ...rload_of_overload_declaration_negative.ets | 38 - ..._overload_declaration_negative.params.yaml | 18 - ...verload_of_overload_signature_negative.ets | 38 - ...of_overload_signature_negative.params.yaml | 18 - .../cm_over1.params.yaml | 494 -- .../im_over2.params.yaml | 132 - ...ultiple_interfaces_inheritance.params.yaml | 84 - .../single_interface_overload.ets | 29 - .../single_interface_overload.params.yaml | 75 - .../co1_over.params.yaml | 367 -- .../01.final_classes/extend_final_class.ets | 0 .../01.final_classes/fc.ets | 0 .../01.final_classes/fc.params.yaml | 6 +- .../final_class_declaration.ets | 0 ...inal_class_declaration_and_inheritance.ets | 2 +- .../override_methods_of_final_class.ets | 0 ...al_declaration_with_modifiers_negative.ets | 0 ...ration_with_modifiers_negative.params.yaml | 0 ...al_declaration_with_modifiers_positive.ets | 0 ...ration_with_modifiers_positive.params.yaml | 0 .../02.final_methods/final_method_call.ets | 2 +- ..._method_call_from_another_final_method.ets | 2 +- .../final_method_derived_class_call.ets | 2 +- .../final_method_inside_class_call.ets | 2 +- .../final_with_overrided_method.ets | 0 .../02.final_methods/fm.ets | 0 .../02.final_methods/fm.params.yaml | 4 +- .../02.final_methods/hiding_final_method.ets | 0 .../overriding_final_method.ets | 0 .../ConstructorNameOverload.ets | 44 - .../NameAsReferenceBad.ets | 29 - .../03.constructor_names/ShortFormCall_0.ets | 42 - .../03.constructor_names/ShortFormCall_1.ets | 38 - .../03.constructor_names/ShortFormCall_2.ets | 42 - .../03.constructor_names/SpecExample0.ets | 42 - .../SpecExample1_Bad_0.ets | 28 - .../SpecExample1_Bad_1.ets | 28 - .../SpecExample1_Good_0.ets | 28 - .../SpecExample1_Good_1.ets | 28 - .../use_named_via_this.ets | 42 - .../use_super_from_name.ets | 49 - .../use_this_from_name.ets | 46 - .../default_interface_method1.ets | 4 +- .../default_interface_method2.ets | 6 +- .../default_interface_method_n1.ets | 0 .../default_interface_method_n2.ets | 0 .../default_interface_method_n3.ets | 0 .../private_interface_methods1.ets | 2 +- .../private_interface_methods2.ets | 2 +- .../01.functions_with_receiver/a.ets | 23 + .../01.functions_with_receiver/a1.ets | 25 + .../functions_with_receiver.ets | 0 .../functions_with_receiver.params.yaml | 175 + .../functions_with_receiver_negative.ets | 0 ...nctions_with_receiver_negative.params.yaml | 36 + .../01.functions_with_receiver/i.ets | 5 +- .../01.functions_with_receiver/i1.ets | 5 +- .../functions_with_receiver.ets | 0 .../functions_with_receiver.params.yaml | 59 + .../functions_with_receiver_negative.ets} | 0 ...nctions_with_receiver_negative.params.yaml | 20 + .../accessors_with_receiver.ets | 0 .../accessors_with_receiver.params.yaml | 0 .../accessors_with_receiver_negative.ets} | 0 ...cessors_with_receiver_negative.params.yaml | 0 .../function_types_with_receiver.ets | 0 .../function_types_with_receiver.params.yaml | 22 +- .../function_types_with_receiver_negative.ets | 30 + ...n_types_with_receiver_negative.params.yaml | 0 .../lambda_expressions_with_receiver.ets | 0 ...mbda_expressions_with_receiver.params.yaml | 75 + .../implicit_this_in_lambda.ets | 1 + .../implicit_this_in_lambda.params.yaml | 79 + .../implicit_this_in_lambda_negative.ets | 0 ...plicit_this_in_lambda_negative.params.yaml | 0 .../extension_functions_array.ets | 0 .../extension_functions_array.params.yaml | 30 +- .../extension_functions_class.ets | 0 .../extension_functions_class.params.yaml | 22 +- .../extension_functions_interface.ets | 0 .../extension_functions_interface.params.yaml | 14 +- .../01.functions_with_receiver/a.ets | 24 - .../01.functions_with_receiver/a1.ets | 26 - .../functions_with_receiver.params.yaml | 209 - ...nctions_with_receiver_negative.params.yaml | 46 - .../functions_with_receiver.params.yaml | 179 - .../functions_with_receiver_negative.ets | 26 - ...nctions_with_receiver_negative.params.yaml | 21 - ...mbda_expressions_with_receiver.params.yaml | 240 - ...bda_expressions_with_receiver_negative.ets | 26 - ...essions_with_receiver_negative.params.yaml | 21 - .../implicit_this_in_lambda.params.yaml | 79 - .../trlambda_func.ets | 0 .../trlambda_func.params.yaml | 268 + .../trlambda_met.ets | 0 .../trlambda_met.params.yaml | 173 + .../trlambda_static_met.ets | 0 .../trlambda_static_met.params.yaml | 173 + .../enum_type_methods_getname.ets | 2 +- .../enum_type_methods_getname_1.ets | 2 +- .../enum_type_methods_getvalue_0.ets | 2 +- .../enum_type_methods_getvalue_1.ets | 2 +- .../enum_type_methods_getvalue_tostring.ets | 2 +- .../enum_type_methods_getvalue_tostring_1.ets | 2 +- .../enum_type_methods_getvalueof.ets | 8 +- .../enum_type_methods_getvalueof_1.ets | 6 +- .../enum_type_methods_pipeline.ets | 7 +- .../enum_type_methods_values.ets | 8 +- .../enum_type_methods_values_1.ets | 8 +- .../14.trailing_lambdas/trlambda_ctor.ets | 31 - .../trlambda_ctor.params.yaml | 84 - .../trlambda_func.params.yaml | 330 -- .../trlambda_met.params.yaml | 310 -- .../trlambda_static_met.params.yaml | 237 - .../15.coroutines/awaiting_coroutine}/a.ets | 0 .../awaiting_coroutine}/a.params.yaml | 36 +- .../15.coroutines/awaiting_coroutine}/a_n.ets | 0 .../awaiting_coroutine}/a_n.params.yaml | 0 .../awaiting_coroutine_ext.ets} | 0 .../awaiting_coroutine_ext.params.yaml | 14 +- .../15.coroutines/coroutines_ext.ets | 28 + .../15.coroutines}/coroutines_ext.params.yaml | 4 +- .../15.coroutines/promise_class}/p.ets | 0 .../promise_class}/p.params.yaml | 22 +- .../01.async_functions/afunc.ets | 0 .../01.async_functions/afunc.params.yaml | 207 +- .../01.async_functions/afunc_n.ets | 4 +- .../01.async_functions/afunc_n.params.yaml | 18 - .../01.async_functions/async_functions0.ets | 2 +- .../01.async_functions/async_functions1.ets | 2 +- .../01.async_functions/async_functions10.ets | 2 +- .../01.async_functions/async_functions11.ets | 2 +- .../01.async_functions/async_functions12.ets | 2 +- .../01.async_functions/async_functions13.ets | 2 +- .../01.async_functions/async_functions14.ets | 2 +- .../01.async_functions/async_functions15.ets | 2 +- .../01.async_functions/async_functions16.ets | 0 .../01.async_functions/async_functions17.ets | 2 +- .../01.async_functions/async_functions18.ets | 2 +- .../01.async_functions/async_functions19.ets | 2 +- .../01.async_functions/async_functions2.ets | 2 +- .../01.async_functions/async_functions20.ets | 2 +- .../01.async_functions/async_functions21.ets | 2 +- .../01.async_functions/async_functions22.ets | 2 +- .../01.async_functions/async_functions23.ets | 4 +- .../01.async_functions/async_functions24.ets | 6 +- .../01.async_functions/async_functions25.ets | 4 +- .../01.async_functions/async_functions26.ets | 2 +- .../01.async_functions/async_functions27.ets | 2 +- .../01.async_functions/async_functions28.ets | 2 +- .../01.async_functions/async_functions29.ets | 2 +- .../01.async_functions/async_functions3.ets | 2 +- .../01.async_functions/async_functions30.ets | 2 +- .../01.async_functions/async_functions31.ets | 2 +- .../01.async_functions/async_functions4.ets | 0 .../01.async_functions/async_functions5.ets | 0 .../01.async_functions/async_functions6.ets | 4 +- .../01.async_functions/async_functions7.ets | 2 +- .../01.async_functions/async_functions8.ets | 4 +- .../01.async_functions/async_functions9.ets | 2 +- .../02.async_methods}/ameth.ets | 0 .../02.async_methods}/ameth.params.yaml | 218 +- .../02.async_methods}/ameth_n.ets | 0 .../02.async_methods}/ameth_n.params.yaml | 0 .../02.async_methods}/async_method0.ets | 2 +- .../02.async_methods}/async_method1.ets | 2 +- .../02.async_methods}/async_method10.ets | 2 +- .../02.async_methods}/async_method11.ets | 2 +- .../02.async_methods}/async_method12.ets | 2 +- .../02.async_methods}/async_method13.ets | 2 +- .../02.async_methods}/async_method14.ets | 2 +- .../02.async_methods}/async_method15.ets | 4 +- .../02.async_methods}/async_method16.ets | 6 +- .../02.async_methods}/async_method17.ets | 2 +- .../02.async_methods}/async_method18.ets | 2 +- .../02.async_methods}/async_method19.ets | 2 +- .../02.async_methods}/async_method2.ets | 2 +- .../02.async_methods}/async_method20.ets | 2 +- .../02.async_methods}/async_method21.ets | 2 +- .../02.async_methods}/async_method22.ets | 4 +- .../02.async_methods}/async_method23.ets | 2 +- .../02.async_methods}/async_method24.ets | 6 +- .../02.async_methods}/async_method25.ets | 2 +- .../02.async_methods}/async_method26.ets | 2 +- .../02.async_methods}/async_method27.ets | 2 +- .../02.async_methods}/async_method28.ets | 2 +- .../02.async_methods}/async_method29.ets | 2 +- .../02.async_methods}/async_method3.ets | 2 +- .../02.async_methods}/async_method30.ets | 2 +- .../02.async_methods}/async_method4.ets | 2 +- .../02.async_methods}/async_method5.ets | 0 .../02.async_methods}/async_method6.ets | 2 +- .../02.async_methods}/async_method7.ets | 2 +- .../02.async_methods}/async_method8.ets | 2 +- .../02.async_methods}/async_method9.ets | 2 +- .../16.packages/init_once/test.ets | 33 - .../16.packages/init_order/test.ets | 33 - .../internal_interface_access_in_package.ets | 0 .../Test/Test02/class_c.ets | 0 .../Test02/internal_access_in_package02.ets | 2 +- .../Test03/internal_access_in_package03.ets | 2 +- ...internal_constructor_access_in_package.ets | 0 .../internal_member_access_in_package.ets | 0 ...ernal_member_access_in_package.params.yaml | 0 .../internal_constructor_access.ets | 0 .../internal_interface_access.ets | 0 .../internal_member_access.ets | 0 .../internal_member_access.params.yaml | 0 .../02.package_initializer}/p1/init1_1.ets | 2 +- .../02.package_initializer}/p2/init2_1.ets | 4 +- .../02.package_initializer}/p3/main_test.ets | 0 .../p3/packageP3/init3_1.ets | 0 .../p3/packageP3/init3_2.ets | 0 .../02.package_initializer}/p4/init4_1.ets | 0 .../02.package_initializer}/p4/init4_2.ets | 2 +- .../02.package_initializer}/p5/init5_1.ets | 0 .../02.package_initializer}/p6/init6_1.ets | 0 .../bad_package_declarations.ets | 0 .../bad_package_declarations.params.yaml | 0 .../pkg_a/pkg.ets | 0 .../pkg_a/pkg.params.yaml | 0 .../pkg_b/pkg.ets | 0 .../pkg_b/pkg.params.yaml | 0 .../pkgs_0.ets | 5 +- .../pkgs_0.params.yaml | 10 +- .../pkgs_a.ets | 5 +- .../pkgs_a.params.yaml | 0 .../pkgs_a2.ets | 0 .../pkgs_a2.params.yaml | 0 .../pkgs_a3.ets | 0 .../pkgs_a3.params.yaml | 0 .../pkgs_ab.ets | 0 .../pkgs_ab.params.yaml | 0 .../pkgs_ab2.ets | 0 .../pkgs_ab2.params.yaml | 0 .../pkgs_ab3.ets | 0 .../pkgs_ab3.params.yaml | 0 .../shadow_function_alias.ets | 2 +- .../shadow_function_explicit_name.ets | 2 +- .../shadow_function_name.ets | 2 +- .../package_declarations.ets | 0 .../package_declarations.params.yaml | 0 .../01.non_nullish_type_parameter/ex0.ets | 4 +- .../01.non_nullish_type_parameter/ex1.ets | 4 +- .../01.non_nullish_type_parameter/ex2.ets | 4 +- .../01.non_nullish_type_parameter/ex2_1.ets | 4 +- .../01.non_nullish_type_parameter/ex3.ets | 2 +- .../01.non_nullish_type_parameter/ex3_1.ets | 4 +- .../01.non_nullish_type_parameter/ex4.ets | 2 +- .../01.non_nullish_type_parameter/ex4_1.ets | 4 +- .../01.non_nullish_type_parameter/ex5.ets | 4 +- .../generics_nonull_return.ets | 2 +- .../generics_nonull_return0.ets | 2 +- .../generics_nonull_return00.ets | 2 +- .../generics_nonull_return1.ets | 2 +- .../generics_nonull_return11.ets | 2 +- .../generics_nonull_return3.ets | 2 +- .../generics_nonull_return5.ets | 2 +- .../generics_nonull_return7.ets | 0 .../generics_nonull_return9.ets | 2 +- .../generics_nonull_return_ext.ets | 28 + .../generics_nonull_return_ext.params.yaml | 18 +- .../annotation_places.ets | 32 +- .../using_annotations.params.yaml | 8 - .../AnnotationTargets.ets | 42 - .../AnnotationTargets.params.yaml | 192 - .../02.target_annotation/Annotations.ets | 56 - .../02.target_annotation/ClassAnnoTest.ets | 102 - .../duplicated_target_0.ets | 26 - .../duplicated_target_1.ets | 26 - .../use_annotation_with_type_bad.ets | 28 - .../01.import_path_lookup/ipl01.ets | 2 +- .../01.import_path_lookup/ipl02.ets | 2 +- .../01.import_path_lookup/ipl03.ets | 4 +- .../01.import_path_lookup/ipl04.ets | 2 +- .../01.import_path_lookup/ipl05.ets | 2 +- .../01.import_path_lookup/ipl06.ets | 2 +- .../compilation_units_in_host_system_0.ets | 2 +- .../compilation_units_in_host_system_1.ets | 2 +- .../compilation_units_in_host_system_2.ets | 4 +- .../compilation_units_in_host_system_3.ets | 4 +- .../compilation_units_in_host_system_4.ets | 4 +- .../compilation_units_in_host_system_5.ets | 4 +- .../compilation_units_in_host_system_7.ets | 2 +- .../compilation_units_in_host_system_8.ets | 4 +- ...to_get_type_via_reflection_ext.params.yaml | 165 - .../how_to_get_type_via_reflection_ext.ets | 6 - ...to_get_type_via_reflection_ext.params.yaml | 169 + .../init_module_first.ets | 28 - .../init_module_first.params.yaml | 138 - .../init_module_second.ets | 28 - .../init_module_second.params.yaml | 70 - .../negative_test_cte.ets | 33 - .../negative_test_cte.params.yaml | 48 - .../negative_test_cte_module.ets | 23 - .../negative_test_rte.ets | 33 - .../negative_test_rte.ets.expected.err | 20 - .../negative_test_rte.params.yaml | 22 - .../negative_test_rte_module.ets | 27 - .../positive_test.ets | 36 - .../positive_test.params.yaml | 145 - .../shared_vars_module.ets | 28 - .../struct_class_test.ets | 7 +- .../struct_empty_class.ets | 0 .../struct_extends_class.ets | 10 +- .../struct_implements_interface.ets | 13 +- .../struct_simple_class.ets | 0 .../test.ets | 0 .../test.params.yaml | 0 .../contant_and_function.ets | 2 +- .../contant_and_function.params.yaml | 0 .../cycle_assignment.ets | 6 +- .../cycle_assignment.params.yaml | 0 .../two_constants.ets | 6 +- .../two_constants.params.yaml | 0 .../unique_function.ets | 2 +- .../unique_function.params.yaml | 0 .../bt.ets | 2 +- .../bt_default.ets | 36 +- .../bt_nan.ets | 4 +- .../catch.params.yaml | 10 +- .../catch2.ets | 2 +- .../spec_example.ets | 4 +- .../func.params.yaml | 6 +- .../lmbd.params.yaml | 6 +- .../meth.params.yaml | 6 +- .../conversions/conversions.params.yaml | 16 - .../assn_var/assn-var-neg.params.yaml | 2 +- .../assn_var/assn-var.ets | 2 +- .../assn_var/assn-var.params.yaml | 2 +- .../call_cons/call-cons-nan.ets | 2 +- .../call_cons/call-cons.ets | 2 +- .../call_func/call-func-nan.ets | 2 +- .../call_func/call-func.ets | 2 +- .../call_lmbd/call-lmbd-nan.ets | 2 +- .../call_lmbd/call-lmbd.ets | 2 +- .../call_meth/call-meth-nan.ets | 2 +- .../call_meth/call-meth.ets | 2 +- .../comp_arr/comp-arr-nan.ets | 2 +- .../comp_arr/comp-arr.ets | 2 +- .../comp_obj/comp-clss-nan.ets | 2 +- .../comp_obj/comp-clss.ets | 2 +- .../comp_obj/comp-intf-nan.ets | 2 +- .../comp_obj/comp-intf.ets | 2 +- .../decl_const/decl-const-nan.ets | 2 +- .../decl_const/decl-const.ets | 2 +- .../decl_field/decl-field-nan.ets | 2 +- .../decl_field/decl-field.ets | 2 +- .../decl_var/decl-var.ets | 2 +- .../generic_function_constraint.ets | 2 +- .../prim_narrowing.params.yaml | 82 - .../prim_wide_narrow.params.yaml | 21 - .../unboxing.ets | 29 - .../sample_p.ets | 29 - .../value_p.ets | 27 - .../identity.params.yaml | 34 - .../assn_var/assn-var-n.params.yaml | 44 - .../assn_var/assn-var-n3.params.yaml | 63 - .../assn_var/assn-var.ets | 36 - .../assn_var/assn-var.params.yaml | 28 - .../comp_arr/comp-arr-n.params.yaml | 44 - .../comp_arr/comp-arr-n3.params.yaml | 63 - .../comp_arr/comp-arr.ets | 34 - .../comp_arr/comp-arr.params.yaml | 28 - .../comp_obj/comp-class-n3.params.yaml | 63 - .../comp_obj/comp-clss-n.params.yaml | 44 - .../comp_obj/comp-clss.ets | 36 - .../comp_obj/comp-clss.params.yaml | 28 - .../comp_obj/comp-intf-n.params.yaml | 44 - .../comp_obj/comp-intf-n3.params.yaml | 63 - .../comp_obj/comp-intf.ets | 36 - .../comp_obj/comp-intf.params.yaml | 28 - .../decl_const/decl-const-n.params.yaml | 44 - .../decl_const/decl-const-n3.params.yaml | 63 - .../decl_field/decl-field-n.params.yaml | 44 - .../decl_field/decl-field-n3.params.yaml | 63 - .../decl_field/decl-st-field-n.params.yaml | 44 - .../decl_field/decl-st-field-n3.params.yaml | 63 - .../decl_var/decl-var-n.params.yaml | 44 - .../decl_var/decl-var-n3.params.yaml | 63 - .../05.widening_reference_conversions/ase.ets | 42 + .../assn_var/assn-var.params.yaml | 201 - .../call_cons/call-cons.params.yaml | 201 - .../call_func/call-func.params.yaml | 201 - .../call_lmbd/call-lmbd.params.yaml | 201 - .../call_meth/call-meth.params.yaml | 201 - .../comp_arr/comp-arr.params.yaml | 201 - .../comp_obj/comp-clss.params.yaml | 201 - .../comp_obj/comp-intf.params.yaml | 201 - .../decl_const/decl-const.params.yaml | 201 - .../decl_field/decl-field.params.yaml | 201 - .../decl_var/decl-var.params.yaml | 201 - .../assn_var/assn-var.ets | 35 - .../call_cons/call-cons.ets | 39 - .../call_func/call-func.ets | 36 - .../call_lmbd/call-lmbd.ets | 34 - .../call_meth/call-meth.ets | 39 - .../comp_arr/comp-arr.ets | 32 - .../comp_obj/comp-clss.ets | 37 - .../decl_field/decl-field.ets | 37 - .../decl_var/decl-var.ets | 31 - .../assn_var/assn-var.ets | 42 - .../assn_var/assn-var_p.ets | 33 - .../call_cons/call-cons.ets | 38 - .../call_cons/call-cons_p.ets | 37 - .../call_func/call-func.ets | 32 - .../call_func/call-func_p.ets | 33 - .../call_lmbd/call-lmbd.ets | 29 - .../call_lmbd/call-lmbd_p.ets | 31 - .../call_meth/call-meth.ets | 34 - .../call_meth/call-meth_p.ets | 35 - .../comp_arr/comp-arr.ets | 29 - .../comp_arr/comp-arr_p.ets | 29 - .../comp_obj/comp-obj.ets | 32 - .../comp_obj/comp-obj_p.ets | 34 - .../decl_field/decl-field.ets | 32 - .../decl_field/decl-field_p.ets | 33 - .../decl_var/decl-var.ets | 49 - .../decl_var/decl-var_p.ets | 38 - .../assn_var/assn-var.ets | 35 - .../call_cons/call-cons.ets | 36 - .../call_func/call-func.ets | 38 - .../call_lmbd/call-lmbd.ets | 35 - .../call_meth/call-meth.ets | 46 - .../comp_arr/comp-arr.ets | 35 - .../comp_obj/comp-intf.ets | 34 - .../comp_obj/comp-obj.ets | 35 - .../decl_field/decl-field.ets | 36 - .../decl_var/decl-var.ets | 33 - .../03.class_members/acc/pkgmod.params.yaml | 18 +- .../03.class_members/acc/sepmod.params.yaml | 10 +- .../03.class_members/{conn => con}/pkgmod.ets | 0 .../03.class_members/con/pkgmod.params.yaml | 60 + .../03.class_members/{conn => con}/sepmod.ets | 0 .../03.class_members/con/sepmod.params.yaml | 45 + .../03.class_members/conn/pkgmod.params.yaml | 60 - .../03.class_members/conn/sepmod.params.yaml | 45 - .../constructor/pkgmod.params.yaml | 12 +- .../constructor/sepmod.params.yaml | 8 +- .../03.class_members/fld/pkgmod.params.yaml | 18 +- .../03.class_members/fld/sepmod.params.yaml | 10 +- .../03.class_members/met/pkgmod.params.yaml | 18 +- .../03.class_members/met/sepmod.params.yaml | 10 +- .../method_overload_relatioship_1.ets | 4 +- .../class_initializer_with_throws.ets | 2 +- .../default_import_struct.ets | 4 +- .../constructor_call_with_catch.ets | 2 +- .../constructor_call_with_default_catch.ets | 2 +- .../01.throwing_functions/function.ets | 2 +- .../function_call_with_catch.ets | 2 +- .../function_call_with_default_catch.ets | 6 +- .../function_without_keyword.ets | 2 +- .../01.throwing_functions/lambda.ets | 4 +- .../lambda_call_with_catch.ets | 14 +- .../lambda_call_with_default_catch.ets | 8 +- .../lambda_without_keyword.ets | 4 +- .../constructor_with_default_catch.ets | 4 +- .../constructor_without_default_catch.ets | 10 +- .../constructor_without_keyword.ets | 2 +- .../function_with_default_catch.ets | 4 +- .../function_without_default_catch.ets | 10 +- .../lambda_call_without_catch.ets | 6 +- .../lambda_with_default_catch.ets | 14 +- .../lambda_without_default_catch.ets | 10 +- .../rethrowing_function_with_catch.ets | 14 +- ...rethrowing_function_with_default_catch.ets | 6 +- ...ng_function_with_non_throwing_function.ets | 6 +- .../rethrowing_function_with_throw.ets | 2 +- .../rethrowing_function_without_catch.ets | 4 +- .../exc00.ets | 4 +- .../exc00c.ets | 4 +- .../exc01.ets | 4 +- .../exc01c.ets | 4 +- .../exc02.ets | 4 +- .../exc02c.ets | 4 +- .../exc03.ets | 4 +- .../exc03c.ets | 4 +- .../exc04.ets | 4 +- .../exc04c.ets | 4 +- .../exc05.ets | 4 +- .../exc05c.ets | 4 +- .../exc06.ets | 2 +- .../exc06c.ets | 2 +- .../exc07.ets | 4 +- .../exc07c.ets | 4 +- .../exc08.ets | 4 +- .../exc08c.ets | 4 +- .../ini00.ets | 2 +- .../ini00c.ets | 2 +- .../ini01.ets | 2 +- .../ini01c.ets | 2 +- .../spec_example.ets | 4 +- .../fld_arr.params.yaml | 16 +- .../fld_obj.params.yaml | 16 +- .../fld_prim.params.yaml | 16 +- .../fld_prim2.params.yaml | 16 +- .../fld_tup.params.yaml | 16 +- .../15.exceptions/new_exception_define.ets | 6 +- .../throw_exception_with_try_call_0.ets | 4 +- .../throw_exception_with_try_call_1.ets | 2 +- .../different_access_modifiers.ets | 33 - .../different_access_modifiers.params.yaml | 91 - .../ets/tests/ets_es_checked/array.yaml | 17 +- .../tests/ets_es_checked/array_lambas.yaml | 2 +- .../ets/tests/ets_es_checked/data_view.yaml | 28 +- .../ets_es_checked/float32array_lambas.yaml | 2 +- .../ets_es_checked/float64array_lambas.yaml | 2 +- .../ets_es_checked/int16array_lambas.yaml | 2 +- .../ets_es_checked/int32array_lambas.yaml | 2 +- .../ets_es_checked/int8array_lambas.yaml | 2 +- .../ets/tests/ets_es_checked/string.yaml | 8 +- .../ets_es_checked/uint16array_lambas.yaml | 2 +- .../ets_es_checked/uint32array_lambas.yaml | 2 +- .../ets_es_checked/uint8array_lambas.yaml | 2 +- .../uint8clampedarray_lambas.yaml | 2 +- .../algorithms/ChecksumsTest.ets | 2 +- .../ets_func_tests/algorithms/PrimesTest.ets | 8 +- .../ets_func_tests/algorithms/SortingTest.ets | 10 +- .../ets_func_tests/algorithms/StringsTest.ets | 6 +- .../algorithms/division-by-zero-in-class.ets | 16 +- .../ets_func_tests/arkui/dollar_dollar_01.ets | 4 +- .../ets_func_tests/arkui/dollar_dollar_02.ets | 4 +- .../ets_func_tests/arkui/dollar_dollar_03.ets | 4 +- .../ets_func_tests/arkui/dollar_dollar_04.ets | 2 +- .../ets_func_tests/arkui/dollar_dollar_06.ets | 2 +- .../ets_func_tests/arkui/dollar_dollar_07.ets | 2 +- .../ets_func_tests/arkui/dollar_dollar_08.ets | 4 +- .../ets_func_tests/arkui/dollar_dollar_09.ets | 2 +- .../ets_func_tests/arkui/dollar_dollar_10.ets | 2 +- .../ets_func_tests/arkui/dollar_dollar_12.ets | 2 +- .../ets_func_tests/arkui/dollar_dollar_13.ets | 2 +- .../escompat/ArrayBufferTest2.ets | 74 +- .../escompat/ArrayBufferTest3.ets | 83 +- .../escompat/ArrayBufferViewTest.ets | 29 +- .../escompat/ArrayCreateTest.ets | 8 +- .../escompat/ArrayEveryTest.ets | 162 +- .../escompat/ArrayExtendTest.ets | 16 +- .../ets_func_tests/escompat/ArrayFlatTest.ets | 79 - .../ets_func_tests/escompat/ArrayGet.ets | 10 +- .../escompat/ArrayIteratorDone.ets | 72 +- .../escompat/ArrayKeysIteratorTest.ets | 14 +- .../escompat/ArrayProxyTest.ets | 110 +- .../ets_func_tests/escompat/ArraySetTest.ets | 22 +- .../escompat/ArrayShrinkTest.ets | 26 +- .../ets_func_tests/escompat/ArraySort.ets | 64 +- .../ets_func_tests/escompat/ArrayTest1.ets | 136 +- .../ets_func_tests/escompat/ArrayTest2.ets | 7 +- .../ets_func_tests/escompat/ArrayTest3.ets | 25 +- .../ets_func_tests/escompat/ArrayTest4.ets | 25 +- .../ets_func_tests/escompat/ArrayTest5.ets | 6 +- .../ets_func_tests/escompat/ArrayTest6.ets | 6 +- .../ets_func_tests/escompat/ArrayTest7.ets | 102 +- .../ets_func_tests/escompat/ArrayTest8.ets | 14 +- .../escompat/ArrayTestDerived.ets | 8 +- .../ets_func_tests/escompat/ArrayTestFrom.ets | 6 +- .../escompat/ArrayTest_disabled.ets | 22 +- .../ets_func_tests/escompat/BigInt64Test.ets | 61 +- .../ets_func_tests/escompat/BigIntTest.ets | 95 - .../escompat/BuiltinsRegexpTest.ets | 83 - .../ets_func_tests/escompat/DateTest.ets | 693 --- .../escompat/DateToJSONAndToISOStringTest.ets | 7 +- .../escompat/DeManglingTest.ets | 6 +- .../ets_func_tests/escompat/DeepCopyTest.ets | 102 +- .../ets_func_tests/escompat/ErrorCodeTest.ets | 102 +- .../escompat/ErrorStackTest.ets | 4 +- .../ets_func_tests/escompat/ErrorsTest.ets | 122 +- .../escompat/ExceptionsTest.ets | 52 +- .../escompat/Float32ArrayFromTest.ets | 106 - .../escompat/Float64ArrayFromTest.ets | 106 - .../ets_func_tests/escompat/GlobalTest.ets | 2 +- .../escompat/Int16ArrayFromTest.ets | 116 - .../escompat/Int32ArrayFromTest.ets | 106 - .../escompat/Int8ArrayFromTest.ets | 116 - .../escompat/IteratorArrayTest.ets | 2 +- .../escompat/JsonAnnotationTest.ets | 12 +- .../ets_func_tests/escompat/JsonParseTest.ets | 120 +- .../escompat/JsonReplacerTest.ets | 230 +- .../escompat/JsonStringifyArrayTest.ets | 154 - .../JsonStringifyRegExpExecArrayTest.ets | 2 +- .../escompat/JsonStringifyTest.ets | 234 +- .../ets_func_tests/escompat/JsonTest.ets | 62 +- .../escompat/MapForBigIntTest.ets | 86 - .../escompat/MapSetBucketTest.ets | 66 - .../ets_func_tests/escompat/MathClz32Test.ets | 94 +- .../escompat/ObjectLiteralTest.ets | 30 +- .../ets_func_tests/escompat/ProcessTest.ets | 32 +- .../ets_func_tests/escompat/ProxyTest.ets | 140 +- .../escompat/ReadonlyArrayProxyTest.ets | 16 +- .../escompat/ReadonlyArrayTest.ets | 38 +- .../ets_func_tests/escompat/ReflectGet.ets | 109 + .../escompat/ReflectGetBadCases.ets | 176 + .../ets_func_tests/escompat/ReflectHas.ets | 115 + .../escompat/ReflectOwnKeys.ets | 155 + .../ets_func_tests/escompat/ReflectSet.ets | 162 + .../ets_func_tests/escompat/RegExpDtsTest.ets | 825 --- .../escompat/RegExpExecArrayTest.ets | 605 +-- .../escompat/RegExpExecTest.ets | 48 +- .../escompat/RegExpFlagdTest.ets | 41 - .../escompat/RegExpGroupsTest.ets | 4 +- .../escompat/RegExpLastMatchTest.ets | 2 +- .../escompat/RegExpMatchAllTest.ets | 14 +- .../escompat/RegExpMatchArrayTest.ets | 46 +- .../escompat/RegExpReplaceFunctionTest.ets | 51 +- .../ets_func_tests/escompat/RegExpTest.ets | 805 --- .../ets_func_tests/escompat/RuntimeTest.ets | 13 +- .../escompat/TypedArrayCopyCtorTest.ets | 14 +- .../escompat/TypedArraySetUnsafe.ets | 80 - .../escompat/TypedUArraySetUnsafe.ets | 80 - .../escompat/Uint16ArrayFromTest.ets | 114 - .../escompat/Uint32ArrayFromTest.ets | 118 - .../escompat/Uint8ArrayFromTest.ets | 109 - .../escompat/Uint8ClampedArrayFromTest.ets | 111 - .../ets_func_tests/escompat/WeakMapGCTest.ets | 4 +- .../ets_func_tests/escompat/WeakMapTest.ets | 22 +- .../ets_func_tests/escompat/WeakSetGCTest.ets | 4 +- .../ets_func_tests/escompat/WeakSetTest.ets | 18 +- .../regression/12961_loop_and_lambda_000.ets | 2 +- .../regression/12961_loop_and_lambda_001.ets | 2 +- .../regression/12961_loop_and_lambda_002.ets | 2 +- .../regression/12961_loop_and_lambda_003.ets | 2 +- .../regression/12961_loop_and_lambda_010.ets | 2 +- .../regression/12961_loop_and_lambda_020.ets | 2 +- .../regression/12961_loop_and_lambda_021.ets | 2 +- .../regression/12961_loop_and_lambda_030.ets | 2 +- .../regression/12961_loop_and_lambda_040.ets | 2 +- .../regression/12961_loop_and_lambda_050.ets | 2 +- .../regression/12961_loop_and_lambda_051.ets | 2 +- .../tests/ets_func_tests/regression/14900.ets | 26 - .../tests/ets_func_tests/regression/15114.ets | 2 +- .../regression/15278_2.ets.expected.err | 14 - ...15584_static_method_and_instance_field.ets | 4 +- .../15588_wrong_readonly_field_return.ets | 4 +- .../15648_enum_is_assignable_to_object.ets | 4 +- ...2_this_return_type_with_optional_param.ets | 8 +- ...ptional_of_functional_type_pass_lambda.ets | 4 +- .../15867_spread_in_arrayof_segfaut.ets | 16 +- .../ets_func_tests/regression/15998_0.ets | 41 - .../ets_func_tests/regression/15998_1.ets | 38 - .../16052_lambda_in_static_method.ets | 10 +- .../ets_func_tests/regression/16056_0.ets | 2 +- .../ets_func_tests/regression/16056_2.ets | 2 +- .../ets_func_tests/regression/16141_2.ets | 2 +- .../ets_func_tests/regression/16165_0.ets | 4 +- .../ets_func_tests/regression/16165_1.ets | 4 +- .../tests/ets_func_tests/regression/16328.ets | 27 - .../tests/ets_func_tests/regression/16364.ets | 44 - .../tests/ets_func_tests/regression/16657.ets | 41 - .../tests/ets_func_tests/regression/17216.ets | 46 - .../ets_func_tests/regression/17344_0.ets | 2 +- .../ets_func_tests/regression/17344_1.ets | 2 +- .../ets_func_tests/regression/17344_2.ets | 2 +- .../ets_func_tests/regression/17344_3.ets | 2 +- .../ets_func_tests/regression/17344_combo.ets | 2 +- .../ets_func_tests/regression/17497_0.ets | 44 - .../ets_func_tests/regression/17497_1.ets | 47 - .../ets_func_tests/regression/17497_2.ets | 46 - .../ets_func_tests/regression/17500_0.ets | 2 +- .../ets_func_tests/regression/17500_1.ets | 2 +- .../ets_func_tests/regression/17500_2.ets | 2 +- .../18012_enum_fromInt_error_at_cast.ets | 2 +- .../ets_func_tests/regression/18140_0.ets | 2 +- .../tests/ets_func_tests/regression/18581.ets | 59 - .../ets_func_tests/regression/20386_0.ets | 21 - .../ets_func_tests/regression/20386_1.ets | 21 - .../ets_func_tests/regression/20386_2.ets | 21 - .../ets_func_tests/regression/20386_3.ets | 21 - .../tests/ets_func_tests/regression/20944.ets | 40 - .../tests/ets_func_tests/regression/21143.ets | 45 - .../tests/ets_func_tests/regression/21151.ets | 33 - .../tests/ets_func_tests/regression/21379.ets | 50 - .../ets_func_tests/regression/21490_0.ets | 3 +- .../ets_func_tests/regression/22051/22051.ets | 21 - .../ets_func_tests/regression/22051/other.ets | 23 - .../tests/ets_func_tests/regression/22177.ets | 49 - .../ets_func_tests/regression/22981/22981.ets | 29 - .../ets_func_tests/regression/22981/other.ets | 36 - .../ets_func_tests/regression/23383/23383.ets | 25 - .../ets_func_tests/regression/23383/other.ets | 27 - .../tests/ets_func_tests/regression/23623.ets | 37 - .../tests/ets_func_tests/regression/23652.ets | 32 - .../tests/ets_func_tests/regression/23654.ets | 59 - .../ets_func_tests/regression/23659_0.ets | 30 - .../ets_func_tests/regression/23659_1.ets | 27 - .../tests/ets_func_tests/regression/23683.ets | 34 - .../tests/ets_func_tests/regression/23735.ets | 61 - .../tests/ets_func_tests/regression/24747.ets | 62 - .../ets_func_tests/regression/25423/25423.ets | 21 - .../ets_func_tests/regression/25423/other.ets | 22 - .../tests/ets_func_tests/regression/25834.ets | 32 - .../ets_func_tests/regression/26215_0.ets | 23 - .../ets_func_tests/regression/26215_1.ets | 23 - .../tests/ets_func_tests/regression/27353.ets | 58 - .../regression/SaveStateBridge.ets | 2 +- .../regression/SimplifyStringBuilder.ets | 8 +- .../regression/bigint_from_double.ets | 4 +- .../regression/default_interface_method.ets | 4 +- .../function_params_optional_union.ets | 2 +- .../\303\251\303\250\303\240\303\262.ets" | 23 - ...efined-primitive-type-nullable-union_0.ets | 2 +- ...efined-primitive-type-nullable-union_1.ets | 2 +- ...efined-primitive-type-nullable-union_2.ets | 2 +- .../defined-type-nullable-union_1.ets | 4 +- .../defined-type-nullable-union_2.ets | 4 +- .../defined-type-nullable-union_3.ets | 4 +- .../defined-type-nullable-union_4.ets | 4 +- .../defined-type-nullable-union_5.ets | 2 +- .../3.8.12.Nullish_Types/eval-lazy_0.ets | 2 +- .../3.8.12.Nullish_Types/eval-lazy_1.ets | 2 +- .../3.8.12.Nullish_Types/eval-lazy_2.ets | 2 +- .../3.8.12.Nullish_Types/eval-lazy_3.ets | 2 +- .../nullable-function-default-param_0.ets | 2 +- .../nullable-function-default-param_1.ets | 2 +- .../nullable-function-default-param_2.ets | 4 +- .../nullable-function-default-param_3.ets | 2 +- .../nullable-function-default-param_4.ets | 2 +- .../nullable-function-default-param_5.ets | 2 +- .../nullable-function-default-param_6.ets | 2 +- .../nullable-function-default-param_7.ets | 2 +- .../nullable-function-default-param_8.ets | 4 +- .../nullable-function-param_0.ets | 2 +- .../nullable-function-param_1.ets | 2 +- .../nullable-function-param_2.ets | 2 +- .../nullable-function-result_0.ets | 2 +- .../nullable-function-result_1.ets | 2 +- .../nullable-function-result_2.ets | 2 +- .../nullable-lambda-default-param_0.ets | 2 +- .../nullable-lambda-default-param_1.ets | 2 +- .../nullable-lambda-default-param_3.ets | 2 +- .../nullable-lambda-default-param_4.ets | 2 +- .../nullable-lambda-default-param_5.ets | 2 +- .../nullable-lambda-default-param_6.ets | 2 +- .../nullable-lambda-param_0.ets | 2 +- .../nullable-lambda-param_1.ets | 2 +- .../nullable-member_0.ets | 2 +- .../nullable-member_1.ets | 2 +- .../nullable-member_2.ets | 2 +- .../nullable-method-default-param_0.ets | 2 +- .../nullable-method-default-param_1.ets | 2 +- .../nullable-method-default-param_2.ets | 4 +- .../nullable-method-default-param_3.ets | 2 +- .../nullable-method-default-param_4.ets | 2 +- .../nullable-method-default-param_5.ets | 2 +- .../nullable-method-default-param_6.ets | 2 +- .../nullable-method-default-param_7.ets | 2 +- .../nullable-method-default-param_8.ets | 4 +- .../nullable-method-param_0.ets | 2 +- .../nullable-method-param_1.ets | 2 +- .../nullable-method-param_2.ets | 2 +- .../nullable-method-result_0.ets | 2 +- .../nullable-method-result_1.ets | 2 +- .../nullable-method-result_2.ets | 2 +- ...rray_constructors_optional_params_0010.ets | 2 +- ...rray_constructors_optional_params_0020.ets | 4 +- ...rray_constructors_optional_params_0030.ets | 6 +- ...rray_constructors_optional_params_0040.ets | 6 +- ...rray_constructors_optional_params_0050.ets | 6 +- ...rray_constructors_optional_params_0060.ets | 2 +- ...rray_constructors_optional_params_0070.ets | 4 +- ...rray_constructors_optional_params_0080.ets | 6 +- ...rray_constructors_optional_params_0090.ets | 6 +- ...rray_constructors_optional_params_0100.ets | 2 +- .../Bigint/bigint-bitwise-and-1.ets | 2 +- .../Function_Types/function_types_0010.ets | 2 +- .../Function_Types/function_types_0020.ets | 2 +- .../Function_Types/function_types_0030.ets | 2 +- .../Tuples_type/func_tuple_0.ets | 4 +- .../Tuples_type/func_tuple_1.ets | 6 +- .../Tuples_type/recursive1.ets | 2 +- .../Tuples_type/recursive2.ets | 4 +- .../Tuples_type/recursive3.ets | 2 +- .../Tuples_type/recursive4.ets | 2 +- .../References_Types/Tuples_type/simple0.ets | 2 +- .../References_Types/Tuples_type/simple3.ets | 4 +- .../Tuples_type/tuple_as_generic_0.ets | 6 +- .../Tuples_type/tuple_as_generic_1.ets | 2 +- .../Tuples_type/tuple_as_generic_2.ets | 2 +- .../Tuples_type/tuple_as_generic_3.ets | 4 +- .../Tuples_type/tuple_as_generic_4.ets | 4 +- .../Tuples_type/tuple_as_generic_5.ets | 4 +- .../Tuples_type/tuple_as_generic_6.ets | 4 +- .../Tuples_type/tuple_as_generic_7.ets | 8 +- .../Tuples_type/tuple_as_param_0.ets | 4 +- .../Tuples_type/tuple_as_param_1.ets | 4 +- .../Tuples_type/tuple_as_param_2.ets | 4 +- .../Tuples_type/tuple_as_param_3.ets | 4 +- .../Tuples_type/tuple_as_param_4.ets | 4 +- .../Tuples_type/tuple_as_param_5.ets | 6 +- .../Tuples_type/tuple_as_param_6.ets | 4 +- .../Tuples_type/tuple_as_param_default_0.ets | 4 +- .../Tuples_type/tuple_as_param_default_1.ets | 4 +- .../Tuples_type/tuple_as_rest_param_1.ets | 2 +- .../Tuples_type/tuple_as_rest_param_2.ets | 2 +- .../Tuples_type/tuple_as_rest_param_3.ets | 2 +- .../Tuples_type/tuple_as_rest_param_4.ets | 2 +- .../Tuples_type/tuple_as_rest_param_5.ets | 2 +- .../Tuples_type/tuple_as_rest_param_6.ets | 2 +- .../Tuples_type/tuple_union_0.ets | 8 +- .../Tuples_type/tuple_union_1.ets | 8 +- .../Tuples_type/tuple_write_0.ets | 4 +- .../Tuples_type/tuple_write_1.ets | 4 +- .../Tuples_type/tuple_write_3.ets | 4 +- .../Tuples_type/tuple_write_4.ets | 4 +- .../Tuples_type/tuple_write_5.ets | 2 +- .../Tuples_type/tuple_write_6.ets | 4 +- .../Tuples_type/tuple_write_7.ets | 4 +- .../Type_never/useWithLambdaAndUnion.ets | 2 +- .../Type_never/useWithUnion.ets | 4 +- ...ndefined-in-other-class_1.ets.expected.err | 18 - .../string/constructor_with_nullish_0000.ets | 2 +- .../string/constructor_with_nullish_0010.ets | 2 +- .../string/constructor_with_nullish_0020.ets | 2 +- .../string/constructor_with_nullish_0030.ets | 2 +- .../string/constructor_with_nullish_0040.ets | 2 +- .../string/constructor_with_nullish_0050.ets | 2 +- .../string/constructor_with_nullish_0060.ets | 2 +- .../string/constructor_with_nullish_0070.ets | 2 +- .../string/constructor_with_nullish_0080.ets | 2 +- .../string/constructor_with_nullish_0090.ets | 2 +- .../string/constructor_with_nullish_0100.ets | 2 +- .../string/constructor_with_nullish_0110.ets | 2 +- .../string/constructor_with_nullish_0120.ets | 2 +- .../unions/issue_13730_0000.ets | 2 +- .../unions/issue_13730_0001.ets | 2 +- .../unions/issue_13730_0010.ets | 2 +- .../unions/issue_13730_0011.ets | 2 +- .../unions/issue_13730_0020.ets | 2 +- .../unions/issue_13730_0021.ets | 2 +- .../unions/issue_13730_0022.ets | 2 +- .../unions/issue_13730_0023.ets | 2 +- .../unions/issue_13730_0030.ets | 2 +- .../unions/issue_13730_0031.ets | 2 +- .../unions/issue_13730_0032.ets | 2 +- .../unions/issue_13730_0033.ets | 2 +- .../References_Types/unions/union_14719.ets | 2 +- .../unions/union_14722_01.ets | 2 +- .../unions/union_14722_02.ets | 2 +- .../unions/union_assignment_01.ets | 2 +- .../unions/union_assignment_02.ets | 2 +- .../unions/union_assignment_03.ets | 2 +- .../unions/union_assignment_04.ets | 2 +- .../unions/union_assignment_08.ets | 2 +- .../unions/union_assignment_09.ets | 2 +- .../unions/union_assignment_10.ets | 2 +- .../unions/union_assignment_11.ets | 2 +- .../unions/union_assignment_12_01.ets | 2 +- .../unions/union_assignment_12_02.ets | 2 +- .../unions/union_assignment_12_03.ets | 2 +- .../unions/union_binary_01.ets | 2 +- .../unions/union_binary_02.ets | 2 +- .../unions/union_binary_03.ets | 2 +- .../unions/union_binary_04.ets | 2 +- .../unions/union_binary_05.ets | 2 +- .../unions/union_binary_n_01.ets | 2 +- .../unions/union_binary_n_02.ets | 2 +- .../References_Types/unions/union_cast_01.ets | 6 +- .../References_Types/unions/union_cast_02.ets | 2 +- .../References_Types/unions/union_cast_03.ets | 2 +- .../References_Types/unions/union_cast_04.ets | 2 +- .../References_Types/unions/union_cast_05.ets | 4 +- .../References_Types/unions/union_cast_06.ets | 4 +- .../unions/union_compare_03.ets | 8 +- .../unions/union_compare_04.ets | 8 +- .../unions/union_generics_01.ets | 6 +- .../unions/union_generics_02.ets | 2 +- .../unions/union_generics_03.ets | 2 +- .../unions/union_literal_02.ets | 10 +- .../unions/union_param_01.ets | 2 +- .../unions/union_param_02.ets | 2 +- .../unions/union_param_03.ets | 4 +- .../unions/union_param_04.ets | 2 +- .../unions/union_param_05.ets | 2 +- .../unions/union_param_06.ets | 2 +- .../unions/union_param_07.ets | 2 +- .../unions/union_param_08.ets | 2 +- .../unions/union_param_10_01.ets | 2 +- .../unions/union_param_10_02.ets | 2 +- .../unions/union_param_10_03.ets | 2 +- .../unions/union_param_11_01.ets | 2 +- .../unions/union_param_11_02.ets | 2 +- .../unions/union_param_11_03.ets | 2 +- .../References_Types/unions/union_plus_01.ets | 2 +- .../References_Types/unions/union_plus_02.ets | 2 +- .../References_Types/unions/union_plus_03.ets | 2 +- .../References_Types/unions/union_plus_04.ets | 2 +- .../References_Types/unions/union_plus_05.ets | 2 +- .../unions/union_plus_n_01.ets | 2 +- .../unions/union_plus_n_02.ets | 2 +- .../unions/union_return_01_01.ets | 2 +- .../unions/union_return_01_02.ets | 2 +- .../unions/union_return_01_03.ets | 2 +- .../unions/union_return_02.ets | 2 +- .../unions/union_return_03.ets | 2 +- .../unions/union_return_04.ets | 2 +- .../unions/union_return_05.ets | 2 +- .../unions/union_return_06.ets | 2 +- .../unions/union_return_07.ets | 2 +- .../spec/03.types/nullables/issue15013_01.ets | 2 +- .../spec/03.types/nullables/issue15013_02.ets | 2 +- .../spec/03.types/nullables/issue15013_03.ets | 2 +- .../4.8.1.Signatures/issue14809_0.ets | 2 +- .../4.8.1.Signatures/issue14809_1.ets | 2 +- .../4.8.1.Signatures/issue14809_2.ets | 2 +- .../4.8.1.Signatures/issue14809_3.ets | 2 +- .../4.8.1.Signatures/issue14809_4.ets | 2 +- .../4.8.1.Signatures/issue14809_5.ets | 2 +- .../4.8.1.Signatures/issue14809_6.ets | 2 +- .../4.8.1.Signatures/issue14809_7.ets | 4 +- .../4.8.1.Signatures/issue14809_8.ets | 2 +- ...stParamsTest_PassLambdasArrayAndSpread.ets | 4 +- .../4.8.7.Return_Type/issue_16080_01.ets | 8 +- .../4.8.7.Return_Type/issue_16080_02.ets | 2 +- .../4.8.7.Return_Type/issue_16080_03.ets | 2 +- .../4.8.7.Return_Type/issue_16080_04.ets | 2 +- .../4.8.7.Return_Type/issue_16080_05.ets | 2 +- .../partial_utility_type_0001.ets | 8 +- .../partial_utility_type_0002.ets | 8 +- .../partial_utility_type_0003.ets | 8 +- .../partial_utility_type_0004.ets | 8 +- .../partial_utility_type_0005.ets | 8 +- .../partial_utility_type_0006.ets | 8 +- .../partial_utility_type_0007.ets | 8 +- .../partial_utility_type_0008.ets | 8 +- .../partial_utility_type_0009.ets | 8 +- .../partial_utility_type_0010.ets | 8 +- .../partial_utility_type_0011.ets | 8 +- .../partial_utility_type_0012.ets | 2 +- .../partial_utility_type_0014.ets | 4 +- .../partial_utility_type_0015.ets | 2 +- .../spec/05.Generics/callFromAsyncLambda.ets | 6 +- .../function_as_type_generic_0010.ets | 8 +- .../function_as_type_generic_0020.ets | 8 +- .../function_as_type_generic_0030.ets | 8 +- ...peArgumentWithDefaultParameterValue_01.ets | 6 +- ...peArgumentWithDefaultParameterValue_02.ets | 4 +- ...peArgumentWithDefaultParameterValue_03.ets | 6 +- ...peArgumentWithDefaultParameterValue_04.ets | 6 +- ...peArgumentWithDefaultParameterValue_05.ets | 6 +- ...peArgumentWithDefaultParameterValue_06.ets | 6 +- ...rgumentWithDefaultParameterValue_07_00.ets | 4 +- ...rgumentWithDefaultParameterValue_07_01.ets | 8 +- ...rgumentWithDefaultParameterValue_07_02.ets | 8 +- ...rgumentWithDefaultParameterValue_07_03.ets | 12 +- ...rgumentWithDefaultParameterValue_07_04.ets | 6 +- ...rgumentWithDefaultParameterValue_07_05.ets | 2 +- ...rgumentWithDefaultParameterValue_08_00.ets | 6 +- ...rgumentWithDefaultParameterValue_08_01.ets | 6 +- ...rgumentWithDefaultParameterValue_08_02.ets | 12 +- .../spec/05.Generics/generic_01.ets | 2 +- .../spec/05.Generics/generic_03.ets | 2 +- .../spec/05.Generics/generic_04.ets | 4 +- .../spec/05.Generics/issue15089_01.ets | 2 +- .../spec/05.Generics/issue15089_02.ets | 2 +- .../spec/05.Generics/issue15089_03.ets | 2 +- .../spec/05.Generics/issue15089_04.ets | 2 +- .../spec/05.Generics/issue15089_05.ets | 2 +- .../spec/05.Generics/issue15089_06.ets | 2 +- .../spec/05.Generics/issue15089_07.ets | 2 +- .../spec/05.Generics/issue15089_08.ets | 10 +- .../spec/05.Generics/issue15099_0.ets | 2 +- .../spec/05.Generics/issue15099_1.ets | 2 +- .../spec/05.Generics/issue15099_10.ets | 2 +- .../spec/05.Generics/issue15099_11.ets | 2 +- .../spec/05.Generics/issue15099_12.ets | 2 +- .../spec/05.Generics/issue15099_2.ets | 2 +- .../spec/05.Generics/issue15099_3.ets | 2 +- .../spec/05.Generics/issue15099_4.ets | 2 +- .../spec/05.Generics/issue15099_5.ets | 2 +- .../spec/05.Generics/issue15099_6.ets | 2 +- .../spec/05.Generics/issue15099_7.ets | 2 +- .../spec/05.Generics/issue15099_8.ets | 2 +- .../spec/05.Generics/issue15099_9.ets | 2 +- .../spec/05.Generics/issue15380_0.ets | 2 +- .../spec/05.Generics/issue15380_1.ets | 2 +- .../spec/05.Generics/issue15380_2.ets | 4 +- .../spec/05.Generics/length_setter_0000.ets | 2 +- .../spec/05.Generics/length_setter_0002.ets | 4 +- .../spec/05.Generics/length_setter_0100.ets | 2 +- .../spec/05.Generics/length_setter_0101.ets | 2 +- .../spec/05.Generics/length_setter_0102.ets | 2 +- .../spec/05.Generics/length_setter_0103.ets | 4 +- .../spec/05.Generics/length_setter_0104.ets | 8 +- .../spec/05.Generics/length_setter_0105.ets | 8 +- .../tuple_as_generic_args_0020.ets | 2 +- .../spec/05.Generics/union_generic_0010.ets | 4 +- .../spec/05.Generics/union_generic_0020.ets | 4 +- .../spec/05.Generics/union_generic_0030.ets | 6 +- .../spec/05.Generics/union_generic_0031.ets | 6 +- .../spec/05.Generics/union_generic_0040.ets | 8 +- .../spec/05.Generics/union_generic_0041.ets | 6 +- .../spec/05.Generics/union_generic_0042.ets | 6 +- .../spec/05.Generics/usingInT.ets | 2 +- .../function_call_subtyping_0020.ets | 12 +- .../function_call_subtyping_0030.ets | 2 +- .../function_call_subtyping_0040.ets | 2 +- .../function_call_subtyping_0050.ets | 2 +- .../7.16.InstanceOf_Expression/issue15723.ets | 2 +- .../issue14609_02.ets | 4 +- .../strict_compare_01.ets | 2 +- .../strict_compare_02_01.ets | 2 +- .../strict_compare_02_02.ets | 2 +- .../strict_compare_03_01.ets | 2 +- .../strict_compare_03_02.ets | 2 +- .../callAsyncMethodFromAsyncLambda1.ets | 4 +- .../callAsyncMethodFromAsyncLambda2.ets | 4 +- .../callMethodFromAsyncLambda1.ets | 4 +- .../callMethodFromAsyncLambda2.ets | 4 +- .../callRegularLambda.ets | 4 +- .../callRegularLambdaWithAsyncOverload.ets | 4 +- .../compareBooleanWithTrue.ets | 4 +- .../correctAsyncLambdaReturnValue.ets | 27 - .../incorrectAsyncLambdaReturnValue.ets | 26 + .../propertyLookupWithTypeAlias_01.ets | 2 +- .../propertyLookupWithTypeAlias_02.ets | 2 +- .../propertyLookupWithTypeAlias_03.ets | 2 +- .../resultFromAwait.ets | 4 +- .../resultFromAwaitResolution.ets | 4 +- .../record-boxable-types.ets | 30 +- .../record-class-value-global.ets | 8 +- .../record-class-value-scope.ets | 8 +- .../record-function-parameter.ets | 8 +- .../record-number-string-global.ets | 6 +- .../record-number-string-scope.ets | 6 +- .../record-string-number-global.ets | 6 +- .../record-string-number-scope.ets | 6 +- .../class_with_optional_attributes_0000.ets | 8 +- .../class_with_optional_attributes_0001.ets | 12 +- .../class_with_optional_attributes_0002.ets | 16 +- .../class_with_optional_attributes_0003.ets | 32 +- .../class_with_optional_attributes_0004.ets | 8 +- .../class_with_optional_attributes_0005.ets | 8 +- .../class_with_optional_attributes_0006.ets | 16 +- .../interface_overriding_01.ets | 4 +- .../interface_overriding_02.ets | 2 +- .../interface_overriding_03.ets | 2 +- .../interface_overriding_04.ets | 2 +- .../interface_overriding_05.ets | 2 +- .../interface_overriding_06.ets | 2 +- .../interface_overriding_07_01.ets | 2 +- .../interface_overriding_07_02.ets | 2 +- .../interface_overriding_08_01.ets | 2 +- .../interface_overriding_08_02.ets | 2 +- .../overrideModifier_01.ets | 2 +- .../overrideModifier_02.ets | 2 +- .../overrideModifier_03.ets | 2 +- .../override_issue14812_01.ets | 2 +- .../override_issue14812_02.ets | 2 +- .../override_optional_param_01_00.ets | 2 +- .../override_optional_param_01_01.ets | 2 +- .../override_optional_param_01_02.ets | 2 +- .../override_optional_param_01_03.ets | 2 +- .../override_optional_param_01_04.ets | 2 +- .../override_optional_param_01_05.ets | 2 +- .../override_optional_param_01_06.ets | 2 +- .../override_static_instance_0001.ets | 6 +- .../override_static_instance_0002.ets | 6 +- .../override_static_instance_0003.ets | 8 +- .../9.6.Method_Declarations/Issue-14273_0.ets | 4 +- .../9.6.Method_Declarations/Issue-14273_1.ets | 4 +- .../9.6.Method_Declarations/Issue-14273_2.ets | 4 +- .../9.6.Method_Declarations/Issue-14273_3.ets | 4 +- .../Accessor_Declarations/issue-13330_0.ets | 8 +- .../Accessor_Declarations/issue-13330_1.ets | 8 +- .../Accessor_Declarations/issue-13330_2.ets | 2 +- .../Accessor_Declarations/issue-13330_3.ets | 4 +- .../Accessor_Declarations/issue-13330_4.ets | 8 +- .../Accessor_Declarations/issue-13330_5.ets | 8 +- .../Accessor_Declarations/issue-13330_6.ets | 4 +- .../Accessor_Declarations/issue-13330_7.ets | 2 +- .../Accessor_Declarations/issue-13330_8.ets | 2 +- .../Accessor_Declarations/issue-15142_0.ets | 4 +- .../Accessor_Declarations/issue-15142_1.ets | 4 +- .../Accessor_Declarations/issue-15142_10.ets | 4 +- .../Accessor_Declarations/issue-15142_2.ets | 4 +- .../Accessor_Declarations/issue-15142_3.ets | 4 +- .../Accessor_Declarations/issue-15142_4.ets | 4 +- .../Accessor_Declarations/issue-15142_5.ets | 4 +- .../Accessor_Declarations/issue-15142_7.ets | 4 +- .../Accessor_Declarations/issue-15142_8.ets | 4 +- .../Accessor_Declarations/issue-15142_9.ets | 4 +- .../constructor_default_params_0000.ets | 2 +- .../constructor_default_params_0001.ets | 2 +- .../constructor_default_params_0002.ets | 4 +- .../constructor_default_params_0003.ets | 6 +- .../constructor_default_params_0004.ets | 6 +- .../constructor_default_params_0005.ets | 6 +- .../constructor_default_params_0006_n.ets | 6 +- .../constructor_default_params_0007.ets | 6 +- .../constructor_default_params_0008.ets | 4 +- .../constructor_default_params_0009.ets | 6 +- .../constructor_default_params_0010.ets | 6 +- ...ngWithFunctionsRequiresExplicitType_01.ets | 2 +- ...ngWithFunctionsRequiresExplicitType_02.ets | 2 +- ...ngWithFunctionsRequiresExplicitType_03.ets | 2 +- .../abstract-class-inheritance-101.ets | 2 +- .../abstract-class-inheritance-102.ets | 4 +- .../abstract-class-inheritance-103.ets | 8 +- .../constructor-inheritance/issue14720_0.ets | 2 +- .../constructor-inheritance/issue14720_1.ets | 2 +- .../constructor-inheritance/issue14720_2.ets | 8 +- .../constructor-inheritance/issue14720_3.ets | 4 +- .../constructor-inheritance/issue14720_4.ets | 4 +- .../constructor-inheritance/issue14720_5.ets | 2 +- .../constructor-inheritance/issue14720_6.ets | 4 +- ...nterface_with_optional_attributes_0000.ets | 8 +- ...nterface_with_optional_attributes_0001.ets | 12 +- ...nterface_with_optional_attributes_0002.ets | 16 +- ...nterface_with_optional_attributes_0003.ets | 32 +- ...nterface_with_optional_attributes_0004.ets | 8 +- ...nterface_with_optional_attributes_0005.ets | 8 +- .../issue_16070_01.ets | 2 +- .../issue_16070_02.ets | 2 +- .../issue_16070_03.ets | 2 +- .../issue_16070_04.ets | 2 +- .../generic_interface1.ets | 2 +- .../generic_interface2.ets | 2 +- .../generic_interface3.ets | 2 +- .../spec/10.Interfaces/generic_interface1.ets | 2 +- .../spec/10.Interfaces/generic_interface2.ets | 2 +- .../spec/10.Interfaces/generic_interface3.ets | 2 +- .../10.Interfaces/method_overiding_0001.ets | 6 +- .../enumCallToStringFromAsyncLambda.ets | 2 +- .../11.Enumerations/enum_const_expr_01_01.ets | 4 +- .../11.Enumerations/enum_const_expr_01_02.ets | 4 +- .../11.Enumerations/enum_const_expr_01_03.ets | 4 +- .../11.Enumerations/enum_const_expr_01_04.ets | 4 +- .../11.Enumerations/enum_const_expr_01_05.ets | 4 +- .../11.Enumerations/enum_const_expr_01_06.ets | 6 +- .../11.Enumerations/enum_const_expr_02_01.ets | 8 +- .../11.Enumerations/enum_const_expr_02_02.ets | 6 +- .../11.Enumerations/enum_const_expr_02_03.ets | 6 +- .../enum_trailing_comma_01.ets | 2 +- .../enum_trailing_comma_02.ets | 2 +- .../enum_trailing_comma_03.ets | 2 +- .../enum_trailing_comma_04.ets | 2 +- .../spec/11.Enumerations/issue14633_1.ets | 2 +- .../spec/11.Enumerations/issue14633_3.ets | 2 +- .../issue15173/src/issue_15173_02.ets | 4 +- .../issue15173/src/issue_15173_03.ets | 4 +- .../issue15182/issue_15182_04.ets | 6 +- .../04.default_import/default_import.ets | 2 +- .../selective_export_directive_03.ets | 4 +- ...mport_type_alias_with_qualified_access.ets | 12 +- .../issue15371/issue15371_03.ets | 2 +- .../issue15371/issue15371_04.ets | 2 +- .../issue15371/issue15371_05.ets | 2 +- .../issue15371/issue15371_06.ets | 4 +- .../issue_15669_04.ets | 2 +- .../issue_15669_05.ets | 4 +- .../import_export/issue14991_01.ets | 2 +- .../issue15393/module2/src/issue15393_03.ets | 2 +- ...umeric-loop-for-double-zero-expression.ets | 2 +- ...eric-loop-for-float-nonzero-expression.ets | 2 +- ...numeric-loop-for-float-zero-expression.ets | 2 +- .../string/expr/string-expression-assert.ets | 2 +- .../type-call-instantiate_8.ets | 2 +- .../trailing_lambdas/trailing_fn_param_01.ets | 2 +- .../trailing_lambdas/trailing_fn_param_02.ets | 4 +- .../trailing_lambdas/trailing_fn_param_03.ets | 2 +- .../trailing_lambdas/trailing_lm_param.ets | 2 +- .../trailing_lambdas/trailing_lm_param_n.ets | 2 +- .../trailing_lambdas/trailing_nested_01.ets | 6 +- .../trailing_lambdas/trailing_nested_02.ets | 2 +- .../trailing_lambdas/trailing_nested_03.ets | 2 +- .../trailing_lambdas/trailing_nested_04.ets | 2 +- .../trailing_lambdas/trailing_nested_05.ets | 2 +- .../trailing_lambdas/trailing_nested_06.ets | 2 +- .../trailing_lambdas/trailing_nested_07.ets | 2 +- .../trailing_lambdas/trailing_nested_08.ets | 2 +- .../trailing_lambdas/trailing_nested_09.ets | 2 +- .../trailing_only_fn_01_01.ets | 2 +- .../trailing_only_fn_01_02.ets | 2 +- .../trailing_only_fn_01_n.ets | 2 +- .../trailing_only_fn_02_01.ets | 2 +- .../trailing_only_fn_03_01.ets | 4 +- .../trailing_only_fn_03_02.ets | 4 +- .../trailing_only_fn_03_03.ets | 4 +- .../trailing_only_fn_03_04.ets | 2 +- .../trailing_only_fn_03_n_01.ets | 4 +- .../trailing_only_fn_04_01.ets | 4 +- .../trailing_only_fn_04_02.ets | 4 +- .../trailing_only_fn_04_n_01.ets | 6 +- .../trailing_lambdas/trailing_return_01.ets | 2 +- .../trailing_lambdas/trailing_return_02.ets | 2 +- .../trailing_lambdas/trailing_return_03.ets | 2 +- .../trailing_lambdas/trailing_stmt_01.ets | 2 +- .../trailing_lambdas/trailing_stmt_02.ets | 2 +- .../trailing_lambdas/trailing_stmt_03.ets | 2 +- .../trailing_lambdas/trailing_stmt_04.ets | 4 +- .../trailing_lambdas/trailing_stmt_05.ets | 4 +- .../trailing_lambdas/trailing_stmt_06.ets | 4 +- .../trailing_lambdas/trailing_stmt_07.ets | 4 +- .../17.3.Indexable_Types/idx-s01-0000.ets | 44 +- .../17.3.Indexable_Types/idx-s01-0001.ets | 44 +- .../17.3.Indexable_Types/idx-s01-0002.ets | 46 +- .../17.3.Indexable_Types/idx-s01-0011.ets | 2 +- .../17.3.Indexable_Types/idx-s01-0012.ets | 8 +- .../17.3.Indexable_Types/idx-s01-0013.ets | 8 +- .../17.3.Indexable_Types/idx-s01-0020.ets | 6 +- .../17.3.Indexable_Types/idx-s01-0030.ets | 4 +- .../17.3.Indexable_Types/idx-s01-0040.ets | 12 +- .../17.3.Indexable_Types/idx-s01-0050.ets | 2 +- .../17.3.Indexable_Types/idx-s01-0060.ets | 12 +- .../17.3.Indexable_Types/idx-s01-0070.ets | 12 +- .../17.3.Indexable_Types/idx-s01-0080.ets | 4 +- .../17.3.Indexable_Types/idx-s02-0000.ets | 4 +- .../17.3.Indexable_Types/idx-s02-0001.ets | 4 +- .../17.3.Indexable_Types/idx-s02-0010.ets | 6 +- .../17.3.Indexable_Types/idx-s02-0020.ets | 4 +- .../17.3.Indexable_Types/idx-s02-0030.ets | 4 +- .../17.3.Indexable_Types/idx-s03-0000.ets | 100 +- .../17.3.Indexable_Types/idx-s03-0010.ets | 50 +- .../17.3.Indexable_Types/idx-s03-0020.ets | 50 +- .../17.3.Indexable_Types/idx-s03-0030.ets | 88 +- .../default_method_0001.ets | 2 +- .../default_method_0002.ets | 4 +- .../default_method_0003.ets | 4 +- .../default_method_0004.ets | 4 +- .../default_method_0005.ets | 6 +- .../default_method_0006.ets | 4 +- .../Iterable_Types/for-of-s01-array-01.ets | 4 +- .../Iterable_Types/for-of-s01-array-02.ets | 4 +- .../Iterable_Types/for-of-s01-array-03.ets | 4 +- .../Iterable_Types/for-of-s01-array-04.ets | 4 +- .../Iterable_Types/for-of-s01-array-05.ets | 4 +- .../Iterable_Types/for-of-s01-array-06.ets | 4 +- .../Iterable_Types/for-of-s01-array-07.ets | 2 +- .../Iterable_Types/for-of-s01-array-08.ets | 2 +- .../Iterable_Types/for-of-s01-array-09.ets | 2 +- .../Iterable_Types/for-of-s01-array-10.ets | 2 +- .../Iterable_Types/for-of-s01-array-11.ets | 2 +- .../Iterable_Types/for-of-s01-array-12.ets | 2 +- .../Iterable_Types/for-of-s01-string-01.ets | 4 +- .../Iterable_Types/for-of-s01-string-04.ets | 2 +- .../Iterable_Types/for_of_06.ets | 12 +- .../Iterable_Types/for_of_08.ets | 2 +- .../Iterable_Types/for_of_09.ets | 2 +- .../ets_func_tests/std/TypeCreateVoidTest.ets | 10 +- .../std/concurrency/AsyncLockTest.ets | 192 +- .../std/concurrency/eaworker_message.ets | 355 -- .../messageHandler_basic_interface.ets | 387 -- .../concurrency/message_basic_interface.ets | 71 - .../std/concurrency/workerlocal_test.ets | 72 - .../std/containers/ArrayAsListIntTest.ets | 42 +- .../std/containers/ArrayAsListStringTest.ets | 38 +- .../std/containers/ArrayBufferIsViewTest.ets | 28 +- .../std/containers/ArrayJoinTest.ets | 6 +- .../std/containers/ArrayMapTest.ets | 6 +- .../std/containers/ArrayReduceRightTest.ets | 6 +- .../std/containers/ArrayTestChecked.ets | 330 +- .../std/containers/BasicMapTest.ets | 10 +- .../std/containers/BasicSetTest.ets | 2 +- .../BlockingQueue/AddAndPollStress.ets | 63 - .../LinkedBlockingQueue_getEnd.ets | 60 +- .../std/containers/BuiltinArrayMapTest.ets | 6 +- .../std/containers/TrivialArrayTest.ets | 70 +- .../std/containers/TrivialMapTest.ets | 20 +- .../std/containers/TrivialSetTest.ets | 88 + .../ArrayBlockingQueue_AddTest.ets | 28 +- .../ArrayBlockingQueue_CapacityTest.ets | 30 +- .../ArrayBlockingQueue_ConstructorTest.ets | 18 +- .../ArrayBlockingQueue_GetEndTest.ets | 58 +- .../ArrayBlockingQueue_GetFirstTest.ets | 101 +- .../ArrayBlockingQueue_GetSizeTest.ets | 6 +- .../ArrayBlockingQueue_PollTest.ets | 31 +- .../ArrayBlockingQueue_PopTest.ets | 68 +- .../ArrayBlockingQueue_PushTest.ets | 34 +- ...rayBlockingQueue_RemainingCapacityTest.ets | 30 +- .../std/containers/blocking_queue.ets | 38 +- .../blocking_queue_add_and_poll.ets | 187 - .../blocking_queue_first_end_concurrent.ets | 143 - ...ueue_first_end_concurrent.ets.expected.err | 14 - .../blocking_queue_no_concurrent.ets | 211 - ...cking_queue_no_concurrent.ets.expected.err | 14 - .../blocking_queue_push_and_pop.ets | 165 - .../blocking_queue_simple_order.ets | 138 - .../blocking_queue_test_count.ets | 125 - .../concurrent_hash_map_concurrent_clear.ets | 179 - .../concurrent_hash_map_concurrent_delete.ets | 133 - ...oncurrent_hash_map_concurrent_get_test.ets | 86 - .../concurrent_hash_map_concurrent_has.ets | 74 - .../concurrent_hash_map_concurrent_has2.ets | 74 - .../concurrent_hash_map_concurrent_iters.ets | 75 - .../concurrent_hash_map_concurrent_remove.ets | 125 - ...concurrent_hash_map_concurrent_replace.ets | 127 - ...rrent_hash_map_concurrent_set_get_test.ets | 106 - ...oncurrent_hash_map_concurrent_set_test.ets | 89 - .../concurrent_hash_map_fails.ets | 105 - ...ncurrent_hash_map_not_concurrent_tests.ets | 239 - .../ConcurrentHashMap_ClearTest.ets | 26 +- .../ConcurrentHashMap_ConstructorTest.ets | 34 +- .../ConcurrentHashMap_DeleteTest.ets | 56 +- .../ConcurrentHashMap_EntriesTest.ets | 62 +- .../ConcurrentHashMap_ForEachTest.ets | 132 +- .../ConcurrentHashMap_GetSizeTest.ets | 26 +- .../ConcurrentHashMap_GetTest.ets | 62 +- .../ConcurrentHashMap_HasTest.ets | 50 +- .../ConcurrentHashMap_IsEmptyTest.ets | 38 +- .../ConcurrentHashMap_KeysTest.ets | 44 +- .../ConcurrentHashMap_MoreTypeTest.ets | 108 +- .../ConcurrentHashMap_PressureTest_Delete.ets | 8 +- .../ConcurrentHashMap_PressureTest_Remove.ets | 14 +- ...ConcurrentHashMap_PressureTest_Replace.ets | 10 +- .../ConcurrentHashMap_PressureTest_Set.ets | 10 +- .../ConcurrentHashMap_RemoveTest.ets | 40 +- .../ConcurrentHashMap_ReplaceTest.ets | 56 +- .../ConcurrentHashMap_SetTest_One.ets | 66 +- .../ConcurrentHashMap_SetTest_Three.ets | 38 +- .../ConcurrentHashMap_SetTest_Two.ets | 30 +- .../ConcurrentHashMap_ValuesTest.ets | 44 +- .../ConcurrentHashMap_iteratorTest.ets | 40 +- .../concurrent_set/ConcurrentSet_AddTest.ets | 52 +- .../ConcurrentSet_ClearTest.ets | 20 +- .../ConcurrentSet_ConstructorTest.ets | 36 +- .../ConcurrentSet_DeleteTest.ets | 56 +- .../ConcurrentSet_EntriesTest.ets | 36 +- .../ConcurrentSet_ForEachTest_One.ets | 28 +- .../ConcurrentSet_ForEachTest_Three.ets | 36 +- .../ConcurrentSet_ForEachTest_Two.ets | 32 +- .../ConcurrentSet_ForEachTest_Zero.ets | 28 +- .../concurrent_set/ConcurrentSet_HasTest.ets | 54 +- .../concurrent_set/ConcurrentSet_KeysTest.ets | 40 +- .../ConcurrentSet_PressureTest_Delete.ets | 10 +- .../ConcurrentSet_PressureTest_Set.ets | 8 +- .../ConcurrentSet_ValuesTest.ets | 46 +- .../ConcurrentSet_iteratorTest.ets | 36 +- .../LinkedBlockingQueue_AddTest.ets | 92 +- .../LinkedBlockingQueue_AddTest_Stress.ets | 6 +- .../LinkedBlockingQueue_CapacityTest.ets | 30 +- .../LinkedBlockingQueue_ConstructorTest.ets | 40 +- .../LinkedBlockingQueue_GetFirstTest.ets | 54 +- .../LinkedBlockingQueue_GetSizeTest.ets | 28 +- .../LinkedBlockingQueue_IsEmptyTest.ets | 8 +- .../LinkedBlockingQueue_PollTest.ets | 26 +- .../LinkedBlockingQueue_PollTest_Stress.ets | 6 +- .../LinkedBlockingQueue_PopTest.ets | 22 +- .../LinkedBlockingQueue_PopTest_Stress.ets | 6 +- .../LinkedBlockingQueue_PushTest_Stress.ets | 6 +- ...kedBlockingQueue_RemainingCapacityTest.ets | 30 +- .../std/core/ArrayTypeAllTests.ets | 119 - .../ets_func_tests/std/core/BadRadixTest.ets | 10 +- .../std/core/BooleanCtorTest.ets | 4 +- .../ets_func_tests/std/core/CharTest.ets | 117 - .../std/core/ClassTypeAllTests.ets | 558 -- .../ets_func_tests/std/core/CollatorTest.ets | 388 +- .../std/core/ConsoleArrayJoin.ets | 51 - .../std/core/ConsoleArrayJoin.ets.expected | 22 - ...ted.err => ConsoleAssertTest.ets.expected} | 0 .../std/core/ConsoleDirTest.ets | 2 +- .../std/core/ConsoleErrorTest.ets | 1 + .../std/core/ConsoleErrorTest.ets.expected | 32 + .../core/ConsoleErrorTest.ets.expected.err | 31 - .../std/core/ConsoleLogTest.ets | 31 +- .../std/core/ConsoleLogTest.ets.expected | 5 - .../std/core/ConsoleTableTest.ets | 33 +- .../std/core/ConsoleTableTest.ets.expected | 49 +- .../std/core/ConsoleTimeTest.ets | 74 - .../ets_func_tests/std/core/DecodeURITest.ets | 26 +- .../ets_func_tests/std/core/DeepCopyTest.ets | 323 -- .../ets_func_tests/std/core/DoubleInvoke.ets | 12 +- .../std/core/DoubleLocaleStringTest.ets | 6 +- .../ets_func_tests/std/core/DoubleTest.ets | 4 +- .../std/core/DoubleToPrecisionTest.ets | 64 +- .../core/EAWorker_out_of_coro_creation.ets | 49 - .../ets_func_tests/std/core/ErrorsTest.ets | 39 - .../std/core/ErrortoStringTest.ets | 20 +- .../std/core/EscapeUnescapeURITest.ets | 45 +- .../ets_func_tests/std/core/FieldAllTests.ets | 85 - .../std/core/FunctionTypeAllTests.ets | 91 - .../ets_func_tests/std/core/GoodRadixTest.ets | 11 +- .../std/core/InterfaceTypeAllTests.ets | 126 - .../std/core/IntlDisplayNames.ets | 106 +- .../std/core/IntlListFormatTest.ets | 29 +- .../std/core/IntlLocaleMatchTest.ets | 14 +- .../std/core/IntlLocaleTest.ets | 90 +- .../std/core/IntlLocaleTest2.ets | 110 +- .../core/IntlNumberFormatFaultLocaleTest.ets | 5 +- .../IntlNumberFormatFormatOptionsTest.ets | 14 +- .../core/IntlNumberFormatInvokeCtorTest.ets | 116 +- .../std/core/IntlNumberFormatInvokeTest.ets | 30 +- .../std/core/IntlNumberFormatNegativeTest.ets | 2 +- .../core/IntlNumberFormatNumberingSystem.ets | 4 +- .../std/core/IntlNumberFormatRangeInfTest.ets | 2 +- .../std/core/IntlNumberFormatRangeNaNTest.ets | 2 +- .../core/IntlNumberFormatRangeNegPosTest.ets | 2 +- .../core/IntlNumberFormatRangeNegPosTest2.ets | 2 +- .../core/IntlNumberFormatRangeOptionsTest.ets | 4 +- .../core/IntlNumberFormatRangePosNegTest.ets | 2 +- .../core/IntlNumberFormatRangePosNegTest2.ets | 2 +- .../core/IntlNumberFormatReadOptionsTest.ets | 68 +- .../IntlNumberFormatResolvedOptionsTest.ets | 240 +- ...IntlNumberFormatSupportedLocalesOfTest.ets | 20 +- ...ntlNumberFormatSupportedLocalesOfTest2.ets | 6 +- ...ntlNumberFormatSupportedLocalesOfTest3.ets | 18 +- .../std/core/IntlNumberFormatTest.ets | 2 +- .../std/core/IntlNumberFormatTest2.ets | 2 +- .../std/core/IntlNumberFormatToParts.ets | 80 +- .../IntlPluralRulesSupportedLocalesOfTest.ets | 34 +- .../std/core/IntlPluralRulesTest.ets | 35 +- .../std/core/IntlRelativeTimeFormatTest.ets | 46 +- .../std/core/IntlSegmenterTest.ets | 90 +- .../std/core/MethodAllTests.ets | 122 - .../std/core/MethodInvokeUndefinedTest.ets | 318 -- .../std/core/MirrorClassAllTests.ets | 144 - .../std/core/NullTypeAllTests.ets | 48 - .../ets_func_tests/std/core/NumberTest.ets | 57 +- .../ets_func_tests/std/core/NumberToFixed.ets | 32 +- .../std/core/NumericTypeAllTests.ets | 164 - .../core/NumericTypeAllTests.ets.expected.err | 14 - .../tests/ets_func_tests/std/core/Object.ets | 34 +- .../std/core/ParameterAllTests.ets | 31 - .../std/core/ReflectLambdaTest.ets | 40 - .../std/core/SetClssInherit.ets | 8 +- .../std/core/SortInternalTest.ets | 126 - .../std/core/SortInternalTestBoolean.ets | 19 + .../std/core/SortInternalTestByte.ets | 19 + .../std/core/SortInternalTestInt.ets | 19 + .../std/core/SortInternalTestLong.ets | 26 +- .../std/core/SortInternalTestShort.ets | 19 + .../std/core/StringAtExceptionTest.ets | 4 +- .../ets_func_tests/std/core/StringGetTest.ets | 91 - .../std/core/StringLengthNaNTest.ets | 39 - .../ets_func_tests/std/core/StringPadTest.ets | 6 +- .../std/core/StringTypeAllTests.ets | 63 - .../std/core/StringlocaleCompare.ets | 34 +- .../std/core/TypeAssignableTests.ets | 90 - .../std/core/TypeClassTypeTest.ets | 12 +- .../std/core/TypeCreateClassTest.ets | 8 +- .../std/core/TypeCreateErasedBodyTest.ets | 29 +- .../std/core/TypeCreateInterfaceTest.ets | 8 +- .../std/core/TypeCreatePrimitiveNameTest.ets | 6 +- .../std/core/TypeEqualsTests.ets | 93 - .../ets_func_tests/std/core/TypeFieldTest.ets | 59 +- .../std/core/TypeLambdaTypeTest.ets | 6 +- .../std/core/TypeMethodInvoke.ets | 18 +- .../std/core/TypeMethodInvokeConstructor.ets | 8 +- .../std/core/TypeMethodInvokeVirt.ets | 4 +- .../std/core/TypeMethodResolveConstructor.ets | 16 +- .../core/TypeMethodResolveConstructorFew.ets | 8 +- .../std/core/TypeMethodTest.ets | 138 +- .../ets_func_tests/std/core/TypeOfTests.ets | 212 - .../ets_func_tests/std/core/TypeResolve.ets | 12 +- .../std/core/TypeToStringTests.ets | 54 - .../std/core/TypedArrayReflectSetTest.ets | 251 + .../std/core/TypedArrayTransformTest.ets | 372 -- .../std/core/UndefinedTypeAllTests.ets | 48 - .../ets_func_tests/std/core/ValueAllTests.ets | 134 - .../std/core/VoidTypeAllTests.ets | 57 - .../core/dateformat/DateTimeFormatTest.ets | 16 +- .../IntlDateFormatCNOptionsYear2DigitTest.ets | 4 +- ...IntlDateFormatCNOptionsYearNumericTest.ets | 4 +- .../IntlDateFormatOptionsYear2DigitTest.ets | 4 +- .../IntlDateFormatOptionsYearNumericTest.ets | 4 +- .../IntlDateFormatRangeOptionsTest.ets | 24 +- .../IntlDateFormatRangeToPartsOptionsTest.ets | 4 +- .../core/dateformat/IntlDateFormatTest.ets | 8 +- .../IntlDateFormatToPartsOptionsTest.ets | 4 +- .../IntlDateTimeFormatStyleTest.ets | 4 +- ...IntlDateTimeFormatSupportedLocalesTest.ets | 36 +- .../dateformat/IntlTimeFormatOptionsTest.ets | 6 +- .../std/core/json/JsonElementParseTest.ets | 581 --- .../std/core/json/JsonElementTest.ets | 69 +- .../std/core/json/JsonStringifyBigIntTest.ets | 77 - .../json/JsonStringifyParseBigIntTest.ets | 102 - .../std/core/json/JsonStringifyTest.ets | 489 -- .../tolocalestr/BigIntLocaleStringTest.ets | 12 +- .../core/tolocalestr/DateLocaleStringTest.ets | 50 +- .../tolocalestr/NumberLocaleStringTest.ets | 30 +- .../std/debug/CountInstancesOfClass.ets | 142 - .../std/math/Log10IntExceptionTest.ets | 36 - .../ets_func_tests/std/math/RoundTest.ets | 52 +- .../std/math/TestClz64Function.ets | 32 +- .../std/math/TestIntegerLog10.ets | 2 + .../std/time/DateChangeTest.ets | 28 +- .../std/time/DateConstructorTest.ets | 88 +- .../ets_func_tests/std/time/DateCtorTypes.ets | 16 +- .../ets_sdk/api/@ohos/buffer/BlobTest.ets | 551 +- .../buffer/BufferCopyWriteConcatTest.ets | 261 - .../ets_sdk/api/@ohos/buffer/BufferImpl.ets | 463 +- .../api/@ohos/buffer/BufferIndexTest.ets | 37 +- .../ets_sdk/api/@ohos/buffer/BufferSearch.ets | 64 +- .../ets_sdk/api/@ohos/buffer/BufferTests.ets | 638 +-- .../api/@ohos/uri/UriTestAttributeNull.ets | 42 +- .../api/@ohos/uri/UriTestAttributeSet.ets | 427 +- .../api/@ohos/uri/UriTestCheckComplex.ets | 73 +- .../api/@ohos/uri/UriTestCheckSimple.ets | 64 +- .../api/@ohos/uri/UriTestConstructor.ets | 543 +- .../api/@ohos/uri/UriTestConstructor2.ets | 462 +- .../api/@ohos/uri/UriTestConstructor3.ets | 69 +- .../api/@ohos/uri/UriTestCreatePart.ets | 167 +- .../ets_sdk/api/@ohos/uri/UriTestEncode.ets | 64 +- .../ets_sdk/api/@ohos/uri/UriTestEquals.ets | 89 +- .../api/@ohos/uri/UriTestNormalize.ets | 42 +- .../ets_sdk/api/@ohos/uri/UriTestQuery.ets | 18 +- .../api/@ohos/uri/UriTestQueryComplex.ets | 150 +- .../api/@ohos/uri/UriTestQueryValue.ets | 124 +- .../ets_sdk/api/@ohos/uri/UriTestSegment.ets | 138 +- .../ets_sdk/api/@ohos/uri/UriTestToString.ets | 33 +- .../ets_sdk/api/@ohos/url/UrlTestGetSet.ets | 52 +- .../ets_sdk/api/@ohos/url/UrlTestHref.ets | 72 +- .../ets_sdk/api/@ohos/url/UrlTestIterator.ets | 34 +- .../ets_sdk/api/@ohos/url/UrlTestMethods.ets | 65 +- .../@ohos/url/UrlTestParamAppendDelete.ets | 26 +- .../api/@ohos/url/UrlTestParamCombine.ets | 96 +- .../api/@ohos/url/UrlTestParamGetSet.ets | 32 +- .../api/@ohos/url/UrlTestParamIterator.ets | 42 +- .../api/@ohos/url/UrlTestParamKeys.ets | 30 +- .../api/@ohos/url/UrlTestParamMethods.ets | 94 +- .../api/@ohos/url/UrlTestProperties.ets | 86 +- .../api/@ohos/url/UrlTestSearchParams.ets | 22 +- .../ets_sdk/api/@ohos/url/UrlTestXtsCases.ets | 444 -- .../util/ArrayList/ArrayListCapacityTest.ets | 48 +- .../ArrayListClearCloneGetCapacityTests.ets | 90 +- .../ArrayListConvertEmptyEndexTests.ets | 108 +- .../ArrayListCreateLegthAddTests.ets | 56 +- .../util/ArrayList/ArrayListForEachTest.ets | 94 +- ...rrayListGetLastIndexRemoveByIndexTests.ets | 107 +- .../ArrayListIncreaseCapIteratorTests.ets | 154 +- .../ArrayListInsertHasGetIndexOfTests.ets | 139 +- .../util/ArrayList/ArrayListLengthTest.ets | 120 +- .../util/ArrayList/ArrayListRemoveTest.ets | 50 +- .../util/ArrayList/ArrayListRemoveTests.ets | 90 +- .../ArrayListReplaceForEachTests.ets | 90 +- .../util/ArrayList/ArrayListSortCloneTest.ets | 44 +- .../ArrayListSortSubArrayListTests.ets | 146 +- .../@ohos/util/ArrayList/ArrayListTest.ets | 141 +- .../api/@ohos/util/Base64HelperTest.ets | 90 +- .../api/@ohos/util/CallbackWrapperTest.ets | 69 - .../Deque/DequeCreateLengthInsertTests.ets | 102 +- .../DequeGetFirstGetLastIteratorTests.ets | 78 +- .../util/Deque/DequeHasPopForEachTests.ets | 129 +- .../api/@ohos/util/Deque/DequeHasPopTest.ets | 153 - .../api/@ohos/util/Deque/DequeIndexTests.ets | 30 +- .../api/@ohos/util/Deque/DequeInsertTest.ets | 149 - .../api/@ohos/util/Deque/DequePopTest.ets | 10 +- .../api/@ohos/util/Deque/DequeTest.ets | 113 - .../ets_sdk/api/@ohos/util/FormatTest.ets | 90 +- .../util/GenerateRandomBinaryUUIDTest.ets | 33 - .../api/@ohos/util/GenerateRandomUUIDTest.ets | 20 +- .../ets_sdk/api/@ohos/util/GetHashTest.ets | 43 +- .../HashMapClearKeysValuesReplaceTest.ets | 34 +- .../HashMapConstructorIsEmptyClearTest.ets | 56 +- .../HashMapEntriesIteratorForeachTest.ets | 56 +- .../@ohos/util/HashMap/HashMapEntriesTest.ets | 6 +- .../HashMapForEachKeysValuesIteratorTest.ets | 52 +- .../HashMap/HashMapHasKeyHasValueGetTest.ets | 8 +- .../HashMap/HashMapHasKeyHasValueTest.ets | 46 +- .../HashMapLengthConstructorIsEmptyTest.ets | 16 +- .../util/HashMap/HashMapRemoveReplaceTest.ets | 66 +- .../HashMap/HashMapSetAllSetRemoveTest.ets | 34 +- .../util/HashMap/HashMapSetGetSetAllTest.ets | 94 +- .../api/@ohos/util/HashMap/HashMapTest.ets | 12 +- .../HashSet/HashClearValuesForEachTest.ets | 151 - .../util/HashSet/HashSetAddRemoveTest.ets | 55 +- .../util/HashSet/HashSetClearForEachTest.ets | 29 +- .../HashSet/HashSetConstructorIsEmptyTest.ets | 33 +- .../HashSet/HashSetEntriesIteratorTest.ets | 139 - .../@ohos/util/HashSet/HashSetEntriesTest.ets | 13 +- .../util/HashSet/HashSetHasAddRemoveTest.ets | 167 - .../api/@ohos/util/HashSet/HashSetHasTest.ets | 35 +- .../HashSetLengthConstructorIsEmptyTest.ets | 118 - .../api/@ohos/util/HashSet/HashSetTest.ets | 130 - .../HashSet/HashSetValuesIteratorTest.ets | 29 +- .../api/@ohos/util/LRUCacheExceptionTest.ets | 40 +- .../api/@ohos/util/LRUCacheIteratorTest.ets | 80 +- .../ets_sdk/api/@ohos/util/LRUCacheTest.ets | 88 +- .../LightWeightMapClearKeysValuesTest.ets | 110 - .../LightWeightMapConstructorIsEmptyTest.ets | 35 +- ...LightWeightMapConstructorSetAllSetTest.ets | 78 - ...ightWeightMapEntriesRemoveGetKeyAtTest.ets | 165 - .../LightWeightMapEntriesTest.ets | 15 +- .../LightWeightMapForEachIteratorTest.ets | 189 - .../LightWeightMapForEachKeysValuesTest.ets | 65 +- .../LightWeightMapGetIndexOfKeyValueTest.ets | 112 - .../LightWeightMapGetKeyAtTest.ets | 58 +- ...htWeightMapGetKeysValuesSetValueAtTest.ets | 82 - .../LightWeightMap/LightWeightMapGetTest.ets | 123 - ...LightWeightMapHasAllHasKeyHasValueTest.ets | 81 +- ...asAllHasKeyValueIncreaseCapacityToTest.ets | 145 - .../LightWeightMapIsEmptyTest.ets | 59 - ...eratorGetIndexOfKeyGetIndexOfValueTest.ets | 49 +- ...ghtMapRemoveAtSetValueAtGetValueAtTest.ets | 118 - .../LightWeightMapRemoveAtTest.ets | 55 +- .../LightWeightMapSetAllRemoveClearTest.ets | 69 +- .../LightWeightMapSetGetTest.ets | 71 +- ...LightWeightMapSetValueAtGetValueAtTest.ets | 88 +- ...eightMapToStringIncreaseCapacityToTest.ets | 53 +- .../LightWeightMapToStringTest.ets | 51 - .../LightWeightMap/LightweightMapTest.ets | 147 - .../LightWeightSetAddAllHasAllHasTest.ets | 95 +- ...ightWeightSetConstructorIsEmptyAddTest.ets | 55 +- .../LightWeightSetEntriesTest.ets | 14 +- ...ghtWeightSetForEachIteratorEntriesTest.ets | 214 - ...ightWeightSetForEachValuesIteratorTest.ets | 56 +- ...ightWeightSetGetIndexOfRemoveClearTest.ets | 69 +- .../LightWeightSetGetValueAtTest.ets | 64 +- .../LightWeightSetGetValueAtToStringTest.ets | 131 - .../LightWeightSetHasRemoveClearTest.ets | 104 - ...aseCapacityToRemoveAtToArrayValuesTest.ets | 202 - ...ghtWeightSetIsEmptyAddAddAllHasAllTest.ets | 110 - .../LightWeightSet/LightWeightSetJsonTest.ets | 119 - .../LightWeightSetJsonTests.ets | 122 - .../LightWeightSetRemoveAtTest.ets | 55 +- .../LightWeightSet/LightWeightSetTest.ets | 147 - ...tToStringIncreaseCapacityToToArrayTest.ets | 87 +- .../util/LinkedList/LinkedListAddTest.ets | 213 - .../LinkedList/LinkedListClearCloneTest.ets | 150 - .../LinkedList/LinkedListCloneClearTests.ets | 84 +- .../LinkedListCreateLengthAddTest.ets | 119 +- .../LinkedListForEachIteratorTest.ets | 86 +- .../util/LinkedList/LinkedListForEachTest.ets | 246 - .../LinkedList/LinkedListGetFirstLastTest.ets | 48 +- .../LinkedList/LinkedListGetIndexOfTests.ets | 66 +- .../util/LinkedList/LinkedListGetTest.ets | 163 - .../LinkedList/LinkedListInsertHasGetTest.ets | 135 +- .../LinkedListRemoveByIndexTests.ets | 162 +- .../LinkedList/LinkedListRemoveFoundTests.ets | 88 +- .../LinkedList/LinkedListSetConvertTests.ets | 94 +- .../@ohos/util/LinkedList/LinkedListTest.ets | 203 - .../@ohos/util/List/ListAddInsertTests.ets | 185 +- .../util/List/ListClearSetConvertTests.ets | 117 +- .../@ohos/util/List/ListCreateLengthTests.ets | 78 +- .../api/@ohos/util/List/ListForEachTests.ets | 161 - .../ListGetFirstLastEmptyIteratorTests.ets | 64 +- .../ListGetIndexOfEqualRemoveByIndexTests.ets | 126 +- .../@ohos/util/List/ListGetIndexofTest.ets | 146 - .../List/ListHasGetGetLastIndexOfTests.ets | 98 +- .../api/@ohos/util/List/ListIndexTests.ets | 78 +- .../@ohos/util/List/ListInsertHasTests.ets | 107 - .../List/ListRemoveReplaceForEachTests.ets | 148 +- .../@ohos/util/List/ListReplaceSortTests.ets | 191 - .../api/@ohos/util/List/ListSetTests.ets | 150 - .../util/List/ListSortGetSubListTests.ets | 189 +- .../ets_sdk/api/@ohos/util/List/ListTests.ets | 245 - .../ets_sdk/api/@ohos/util/ParseUUIDTest.ets | 55 - .../PlainArray/PlainArrayCloneAddTest.ets | 133 - .../PlainArray/PlainArrayCloneAddTests.ets | 83 +- .../PlainArrayCreateLengthIsEmptyTests.ets | 107 +- .../PlainArrayForEachIteratorTests.ets | 104 +- .../util/PlainArray/PlainArrayForEachTest.ets | 123 - .../util/PlainArray/PlainArrayGetHasTest.ets | 126 - .../PlainArrayGetIndexOfKeyOfValueTests.ets | 87 +- .../PlainArray/PlainArrayGetIndexOfTest.ets | 94 - .../util/PlainArray/PlainArrayGetSetTest.ets | 128 - .../PlainArrayGetValueAtGetKeyAtTests.ets | 115 +- ...ainArrayRemoveRemoveAtRemoveRangeTests.ets | 148 +- .../util/PlainArray/PlainArrayRemoveTest.ets | 109 - ...PlainArraySetValueAtToStringClearTests.ets | 91 +- .../@ohos/util/PlainArray/PlainArrayTest.ets | 148 - .../PlainArrayToStringClearTest.ets | 111 - .../ets_sdk/api/@ohos/util/PromisifyTest.ets | 79 - .../@ohos/util/Queue/QueueAddPopGetTest.ets | 120 - .../Queue/QueueCreateLengthAddPopTests.ets | 102 +- .../QueueForEachGetFirstIteratorTests.ets | 110 +- .../api/@ohos/util/Queue/QueueForEachTest.ets | 164 - .../api/@ohos/util/Queue/QueueTest.ets | 77 - .../CompareGetCommonFactorTest.ets | 34 +- ...sValueOfGetDenominatorGetNumeratorTest.ets | 44 +- .../IsFiniteIsNaNIsZeroToStringTest.ets | 42 +- ...onalNumberCreateRationalFromStringTest.ets | 56 +- .../ets_sdk/api/@ohos/util/ScopeHelper.ets | 118 +- .../StackCreateLengthPushPopPeekTests.ets | 115 +- .../Stack/StackLocateForEachIteratorTests.ets | 133 +- .../util/Stack/StackLocateForEachTest.ets | 105 - .../@ohos/util/Stack/StackPushPopPeekTest.ets | 123 - .../api/@ohos/util/Stack/StackTest.ets | 83 - .../@ohos/util/StringDecoder/EncodingTest.ets | 277 +- .../util/StringDecoder/EncodingUtf8Test.ets | 51 +- .../TextDecoder/TextDecoderCreateTest.ets | 217 - .../TextDecoderDecodeToStringTest.ets | 183 - .../api/@ohos/util/TextDecoderTest.ets | 179 + .../TextEncoderConstructorTest.ets | 232 - .../TextEncoder/TextEncoderEncodeIntoTest.ets | 107 - .../api/@ohos/util/TextEncoderTest.ets | 251 + .../TreeMapClearKeysValuesEntriesTest.ets | 293 -- .../TreeMapConstructorIsEmptyGetTest.ets | 157 - .../TreeMap/TreeMapConstructorIsEmptyTest.ets | 57 +- .../@ohos/util/TreeMap/TreeMapEntriesTest.ets | 13 +- ...TreeMapGetFirstKeyGetLastKeyRemoveTest.ets | 198 - .../TreeMapGetFirstKeyGetLastKeyTest.ets | 57 +- .../TreeMapGetLowerKeyGetHigherKeyTest.ets | 77 +- ...TreeMapHasKeyHasValueSetAllForEachTest.ets | 65 +- .../TreeMap/TreeMapHasKeyHasValueSetTest.ets | 148 - .../TreeMap/TreeMapKeysValuesIteratorTest.ets | 39 +- .../TreeMap/TreeMapRemoveReplaceClearTest.ets | 77 +- .../TreeMap/TreeMapReplaceForEachTest.ets | 267 - ...eeMapSetAllGetLowerKeyGetHigherKeyTest.ets | 217 - .../@ohos/util/TreeMap/TreeMapSetGetTest.ets | 61 +- .../api/@ohos/util/TreeMap/TreeMapTest.ets | 214 - .../@ohos/util/TreeSet/TreeSetAddHasTest.ets | 71 +- .../TreeSetConstructorIsEmptyHasTest.ets | 180 - .../TreeSet/TreeSetConstructorIsEmptyTest.ets | 55 +- .../@ohos/util/TreeSet/TreeSetEntriesTest.ets | 15 +- .../TreeSet/TreeSetForEachEntriesTest.ets | 278 - .../util/TreeSet/TreeSetForEachValuesTest.ets | 32 +- .../TreeSetGetFirstValueGetLastValueTest.ets | 69 +- ...etFirstValuleGetLastValueAddRemoveTest.ets | 186 - ...etGetLowerValueGetHigherValueClearTest.ets | 171 - ...TreeSetGetLowerValueGetHigherValueTest.ets | 85 +- .../TreeSetPopFirstPopLastIteratorTest.ets | 67 +- .../TreeSetPopFirstPopLastValuesTest.ets | 214 - .../util/TreeSet/TreeSetRemoveClearTest.ets | 62 +- .../api/@ohos/util/TreeSet/TreeSetTest.ets | 178 - .../tests/ets_sdk/api/@ohos/util/json/Has.ets | 35 + .../ets_sdk/api/@ohos/util/json/Parse.ets | 98 + .../ets_sdk/api/@ohos/util/json/Stringify.ets | 79 + .../@ohos/util/stream/StreamDuplexTest.ets | 181 + .../util/stream/StreamDuplexTestPart1.ets | 272 - .../util/stream/StreamDuplexTestPart2.ets | 201 - .../stream/StreamPipeEnCodingTestPart1.ets | 259 - .../stream/StreamPipeEnCodingTestPart2.ets | 182 - .../stream/StreamPipeEnCodingTestPart3.ets | 181 - .../stream/StreamPipeEnCodingTestPart4.ets | 189 - .../stream/StreamPipeEnCodingTestPart5.ets | 180 - .../stream/StreamPipeEnCodingTestPart6.ets | 184 - .../stream/StreamPipeEnCodingTestPart7.ets | 509 -- .../@ohos/util/stream/StreamReadableTest.ets | 159 + .../util/stream/StreamReadableTestPart1.ets | 418 -- .../util/stream/StreamReadableTestPart2.ets | 274 - .../util/stream/StreamReadableTestPart3.ets | 118 - .../util/stream/StreamReadableTestPart4.ets | 181 - .../@ohos/util/stream/StreamTransformTest.ets | 197 + .../util/stream/StreamTransformTestPart1.ets | 332 -- .../util/stream/StreamTransformTestPart2.ets | 230 - .../@ohos/util/stream/StreamWritableTest.ets | 115 + .../util/stream/StreamWritableTestPart1.ets | 226 - .../util/stream/StreamWritableTestPart2.ets | 201 - .../util/stream/StreamWritableTestPart3.ets | 225 - .../util/stream/StreamWritableTestPart4.ets | 283 - .../util/stream/StreamWritableTestPart5.ets | 312 -- .../util/stream/StreamWritableTestPart6.ets | 327 -- .../util/stream/StreamWritableTestPart7.ets | 500 -- .../@ohos/util/types/IsAnyArrayBufferTest.ets | 12 +- .../@ohos/util/types/IsArrayBufferTest.ets | 12 +- .../util/types/IsArrayBufferViewTest.ets | 12 +- .../@ohos/util/types/IsBigInt64ArrayTest.ets | 12 +- .../@ohos/util/types/IsBigUint64ArrayTest.ets | 14 +- .../api/@ohos/util/types/IsDataViewTest.ets | 12 +- .../api/@ohos/util/types/IsDateTest.ets | 12 +- .../@ohos/util/types/IsFloat32ArrayTest.ets | 12 +- .../@ohos/util/types/IsFloat64ArrayTest.ets | 12 +- .../api/@ohos/util/types/IsInt16ArrayTest.ets | 12 +- .../api/@ohos/util/types/IsInt32ArrayTest.ets | 12 +- .../api/@ohos/util/types/IsInt8ArrayTest.ets | 12 +- .../@ohos/util/types/IsMapIteratorTest.ets | 41 +- .../api/@ohos/util/types/IsMapTest.ets | 12 +- .../@ohos/util/types/IsNativeErrorTest.ets | 12 +- .../api/@ohos/util/types/IsPromiseTest.ets | 12 +- .../api/@ohos/util/types/IsRegExpTest.ets | 12 +- .../@ohos/util/types/IsSetIteratorTest.ets | 12 +- .../api/@ohos/util/types/IsSetTest.ets | 12 +- .../api/@ohos/util/types/IsTypedArrayTest.ets | 12 +- .../@ohos/util/types/IsUint16ArrayTest.ets | 12 +- .../@ohos/util/types/IsUint32ArrayTest.ets | 12 +- .../api/@ohos/util/types/IsUint8ArrayTest.ets | 12 +- .../util/types/IsUint8ClampedArrayTest.ets | 12 +- .../api/@ohos/util/types/IsWeakMapTest.ets | 12 +- .../api/@ohos/util/types/IsWeakSetTest.ets | 12 +- ...mlDynamicSerializerAddEmptyElementTest.ets | 93 - .../XmlDynamicSerializerEndElementTest.ets | 69 - .../XmlDynamicSerializerErrorTest.ets | 106 +- .../XmlDynamicSerializerErrorTests.ets | 151 - .../XmlDynamicSerializerSetAttributesTest.ets | 108 +- .../XmlDynamicSerializerSetCdataTest.ets | 90 - .../XmlDynamicSerializerSetCommentTest.ets | 88 - ...izerSetDeclarationAndBoundaryValueTest.ets | 45 +- .../XmlDynamicSerializerSetDocTypeTest.ets | 86 - .../XmlDynamicSerializerSetNamespaceTest.ets | 96 +- .../XmlDynamicSerializerSetTextTest.ets | 143 - .../XmlDynamicSerializerStartElementTest.ets | 121 +- .../api/@ohos/xml/XmlPullParserTest.ets | 160 +- .../api/@ohos/xml/XmlPullParserTest10.ets | 119 +- .../xml/XmlPullParserTest10.ets.expected.err | 20 - .../api/@ohos/xml/XmlPullParserTest11.ets | 725 --- .../api/@ohos/xml/XmlPullParserTest2.ets | 30 +- .../api/@ohos/xml/XmlPullParserTest3.ets | 52 +- .../xml/XmlPullParserTest3.ets.expected.err | 15 - .../api/@ohos/xml/XmlPullParserTest4.ets | 62 +- .../api/@ohos/xml/XmlPullParserTest5.ets | 58 +- .../xml/XmlPullParserTest5.ets.expected.err | 14 - .../api/@ohos/xml/XmlPullParserTest6.ets | 60 +- .../api/@ohos/xml/XmlPullParserTest7.ets | 28 +- .../xml/XmlPullParserTest7.ets.expected.err | 14 - .../api/@ohos/xml/XmlPullParserTest8.ets | 50 +- .../api/@ohos/xml/XmlPullParserTest9.ets | 59 +- .../xml/XmlPullParserTest9.ets.expected.err | 17 - .../XmlSerializerAddEmptyElementTest.ets | 112 - .../XmlSerializerEndElementTest.ets | 102 +- .../XmlSerializerSetAttributesTest.ets | 220 +- .../XmlSerializerSetCDATATest.ets | 159 - .../XmlSerializerSetCommentTest.ets | 108 - .../XmlSerializerSetDeclarationTest.ets | 92 - .../XmlSerializerSetDocTypeTest.ets | 106 - .../XmlSerializerSetNamespaceTest.ets | 83 +- .../XmlSerializerSetTextTest.ets | 124 - .../XmlSerializerStartElementTest.ets | 130 +- .../BitVector/createPushPopTests.ets | 60 +- .../BitVector/flipBitByIndexTests.ets | 67 +- .../BitVector/flipBitsByRangeTests.ets | 72 +- .../BitVector/getBitCountByRangeTests.ets | 64 +- .../BitVector/getBitsByRangeTests.ets | 62 +- .../collections/BitVector/getIndexOfTests.ets | 128 - .../BitVector/getLastIndexOfTests.ets | 127 - .../@arkts/collections/BitVector/hasTests.ets | 106 +- .../collections/BitVector/resizeTests.ets | 65 +- .../BitVector/setBitsByRangeTests.ets | 72 +- .../BitVector/valuesSetAllBitsTests.ets | 64 +- .../arkts/@arkts/math/Decimal/Modulo.ets | 2 +- .../arkts/@arkts/math/Decimal/Rounding.ets | 2 +- .../arkts/@arkts/math/Decimal/absTests.ets | 2 +- .../@arkts/math/Decimal/acosTestsPart1.ets | 74 - .../@arkts/math/Decimal/acoshTestsPart1.ets | 46 - .../@arkts/math/Decimal/acoshTestsPart2.ets | 49 - .../arkts/@arkts/math/Decimal/addTests.ets | 424 -- .../@arkts/math/Decimal/asinTestsPart1.ets | 71 - .../@arkts/math/Decimal/asinhTestsPart1.ets | 65 - .../arkts/@arkts/math/Decimal/atan2Tests.ets | 115 - .../@arkts/math/Decimal/atan2TestsPart2.ets | 57 - .../@arkts/math/Decimal/atanTestsPart1.ets | 68 - .../arkts/@arkts/math/Decimal/atanhTests.ets | 86 - .../@arkts/math/Decimal/cbrtTestsPart1.ets | 83 - .../@arkts/math/Decimal/cbrtTestsPart2.ets | 43 - .../@arkts/math/Decimal/cbrtTestsPart3.ets | 35 - .../@arkts/math/Decimal/cbrtTestsPart4.ets | 34 - .../@arkts/math/Decimal/cbrtTestsPart5.ets | 44 - .../@arkts/math/Decimal/constructorTests.ets | 272 +- .../arkts/@arkts/math/Decimal/cosTests.ets | 147 - .../@arkts/math/Decimal/coshTestsPart1.ets | 116 - .../@arkts/math/Decimal/coshTestsPart2.ets | 64 - .../@arkts/math/Decimal/divStaticTests.ets | 111 - .../arkts/@arkts/math/Decimal/divTests.ets | 297 -- .../math/Decimal/dividedToIntegerByTests.ets | 74 - .../arkts/@arkts/math/Decimal/dpSdTests.ets | 70 - .../arkts/@arkts/math/Decimal/expTests.ets | 149 - .../arkts/@arkts/math/Decimal/hypotTests.ets | 104 + .../@arkts/math/Decimal/hypotTestsPart1.ets | 65 - .../@arkts/math/Decimal/hypotTestsPart2.ets | 52 - .../@arkts/math/Decimal/hypotTestsPart3.ets | 46 - .../@arkts/math/Decimal/hypotTestsPart4.ets | 39 - .../@arkts/math/Decimal/hypotTestsPart5.ets | 35 - .../@arkts/math/Decimal/hypotTestsPart6.ets | 37 - .../@arkts/math/Decimal/hypotTestsPart7.ets | 46 - .../arkts/@arkts/math/Decimal/intPowTests.ets | 155 - .../@arkts/math/Decimal/isFiniteTests.ets | 2 +- .../@arkts/math/Decimal/isPositiveTests.ets | 2 +- .../@arkts/math/Decimal/lnTestsPart1.ets | 74 - .../@arkts/math/Decimal/lnTestsPart10.ets | 90 - .../@arkts/math/Decimal/lnTestsPart11.ets | 86 - .../@arkts/math/Decimal/lnTestsPart12.ets | 52 - .../@arkts/math/Decimal/lnTestsPart2.ets | 78 - .../@arkts/math/Decimal/lnTestsPart3.ets | 92 - .../@arkts/math/Decimal/lnTestsPart4.ets | 89 - .../@arkts/math/Decimal/lnTestsPart5.ets | 96 - .../@arkts/math/Decimal/lnTestsPart6.ets | 60 - .../@arkts/math/Decimal/lnTestsPart7.ets | 129 - .../@arkts/math/Decimal/lnTestsPart8.ets | 96 - .../@arkts/math/Decimal/lnTestsPart9.ets | 82 - .../@arkts/math/Decimal/log10TestsPart1.ets | 94 - .../@arkts/math/Decimal/log10TestsPart2.ets | 94 - .../@arkts/math/Decimal/log2TestsPart1.ets | 45 - .../@arkts/math/Decimal/logTestsPart1.ets | 85 - .../@arkts/math/Decimal/logTestsPart2.ets | 77 - .../@arkts/math/Decimal/logTestsPart3.ets | 52 - .../@arkts/math/Decimal/logTestsPart4.ets | 80 - .../@arkts/math/Decimal/logTestsPart5.ets | 56 - .../@arkts/math/Decimal/logTestsPart6.ets | 70 - .../@arkts/math/Decimal/logTestsPart7.ets | 65 - .../@arkts/math/Decimal/minAndMaxTests.ets | 14 +- .../arkts/@arkts/math/Decimal/modTests1.ets | 299 -- .../arkts/@arkts/math/Decimal/modTests2.ets | 91 - .../arkts/@arkts/math/Decimal/modTests3.ets | 94 - .../arkts/@arkts/math/Decimal/modTests4.ets | 85 - .../arkts/@arkts/math/Decimal/mulTests.ets | 271 - .../arkts/@arkts/math/Decimal/negateTests.ets | 2 +- .../@arkts/math/Decimal/powTestsPart1.ets | 70 - .../@arkts/math/Decimal/powTestsPart2.ets | 73 - .../@arkts/math/Decimal/powTestsPart3.ets | 81 - .../arkts/@arkts/math/Decimal/randomTests.ets | 4 +- .../arkts/@arkts/math/Decimal/roundTests.ets | 2 +- .../arkts/@arkts/math/Decimal/setTests.ets | 71 +- .../arkts/@arkts/math/Decimal/signTests.ets | 6 +- .../@arkts/math/Decimal/sinTestsPart1.ets | 88 - .../@arkts/math/Decimal/sinTestsPart2.ets | 85 - .../@arkts/math/Decimal/sinTestsPart3.ets | 37 - .../@arkts/math/Decimal/sinTestsPart4.ets | 33 - .../@arkts/math/Decimal/sinTestsPart5.ets | 35 - .../arkts/@arkts/math/Decimal/sinhTests.ets | 145 - .../@arkts/math/Decimal/sqrtStaticTests.ets | 108 - .../@arkts/math/Decimal/sqrtTestsPart1.ets | 109 - .../@arkts/math/Decimal/sqrtTestsPart2.ets | 322 -- .../arkts/@arkts/math/Decimal/subTests.ets | 462 -- .../@arkts/math/Decimal/tanTestsPart1.ets | 102 - .../@arkts/math/Decimal/tanTestsPart2.ets | 57 - .../@arkts/math/Decimal/tanTestsPart3.ets | 40 - .../@arkts/math/Decimal/tanTestsPart4.ets | 36 - .../@arkts/math/Decimal/tanTestsPart5.ets | 33 - .../@arkts/math/Decimal/tanTestsPart6.ets | 33 - .../@arkts/math/Decimal/tanhTestsPart1.ets | 116 - .../math/Decimal/toBinaryTestsPart1.ets | 68 +- .../math/Decimal/toBinaryTestsPart2.ets | 2 +- .../math/Decimal/toBinaryTestsPart3.ets | 110 - .../math/Decimal/toDecimalPlacesTests.ets | 2 +- .../@arkts/math/Decimal/toFractionTests1.ets | 274 - .../@arkts/math/Decimal/toFractionTests2.ets | 159 - .../math/Decimal/toHexadecimalTests.ets | 2 +- .../@arkts/math/Decimal/toNumberTests.ets | 84 +- .../@arkts/math/Decimal/toOctalTests.ets | 2 +- .../@arkts/math/Decimal/toPrecisionTests.ets | 18 +- .../@arkts/math/Decimal/toStringTests.ets | 770 ++- .../ets/tests/ets_sdk/fuzztest/BUILD.gn | 14 +- .../anistringdecoder_fuzzer.cpp | 4 +- .../ets/tests/ets_sdk/fuzztest/fuzzer.gni | 2 +- .../ets/tests/ets_test_suite/CMakeLists.txt | 45 +- .../tests/ets_test_suite/ani/CMakeLists.txt | 3 - .../tests/ets_test_suite/ani/example_lib.cpp | 4 +- .../tests/ets_test_suite/any/CMakeLists.txt | 21 - .../tests/ets_test_suite/any/relaxed_any.ets | 88 - .../backtrace/call_backtrace.ets | 6 +- .../ets_test_suite/coroutines/CMakeLists.txt | 69 +- .../ets_test_suite/coroutines/affinity.ets | 35 +- .../coroutines/allhandled_rejection.ets | 49 +- .../ets_test_suite/coroutines/async_call.ets | 75 +- .../tests/ets_test_suite/coroutines/await.ets | 92 +- .../await_async_return_reject_promise.ets | 21 +- .../coroutines/await_migrate.ets | 11 +- .../coroutines/await_standalone_promise.ets | 19 +- .../coroutines/class_load_race.ets | 12 +- .../coroutines/concurrent_await.ets | 12 +- .../coroutines/dfx/CMakeLists.txt | 20 - .../coroutines/dfx/coroutine_dfx_test.cpp | 71 - .../coroutines/dfx/coroutine_dfx_test.ets | 35 - .../coroutines/eaworker_coroutines.ets | 65 +- .../coroutines/elauncher_id.ets | 11 +- .../ets_test_suite/coroutines/eworker_id.ets | 40 +- .../coroutines/eworker_interop_exception.ets | 18 +- .../coroutines/eworker_parameter.ets | 71 +- .../coroutines/eworker_post_to_main.ets | 18 +- .../coroutines/eworker_unlimited.ets | 24 +- .../coroutines/eworkers_reached_limit.ets | 21 +- .../coroutines/execution_order.ets | 26 +- .../ets_test_suite/coroutines/job_test.ets | 15 +- .../ets_test_suite/coroutines/launch.ets | 164 +- .../coroutines/launch_exception.ets | 74 +- .../coroutines/launch_instr_array.ets | 9 +- .../coroutines/launch_instruction.ets | 142 +- .../coroutines/launch_launch.ets | 11 +- .../coroutines/launch_n_workers.ets | 58 +- .../ets_test_suite/coroutines/launch_oom.ets | 23 +- .../coroutines/launch_return.ets | 82 +- .../coroutines/launch_yield.ets | 15 +- .../coroutines/multiple_launch.ets | 79 +- .../coroutines/scale_workers_pool.ets | 13 +- .../ets_test_suite/coroutines/setTimeout.ets | 262 +- .../tests/ets_test_suite/coroutines/stats.ets | 14 +- .../coroutines/sync_primitives.ets | 128 - .../coroutines/unhandled_rejection.ets | 108 +- .../coroutines/unhandled_rejection_event.ets | 106 - .../unhandled_rejection_promise.ets | 97 - .../coroutines/wake_for_another_event.ets | 15 +- .../coroutines/worker_group.ets | 198 - .../tests/ets_test_suite/functions/name.ets | 37 +- .../tests/ets_test_suite/gc/CMakeLists.txt | 19 +- .../tests/ets_test_suite/gc/alloc_pinned.ets | 2 +- .../ets_test_suite/gc/concurrent_start_gc.ets | 6 +- .../gc/finalization_registry_coro_test.ets | 18 +- .../finalization_registry_deadlock_test.ets | 2 +- .../gc/finalization_registry_test.ets | 42 +- .../ets_test_suite/gc/free_heap_size_test.ets | 12 +- .../gc/get_object_address_test.ets | 6 +- .../ets_test_suite/gc/heap_info_test.ets | 4 +- .../gc/pending_exception_gc_test.ets | 2 +- .../tests/ets_test_suite/gc/pin_object.ets | 36 +- .../ets_test_suite/gc/postpone_gc_test.ets | 50 +- .../gc/register_native_allocation_test.ets | 24 +- .../gc/run_gc_every_safepoint.ets | 8 +- .../tests/ets_test_suite/gc/scheduled_gc.ets | 17 +- .../gc/scheduled_gc_trigger_exception.ets | 9 +- .../ets_test_suite/gc/space_type_test.ets | 17 +- .../gc/stress/test_stress_gc_humongous.ets | 119 +- .../gc/stress/test_stress_gc_humongous_bq.ets | 18 +- .../gc/test_finreg_in_different_coros.ets | 6 +- .../tests/ets_test_suite/gc/weak_ref_test.ets | 24 +- .../ets_test_suite/generics/CMakeLists.txt | 23 - .../ets_test_suite/intrinsics/CMakeLists.txt | 112 - .../additional2.ets | 2 +- .../ets_test_suite/linker/default_method1.ets | 2 +- .../ets_test_suite/linker/default_method2.ets | 4 +- .../ets_test_suite/linker/default_method3.ets | 4 +- .../ets_test_suite/linker/default_method4.ets | 4 +- .../linker/implements_basic.ets | 2 +- .../native/runtime_linker_extensions.cpp | 19 +- .../linker/override_abstract.ets | 2 +- .../ets_test_suite/linker/override_basic.ets | 2 +- .../ets_test_suite/linker/runtime_linker.ets | 68 +- .../linker/runtime_linker_extensions.ets | 92 +- .../test_app_linker_context_exception.sh | 2 +- .../tests/ets_test_suite/linker/variance.ets | 2 +- .../ets_test_suite/modules/CMakeLists.txt | 14 +- .../ets_test_suite/modules/app/module1.ets | 66 +- .../incompatible_foo/not_verified_method.txt | 2 +- .../modules/mismatched/app/module4.ets | 2 +- .../ets_test_suite/modules/spawn/spawn.cpp | 16 +- .../ets_test_suite/modules/spawn/spawn.ets | 22 +- .../verification_i32f64misuse/src/foo.ets | 2 +- .../object_literal/is_interface_literal.ets | 2 +- .../ets_test_suite/profiler/CMakeLists.txt | 57 - .../profiler/profile_saver_test.cpp | 177 - .../profiler/profile_saver_test.ets | 30 - .../ets_test_suite/strings/CMakeLists.txt | 34 - .../ets_test_suite/strings/string_api.ets | 201 +- .../strings/string_compare_to.ets | 2 +- .../ets_test_suite/strings/string_concat.ets | 31 - .../ets_test_suite/tooling/CMakeLists.txt | 55 - .../tooling/profile_arkapi_test.cpp | 115 - .../tooling/profile_arkapi_test.ets | 67 - .../ets_test_suite/unions/CMakeLists.txt | 104 - .../unions/correct_union_arg.pa | 37 - .../unions/correct_union_arg_2.pa | 35 - .../unions/correct_union_arg_redecl.pa | 49 - .../unions/correct_union_override.pa | 57 - .../unions/correct_union_override_2.pa | 52 - .../ets_test_suite/unions/neg_union_arg.pa | 37 - .../unions/neg_union_not_in_boot_context.pa | 62 - .../unions/neg_union_override_multi1.pa | 56 - .../unions/neg_union_override_multi2.pa | 39 - .../unions/neg_union_override_multi3.pa | 39 - .../unions/neg_union_override_multi4.pa | 42 - .../unions/neg_union_override_multi5.pa | 41 - .../ets_test_suite/unions/unions_general.ets | 98 - .../ets_ts_subset/std/core/PromiseAll.ets | 2 +- .../std/core/PromiseAllReject.ets | 2 +- .../std/core/PromiseAllRejectDeferred.ets | 2 +- .../core/PromiseAllRejectIgnoredDeferred.ets | 2 +- .../std/core/PromiseAllSettledEmpty.ets | 2 +- .../std/core/PromiseAllSettledMixed.ets | 2 +- .../std/core/PromiseAllSettledRejectAll.ets | 2 +- .../core/PromiseAllSettledRejectDeferred.ets | 2 +- .../std/core/PromiseAllSettledResolve.ets | 2 +- .../core/PromiseAllSettledThenableStatus.ets | 2 +- .../std/core/PromiseAnyEmpty.ets | 8 +- .../std/core/PromiseAnyPoisonedThen.ets | 10 +- .../std/core/PromiseAnyReject.ets | 10 +- .../std/core/PromiseAnyRejectDeferred.ets | 10 +- .../std/core/PromiseAnyRejectIgnored.ets | 2 +- .../core/PromiseAnyRejectIgnoredDeferred.ets | 2 +- .../std/core/PromiseAnyRejectThenable.ets | 10 +- .../std/core/PromiseAnyResolve.ets | 4 +- .../PromiseAnyResolveLateRejectIgnored.ets | 4 +- .../std/core/PromiseAnySequence4.ets | 14 +- ...PromiseExceptionAfterResolveInExecutor.ets | 2 +- .../std/core/PromiseRacePoisonedThen.ets | 2 +- .../std/core/PromiseRaceRejectDeferred.ets | 2 +- .../core/PromiseRaceRejectIgnoredDeferred.ets | 2 +- .../std/core/PromiseRaceRejectThenable.ets | 2 +- .../core/PromiseRaceResolvePoisonedThen.ets | 2 +- .../std/core/PromiseRaceResolveThenable.ets | 2 +- .../std/core/PromiseRaceSequence1.ets | 4 +- .../implicit_boxing_unboxing_1-expected.txt | 39 + .../implicit_boxing_unboxing_1.ets | 5 +- ...ohibit_top_level_statements_1-expected.txt | 4 + .../prohibit_top_level_statements_1.ets | 2 +- ...ohibit_top_level_statements_2-expected.txt | 5 + .../prohibit_top_level_statements_2.ets | 6 +- .../remove_async_tests_2-expected.txt | 2 +- ...nings_suppression_begin_end_2-expected.txt | 10 +- .../ets/tests/integrational/mock_stdlib.pa | 3 +- .../cmake/interop_js_tests_arkjsvm.cmake | 63 +- .../tests/interop_js/eacoro/attach_test.ets | 36 +- .../interop_js/eacoro/attach_thread_test.cpp | 10 +- .../interop_js/eacoro/attach_thread_test.js | 4 +- .../tests/interop_js/eacoro/eaworker_test.ets | 77 +- .../tests/interop_js/eacoro/eaworker_test.js | 6 +- .../gtest_plugin/ets_interop_js_gtest.h | 2 +- .../interop_js/gtest_plugin/gtest_launcher.js | 23 +- .../ets/tests/interop_js/serialize/BUILD.gn | 30 - .../ets/tests/interop_js/serialize/helpers.js | 34 - .../interop_js/serialize/serialize_test.cpp | 93 - .../interop_js/serialize/serialize_test.ets | 52 - .../interop_js/serialize/serialize_test.js | 70 - .../interop_js/taskpool/taskpool_test.ets | 25 +- .../ets/tests/interop_js/test_helper/BUILD.gn | 2 + .../ets/tests/interop_js/tests/CMakeLists.txt | 34 - .../interop_js/tests/ani_any/CMakeLists.txt | 14 - .../tests/ani_any/ts_to_ets/CMakeLists.txt | 18 - .../tests/ani_any/ts_to_ets/ts_ani_any.cpp | 275 - .../tests/ani_any/ts_to_ets/ts_ani_any.ets | 89 - .../tests/ani_any/ts_to_ets/ts_ani_any.ts | 84 - .../ts_to_ets/ts_arkts_esvalue.cpp | 15 +- .../ts_to_ets/ts_arkts_esvalue.ets | 11 - .../ts_to_ets/ts_arkts_esvalue.ts | 3 - .../arkts_interop_js/ts_to_ets/CMakeLists.txt | 20 - .../ts_to_ets/ts_arkts_interop_js.cpp | 253 - .../ts_to_ets/ts_arkts_interop_js.ets | 27 - .../ts_to_ets/ts_arkts_interop_js.ts | 22 - .../tests/array/ets_to_ts/test_ts_array.ts | 2 - .../tests/array/ts_to_ets/arktsconfig.in.json | 3 +- .../tests/array/ts_to_ets/test_sts_array.ets | 24 +- .../tests/array/ts_to_ets/ts_array.cpp | 11 +- .../tests/array/ts_to_ets/ts_array.d.ets | 36 - .../tests/bouncing_pandas/arktsconfig.in.json | 2 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../arktsconfig.in.json | 2 +- .../tests/checked/arktsconfig.in.json | 2 +- .../class_composite/arktsconfig.in.decl.json | 4 +- .../tests/class_composite/arktsconfig.in.json | 2 +- .../tests/class_extension/arktsconfig.in.json | 2 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../class_operations/arktsconfig.in.decl.json | 4 +- .../class_operations/arktsconfig.in.json | 2 +- .../class_operations/class_operations.cpp | 14 +- .../class_operations/class_operations.ets | 71 - .../class_operations_decl.ets | 8 - .../class_operations_frontend.ets | 18 - .../tests/class_operations/module.ets | 3 +- .../tests/class_operations/module.js | 1 - .../tests/class_operations/module.ts | 2 - .../tests/concurrency/CMakeLists.txt | 15 - .../tests/concurrency/concurrency_helpers.ts | 173 - .../concurrency/ts_to_ets/CMakeLists.txt | 21 - .../ts_to_ets/eworker_interop_tests.ets | 485 -- .../ts_to_ets/taskpool_interop_tests.ets | 360 -- .../ts_to_ets/test_interop_concurrency.cpp | 28 - .../constructor/ts_to_sts/arktsconfig.in.json | 2 +- .../constructor/ts_to_sts/constructor.ets | 2 +- .../constructor_as_arg/arktsconfig.in.json | 2 +- .../sts_to_js/conversion_types.ets | 2 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../conversion_array_int.ets | 60 +- .../conversion_big_int/conversion_big_int.ets | 4 +- .../conversion_binary/conversion_binary.ets | 4 +- .../conversion_exponential.ets | 4 +- .../conversion_hexadecimal.ets | 4 +- .../conversion_string_to_int.ets | 4 +- .../coroutines/ts_to_ets/arktsconfig.in.json | 2 +- .../ts_to_ets/ets_coroutines_interop.ets | 17 +- .../tests/date/ts_to_ets/test_date.ets | 16 +- .../tests/declgen_ets2ts/CMakeLists.txt | 7 +- .../tests/declgen_ets2ts/classes/lib.ets | 5 - .../tests/declgen_ets2ts/classes/lib.expected | 6 - .../tests/declgen_ets2ts/esvalue/lib.expected | 3 +- .../tests/declgen_ets2ts/ets_vm_launcher.ts | 1 + .../export_default/CMakeLists.txt | 2 - .../declgen_ets2ts/export_default/lib6.ets | 23 - .../export_default/lib6.expected | 22 - .../tests/declgen_ets2ts/fields/lib.ets | 4 +- .../tests/declgen_ets2ts/generics/lib.ets | 5 - .../tests/declgen_ets2ts/imports/lib1.ets | 5 +- .../declgen_ets2ts/imports/lib1.expected | 11 +- .../tests/declgen_ets2ts/imports/lib2.ets | 4 - .../declgen_ets2ts/imports/lib2.expected | 9 - .../tests/declgen_ets2ts/interface/lib.ets | 1 - .../declgen_ets2ts/interface/lib.expected | 1 - .../tests/declgen_ets2ts/jsdoc/CMakeLists.txt | 29 - .../tests/declgen_ets2ts/jsdoc/jsdoc.ts | 35 - .../tests/declgen_ets2ts/jsdoc/lib.ets | 130 - .../tests/declgen_ets2ts/jsdoc/lib.expected | 48 - .../tests/declgen_ets2ts/jsdoc/main.ts | 19 - .../declgen_ets2ts/namespace/lib.expected | 22 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../call_method_for_value.ets | 4 +- .../not_nullish_operator.ets | 2 +- .../optional_operator/optional_operator.ets | 8 +- .../tests/dynamic_enum/arktsconfig.in.json | 2 +- .../tests/dynamic_enum/dynamic_enum.ets | 57 +- .../tests/dynamic_object/arktsconfig.in.json | 2 +- .../tests/dynamic_object/dynamic_call.ets | 63 +- .../tests/dynamic_object/dynamic_object.ets | 18 +- .../dynamic_with_lambda/arktsconfig.in.json | 2 +- .../dynamic_with_lambda.ets | 31 +- .../dynamicimport/ets_to_ts/dynamic-import.ts | 20 +- .../ts_to_ets/test_builtinerror.ets | 10 +- .../tests/error/ets_to_js/arktsconfig.in.json | 2 +- .../tests/error/ets_to_js/check_error.js | 6 +- .../tests/error/ets_to_js/error.ets | 15 +- .../tests/error/js_to_ets/arktsconfig.in.json | 2 +- .../tests/error/js_to_ets/error.ets | 152 +- .../tests/error/ts_to_ets/arktsconfig.in.json | 2 +- .../tests/error/ts_to_ets/error.ets | 34 +- .../es_object/to_string/arktsconfig.in.json | 2 +- .../to_string/test_to_string_method.ets | 6 +- .../interop_js/tests/escompat/escompat.cpp | 5 +- .../interop_js/tests/escompat/escompat.ets | 162 +- .../arktsconfig.in.json | 2 +- .../esvaluewithstringkey.cpp | 28 +- .../esvaluewithstringkey.ets | 99 +- .../CMakeLists.txt | 0 .../tests/eworker/ts_to_ets/CMakeLists.txt | 18 + .../eworker/ts_to_ets/eworker_helpers.ts | 158 + .../ts_to_ets/eworker_interop_tests.ets | 322 ++ .../ts_to_ets/test_interop_eworker.cpp | 27 + .../exceptions/js_to_sts/arktsconfig.in.json | 2 +- .../js_to_sts/dynamic_function_exception.ets | 64 +- .../js_to_sts/static_function_exception.ets | 96 +- .../tests/exceptions/sts_to_js/exceptions.ets | 8 +- .../arktsconfig.in.json | 3 +- .../objects_with_symbol_iterator.cpp | 2 +- .../objects_with_symbol_iterator.d.ets | 20 - .../objects_with_symbol_iterator.sts | 3 +- .../simple_array/arktsconfig.in.json | 3 +- .../ts_to_sts/simple_array/simple_array.cpp | 6 +- .../ts_to_sts/simple_array/simple_array.d.ets | 18 - .../ts_to_sts/simple_array/simple_array.sts | 15 +- .../function/ets_to_ts/ets_functions.ets | 8 +- .../tests/function/ts_to_ets/ets_function.ets | 8 +- .../CMakeLists.txt | 14 - .../ts_to_ets/CMakeLists.txt | 22 - .../ts_to_ets/arktsconfig.in.json | 20 - .../ts_to_ets/test_sts_function.ets | 23 - .../ts_to_ets/ts_function.cpp | 28 - .../ts_to_ets/ts_function.d.ets | 15 - .../ts_to_ets/ts_function.ts | 17 - .../ts_to_ets/test_function_this.ets | 24 +- .../generic/ts_to_ets/arktsconfig.in.json | 2 +- .../tests/generic/ts_to_ets/generic.ets | 70 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../sts_to_ts/generic_call_params.ets | 8 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../ts_to_sts/arktsconfig.in.json | 2 +- .../getEtsModule/ets_to_ts/test_get_module.ts | 16 +- .../getter/ts_to_ets/arktsconfig.in.json | 2 +- .../ets_to_js/arktsconfig.in.json | 2 +- .../getter_arkjs/js_to_ets/test_getter.ets | 29 +- .../tests/hybridgref/CMakeLists.txt | 2 +- .../hybridgref/ets_to_ts/ets_hybridgref.cpp | 37 +- .../hybridgref/ets_to_ts/ets_hybridgref.ets | 45 +- .../hybridgref/ets_to_ts/ets_hybridgref.ts | 164 +- .../hybridgref/ts_to_ets/ts_hybridgref.cpp | 87 +- .../hybridgref/ts_to_ets/ts_hybridgref.ets | 44 +- .../hybridgref/ts_to_ets/ts_hybridgref.ts | 106 +- .../implement_interfaces/arktsconfig.in.json | 2 +- .../implement_interfaces.ets | 34 +- .../implement_interfaces_ets.ets | 16 +- .../tests/import/arktsconfig.in.json | 2 +- .../indexed_signature/arktsconfig.in.json | 2 +- .../indexed_signature/indexed_signature.ets | 8 +- .../tests/indexed_type/arktsconfig.in.json | 2 +- .../tests/indexed_type/indexed_type.ets | 4 +- .../tests/instanceof/arktsconfig.in.json | 4 +- .../interface/ts_to_ets/arktsconfig.in.json | 2 +- .../ets_to_ts/arg_interface.ets | 18 +- .../arkts_interface/arktsconfig.in.json | 2 +- .../interface_method_return_value/test.ets | 5 +- .../js_interface/arktsconfig.in.json | 2 +- .../js_interface/test.cpp | 3 +- .../js_interface/test.ets | 133 +- .../tests/interop_isa/CMakeLists.txt | 21 - .../interop_js/tests/interop_isa/index.js | 293 -- .../interop_js/tests/interop_isa/test.cpp | 29 - .../interop_js/tests/interop_isa/test.ets | 14 - .../interop_js/tests/interop_isa/test.pa | 408 -- .../arg_generic/arg_generic.ets | 9 +- .../arg_generic_negative_result.ets | 6 +- .../arg_interface/arg_interface.ets | 9 +- .../arg_interface_negative_result.ets | 7 +- .../arg_literal/arg_literal.ets | 8 +- .../arg_literal_negative_result.ets | 7 +- .../arg_union/arg_union.ets | 11 +- .../arg_union_negative_result.ets | 6 +- .../arktsconfig.in.json | 2 +- .../ts_to_ets/invalid_op_esvalue_test.cpp | 21 +- .../ts_to_ets/invalid_op_esvalue_test.ets | 16 +- .../interop_js/tests/map/ets_to_ts/map.ets | 12 - .../tests/map/ets_to_ts/test_map.ts | 29 +- .../interop_js/tests/map/ts_to_ets/map.ets | 6 +- .../ts_to_ets/arktsconfig.in.json | 2 +- .../ts_to_ets/arktsconfig.in.json | 2 +- .../tests/number_subtypes/number_subtypes.rb | 20 +- .../ts_to_sts/number_subtypes.ets.erb | 32 +- .../ts_to_sts_frontend/arktsconfig.in.json | 2 +- .../number_subtypes_frontend.ets.erb | 32 +- .../tests/object/ts_to_ets/test_object.ts | 2 +- .../ets_to_ts/object_literal.ets | 20 - .../ets_to_ts/test_object_literal.ts | 17 - .../tests/objects_passing/arktsconfig.in.json | 2 +- .../tests/objects_passing/objects_passing.ets | 133 +- .../tests/objects_passing/objects_passing.js | 3 +- .../objects_passing_sts.ets | 2 +- .../tests/operator_new/arktsconfig.in.json | 2 +- .../tests/operator_new/operator_new.cpp | 6 +- .../operator_new_ets_to_js.ets | 2 +- .../operator_new_test/operator_new.ets | 113 +- .../arktsconfig.in.json | 2 +- .../optional_reference_type.ets | 2 +- .../passing_optional_type/arktsconfig.in.json | 2 +- .../interop_js/tests/perf/arktsconfig.in.json | 2 +- .../tests/perf/benchmarks/caller.ets | 50 +- .../ets/tests/interop_js/tests/perf/code.js | 8 +- .../interop_js/tests/perf/test_frontend.ets | 17 +- .../tests/primitive/ets_to_ts/primitive.ets | 4 +- .../tests/primitive/ts_to_ets/primitive.ets | 52 +- .../primitive/ts_to_ets/test_primitive.ts | 6 +- .../tests/promise/arktsconfig.in.json | 2 +- .../tests/promise/await_js_promise.js | 1 + .../tests/promise/package-lock.json | 27 - .../tests/promise/promise_proxy_test.js | 1 + .../tests/promise/promise_tests.ets | 8 +- .../prototype_static_flag/CMakeLists.txt | 14 - .../ets_to_ts/CMakeLists.txt | 18 - .../ets_to_ts/export.ets | 26 - .../prototype_static_flag/ets_to_ts/import.ts | 79 - .../ets_to_ts/prototype_static_flag.cpp | 28 - .../ets_proxy/check_access_references.js | 7 +- .../tests/proxies/ets_proxy/ets_proxy.ets | 16 +- .../test_proxy_reference_storage_2.js | 1 + .../test_proxy_reference_storage_3.cpp | 55 +- .../ets_to_ts/test_rest_spread.ets | 2 +- .../ts_to_ets/rest_spread.ets | 33 +- .../runtimelinker/ets_to_ts/runtimelinker.cpp | 8 +- .../package_indirect_ref/indirect_ref.ets | 2 +- .../package_indirect_union/indirect_union.ets | 2 +- .../package_indirect_value/indirect_value.ets | 2 +- .../tests/scenarios/ets_to_js/scenarios.ets | 2 +- .../scenarios/js_to_ets/arktsconfig.in.json | 4 +- .../js_to_ets/arktsconfig_scenarios.in.json | 2 +- .../scenarios/js_to_ets/conflict_types.ets | 2 +- .../indirect_call/arktsconfig.in.json | 2 +- .../js_to_ets/indirect_call/indirect_any.ets | 8 +- .../indirect_call/indirect_extra.ets | 16 +- .../indirect_call/indirect_literal.ets | 8 +- .../js_to_ets/indirect_call/indirect_ref.ets | 24 +- .../indirect_call/indirect_union.ets | 16 +- .../js_to_ets/indirect_call/indirect_user.ets | 16 +- .../indirect_call/indirect_value.ets | 24 +- .../js_to_ets/js_suites/scenarios.js | 1 + .../tests/scenarios/js_to_ets/scenarios.ets | 23 +- .../setter/ts_to_ets/arktsconfig.in.json | 2 +- .../tests/setter/ts_to_ets/setter_ts.ets | 104 +- .../setter_arkjs/js_to_ets/test_setter.ets | 2 +- .../ets_to_ts/ets_shared_reference.ets | 30 +- .../ets_to_ts/test_ts_shared_reference.ts | 18 +- ...ktsconfig_features_table_scenarios.in.json | 2 +- .../tests/strict_equality/arktsconfig.in.json | 4 +- .../strict_equality/strict_equality.d.ets | 18 - .../CMakeLists.txt | 0 .../tests/taskpool/ts_to_ets/CMakeLists.txt | 18 + .../taskpool/ts_to_ets/taskpool_helpers.ts | 158 + .../ts_to_ets/taskpool_interop_tests.ets | 316 ++ .../ts_to_ets/test_interop_taskpool.cpp | 27 + .../interop_js/tests/test_any/CMakeLists.txt | 22 - .../tests/test_any/arktsconfig.in.json | 22 - .../interop_js/tests/test_any/testDecl.d.ets | 73 - .../interop_js/tests/test_any/test_any.cpp | 28 - .../tests/test_any/test_any_dynamic.ts | 147 - .../tests/test_any/test_any_static.ets | 192 - .../ts_to_ets/reject_string.cpp | 11 +- .../ts_to_ets/reject_string.ets | 21 +- .../tests/test_callable/arktsconfig.in.json | 2 +- .../tests/test_callable/test_callable.ets | 39 +- .../tests/test_cast/arktsconfig.in.json | 2 +- .../interop_js/tests/test_cast/test_cast.ets | 17 +- .../js_to_ets/arktsconfig.in.json | 2 +- .../js_to_ets/test_class_methods.ets | 8 +- .../test_classtype_conversion/CMakeLists.txt | 22 - .../arktsconfig.in.json | 13 - .../classtype_conversion.cpp | 107 - .../classtype_conversion.ets | 101 - .../classtype_conversion.js | 26 - .../test_composite_types/arktsconfig.in.json | 2 +- .../test_composite_types.ets | 87 +- .../tests/test_esvalue/esvalue_def_test.cpp | 38 +- .../tests/test_esvalue/esvalue_def_test.ets | 61 +- .../tests/test_esvalue/esvalue_def_test.js | 17 +- .../tests/test_esvalue2/esvalue_def_test.cpp | 28 +- .../tests/test_esvalue2/esvalue_def_test.ets | 247 +- .../esvalue_to_promise_test.ets | 61 +- .../esvalue_to_promise_test.ts | 24 - .../tests/test_frontend/CMakeLists.txt | 1 + .../tests/test_frontend/arktsconfig.in.json | 2 +- .../test_frontend/test_frontend_package.ets | 30 +- .../tests/test_function/CMakeLists.txt | 22 - .../tests/test_function/arktsconfig.in.json | 22 - .../tests/test_function/testDecl.d.ets | 34 - .../tests/test_function/test_dynamic.ts | 60 - .../tests/test_function/test_interop.cpp | 28 - .../tests/test_function/test_static.ets | 57 - .../test_general_purpose_types/CMakeLists.txt | 22 - .../arktsconfig.in.json | 22 - .../test_general_purpose_types/testDecl.d.ets | 55 - .../test_dynamic.ts | 73 - .../test_interop.cpp | 28 - .../test_static.ets | 86 - .../tests/test_import/CMakeLists.txt | 22 - .../tests/test_import/arktsconfig.in.json | 22 - .../tests/test_import/testDecl.d.ets | 20 - .../tests/test_import/test_dynamic.ts | 31 - .../tests/test_import/test_interop.cpp | 28 - .../tests/test_import/test_static.ets | 23 - .../test_import_dynamic_error/CMakeLists.txt | 22 - .../arktsconfig.in.json | 20 - .../test_import_dynamic_error/testDecl.d.ets | 23 - .../test_import_dynamic_error.cpp | 28 - .../test_import_dynamic_error_dynamic.ts | 50 - .../test_import_dynamic_error_static.ets | 43 - .../CMakeLists.txt | 23 - .../arktsconfig.in.json | 20 - .../testDecl.d.ets | 29 - .../test_import_dynamic_function.cpp | 28 - .../test_import_dynamic_function_dynamic.ts | 75 - .../test_import_dynamic_function_static.ets | 57 - .../ts_to_arkts/arktsconfig.in.json | 4 +- .../incorrect_conversion_types.d.ets | 36 - .../tests/test_init_module/CMakeLists.txt | 18 - .../test_init_module/test_init_module.cpp | 28 - .../test_init_module_dynamic.ts | 58 - .../test_init_module_static.ets | 32 - .../ts_to_ets/CMakeLists.txt | 22 - .../ts_to_ets/arktsconfig.in.json | 20 - .../ts_to_ets/testDecl.d.ets | 20 - .../test_interface_optional_args.cpp | 28 - .../test_interface_optional_args_dynamic.ts | 27 - .../test_interface_optional_args_static.ets | 32 - .../tests/test_intrins/arktsconfig.in.json | 2 +- .../test_intrins/frontend_test_intrins.ets | 8 +- .../tests/test_intrins/test_intrins.ets | 6 +- .../tests/test_namespaces/CMakeLists.txt | 22 - .../tests/test_namespaces/arktsconfig.in.json | 22 - .../tests/test_namespaces/testDecl.d.ets | 24 - .../tests/test_namespaces/test_dynamic.ts | 39 - .../tests/test_namespaces/test_interop.cpp | 28 - .../tests/test_namespaces/test_static.ets | 29 - .../tests/test_object_literal/CMakeLists.txt | 22 - .../test_object_literal/arktsconfig.in.json | 20 - .../tests/test_object_literal/testDecl.d.ets | 24 - .../test_object_literal.cpp | 28 - .../test_object_literal_dynamic.ts | 45 - .../test_object_literal_static.ets | 36 - .../ets_to_ts/optional_params.ets | 12 +- .../test_optional_params_ets_to_ts.ts | 20 +- .../ts_to_ets/optional_params.ets | 16 +- .../test_optional_params_ts_to_ets.ts | 16 +- .../tests/test_record/ets_to_ts/record.ets | 6 +- .../test_record/ts_to_ets/test_record.ets | 8 +- .../test_return_this/arktsconfig.in.json | 2 +- .../test_return_this/test_return_this.ets | 52 +- .../test_transfer/ets_to_ts/test_transfer.ets | 2 +- .../ts_to_ets/transfer_to_ets.ets | 176 +- .../tests/test_undefined/arktsconfig.in.json | 2 +- .../interop_js/tests/test_undefined/index.js | 6 +- .../tests/test_undefined/test_undefined.ets | 28 +- .../tests/test_union/ets_to_ts/test_union.ts | 2 +- .../tests/test_union/ts_to_ets/test_union.ets | 12 +- .../tests/test_xref_object/CMakeLists.txt | 23 - .../test_xref_object/arktsconfig.in.json | 20 - .../tests/test_xref_object/testDecl.d.ets | 42 - .../test_xref_object/test_xref_object.cpp | 28 - .../test_xref_object_dynamic.ts | 61 - .../test_xref_object_static.ets | 234 - .../interop_js/tests/timer/timer_tests.ets | 22 +- .../interop_js/tests/tuple/CMakeLists.txt | 15 - .../tests/tuple/ets_to_ts/CMakeLists.txt | 18 - .../tests/tuple/ets_to_ts/ets_tuple.ets | 27 - .../tuple/ets_to_ts/test_js_use_ets_tuple.cpp | 28 - .../tuple/ets_to_ts/test_js_use_ets_tuple.ts | 242 - .../tests/tuple/ts_to_ets/CMakeLists.txt | 18 - .../tests/tuple/ts_to_ets/ets_tuple.ets | 19 - .../test_js_tuple_cannot_assign_to_ets.cpp | 28 - .../test_js_tuple_cannot_assign_to_ets.ts | 39 - .../tests/tuple_mirror_classes/CMakeLists.txt | 19 - ..._interop_js_test__tuple_mirror_classes.cpp | 493 -- ..._interop_js_test__tuple_mirror_classes.ets | 16 - .../tests/utilitytype_readonly/CMakeLists.txt | 15 - .../ets_to_ts/CMakeLists.txt | 18 - .../ets_to_ts/ets_readonly.cpp | 28 - .../ets_to_ts/ets_readonly.ets | 40 - .../ets_to_ts/test_ts_readonly.ts | 65 - .../ts_to_ets/CMakeLists.txt | 18 - .../ts_to_ets/test_sts_readonly.ets | 57 - .../ts_to_ets/ts_readonly.cpp | 28 - .../ts_to_ets/ts_readonly.ts | 58 - .../tests/utilitytype_required/CMakeLists.txt | 15 - .../ets_to_ts/CMakeLists.txt | 18 - .../ets_to_ts/ets_required.cpp | 28 - .../ets_to_ts/ets_required.ets | 42 - .../ets_to_ts/test_ts_required.ts | 70 - .../ts_to_ets/CMakeLists.txt | 18 - .../ts_to_ets/test_sts_required.ets | 62 - .../ts_to_ets/ts_required.cpp | 28 - .../ts_to_ets/ts_required.ts | 65 - .../plugins/ets/tests/interop_js/xgc/BUILD.gn | 5 - .../interop_js/xgc/create_runtime_test.js | 3 + .../interop_js/xgc/ea_coro/ea_test_runner.js | 1 + .../tests/interop_js/xgc/ea_coro/xgc_ea.ets | 8 +- .../tests/interop_js/xgc/mark_cycle_test.cpp | 8 - .../tests/interop_js/xgc/mark_sts2js_test.cpp | 8 - .../tests/interop_js/xgc/mark_test_sts.ets | 4 +- .../tests/interop_js/xgc/mark_test_utils.js | 1 + .../tests/interop_js/xgc/sweep_cycle_test.cpp | 9 - .../interop_js/xgc/sweep_sts2js_test.cpp | 9 - .../xgc/test_mark_test_xgc/mark_test_xgc.ets | 2 +- .../xgc/test_mark_test_xgc/mark_test_xgc.js | 10 +- .../test_mark_test_xgc/mark_test_xgc_utils.js | 18 +- .../ets/tests/interop_js/xgc/test_utils.js | 1 + .../ets/tests/interop_js/xgc/xgc_tests.ets | 14 +- .../ani_signature_builder_test.cpp | 131 +- .../tests/async_work/CMakeLists.txt | 9 - .../tests/async_work/async_work_test.cpp | 2 +- .../tests/async_work/send_event_test.cpp | 206 - .../async_work/send_event_test_managed.cpp | 104 - .../async_work/send_event_test_managed.ets | 33 - .../ets/tests/lookup_by_name/CMakeLists.txt | 26 +- .../lookup_by_name/correct_case_16bit.pa | 6 +- .../lookup_by_name/correct_case_32bit.pa | 6 +- .../lookup_by_name/correct_case_64bit.pa | 8 +- .../tests/lookup_by_name/correct_case_8bit.pa | 6 +- .../tests/lookup_by_name/correct_case_ref.pa | 8 +- .../lookup_by_name/correct_case_ref_2.pa | 10 +- .../tests/lookup_by_name/field_case_32bit.pa | 6 +- .../tests/lookup_by_name/field_case_64bit.pa | 6 +- .../tests/lookup_by_name/field_case_8bit.pa | 6 +- .../tests/lookup_by_name/field_case_ref.pa | 6 +- .../ets/tests/lookup_by_name/no_field_case.pa | 6 +- .../tests/lookup_by_name/no_field_case_2.pa | 6 +- .../tests/lookup_by_name/no_getter_case.pa | 6 +- .../tests/lookup_by_name/no_setter_case.pa | 6 +- .../lookup_by_name/wrong_getter_args_case.pa | 6 +- .../wrong_getter_args_case_2.pa | 6 +- .../lookup_by_name/wrong_setter_args_case.pa | 6 +- .../wrong_setter_args_case_2.pa | 6 +- .../wrong_setter_args_case_3.pa | 6 +- .../wrong_setter_args_case_4.pa | 6 +- .../call_unknown_class_method.pa | 10 +- .../get_unknown_class_field.pa | 12 +- .../ets/tests/mock/AbortFlagLaunchTest.ets | 4 +- .../tests/mock/AccessingObjectsFieldsTest.ets | 61 + .../plugins/ets/tests/mock/CMakeLists.txt | 150 +- .../ets/tests/mock/CallingMethodsTest.ets | 182 + .../ets/tests/mock/ClinitNativeTest.ets | 33 + .../ets/tests/mock/EffectiveTypesTest.ets | 35 + .../ets/tests/mock/FinalFieldNativeTest.ets | 26 + .../mock/RegisteringNativeMethodsTest.ets | 25 + .../tests/mock/StackReferenceCheckTest.ets | 23 + .../plugins/ets/tests/mock/StackTraceTest.ets | 14 +- .../tests/mock/UncaughtErrorHandlerTest.ets | 120 - .../mock/UnhandledRejectionRecursiveTest.ets | 26 - .../ets/tests/mock/abort_flag_launch_test.cpp | 8 +- .../mock/accessing_objects_fields_test_1.cpp | 105 + .../mock/accessing_objects_fields_test_2.cpp | 136 + .../mock/accessing_objects_fields_test_3.cpp | 559 ++ .../accessing_objects_fields_test_helper.h | 34 + .../ets/tests/mock/array_native_test.cpp | 439 ++ .../ets/tests/mock/array_native_test_2.cpp | 554 ++ .../ets/tests/mock/array_native_test_3.cpp | 187 + .../ets/tests/mock/calling_methods_test_1.cpp | 123 + .../ets/tests/mock/calling_methods_test_2.cpp | 376 ++ .../ets/tests/mock/calling_methods_test_3.cpp | 445 ++ .../ets/tests/mock/calling_methods_test_4.cpp | 279 + .../ets/tests/mock/calling_methods_test_5.cpp | 149 + .../ets/tests/mock/calling_methods_test_6.cpp | 406 ++ .../ets/tests/mock/calling_methods_test_7.cpp | 152 + .../ets/tests/mock/calling_methods_test_8.cpp | 135 + .../tests/mock/calling_methods_test_helper.h | 259 + .../ets/tests/mock/clinit_native_test.cpp | 133 + .../ets/tests/mock/effective_types_test.cpp | 118 + .../tests/mock/final_field_native_test.cpp | 112 + .../plugins/ets/tests/mock/js_mode_launch.cpp | 25 +- .../plugins/ets/tests/mock/js_mode_launch.ets | 4 +- .../plugins/ets/tests/mock/mock_test_helper.h | 37 +- .../mock/register_native_allocation_test.cpp | 70 +- .../mock/registering_native_methods_test.cpp | 151 + .../tests/mock/stack_reference_check_test.cpp | 157 + .../ets/tests/mock/stack_trace_test.cpp | 75 +- .../plugins/ets/tests/mock/test_exception.cpp | 37 + .../mock/uncaught_error_handler_test.cpp | 91 - .../unhandled_rejection_recursive_test.cpp | 67 - .../plugins/ets/tests/napi/CMakeLists.txt | 98 + .../ets/tests/napi/bridges/CMakeLists.txt | 215 + .../tests/napi/bridges/lib/EtsNapiTests.cpp | 1356 +++++ .../tests/napi/bridges/pa/arrays-boolean.pa | 66 + .../ets/tests/napi/bridges/pa/arrays-byte.pa | 66 + .../ets/tests/napi/bridges/pa/arrays-char.pa | 66 + .../tests/napi/bridges/pa/arrays-double.pa | 66 + .../ets/tests/napi/bridges/pa/arrays-float.pa | 66 + .../ets/tests/napi/bridges/pa/arrays-int.pa | 66 + .../ets/tests/napi/bridges/pa/arrays-long.pa | 66 + .../ets/tests/napi/bridges/pa/arrays-short.pa | 66 + .../tests/napi/bridges/pa/arrays-string.pa | 66 + .../tests/napi/bridges/pa/return-boolean.pa | 39 + .../ets/tests/napi/bridges/pa/return-byte.pa | 39 + .../ets/tests/napi/bridges/pa/return-char.pa | 39 + .../tests/napi/bridges/pa/return-double.pa | 39 + .../ets/tests/napi/bridges/pa/return-float.pa | 39 + .../ets/tests/napi/bridges/pa/return-int.pa | 39 + .../ets/tests/napi/bridges/pa/return-long.pa | 39 + .../ets/tests/napi/bridges/pa/return-short.pa | 39 + .../tests/napi/bridges/pa/return-string.pa | 39 + .../napi/bridges/pa/segv-managed-thread.pa | 32 + .../napi/bridges/pa/segv-native-thread.pa | 32 + .../tests/napi/bridges/pa/types-boolean-01.pa | 37 + .../tests/napi/bridges/pa/types-boolean-02.pa | 38 + .../tests/napi/bridges/pa/types-boolean-03.pa | 39 + .../tests/napi/bridges/pa/types-boolean-04.pa | 40 + .../tests/napi/bridges/pa/types-boolean-05.pa | 41 + .../tests/napi/bridges/pa/types-boolean-06.pa | 42 + .../tests/napi/bridges/pa/types-boolean-07.pa | 43 + .../tests/napi/bridges/pa/types-boolean-08.pa | 44 + .../tests/napi/bridges/pa/types-boolean-09.pa | 45 + .../tests/napi/bridges/pa/types-boolean-10.pa | 46 + .../tests/napi/bridges/pa/types-boolean-11.pa | 47 + .../tests/napi/bridges/pa/types-byte-01.pa | 37 + .../tests/napi/bridges/pa/types-byte-02.pa | 38 + .../tests/napi/bridges/pa/types-byte-03.pa | 39 + .../tests/napi/bridges/pa/types-byte-04.pa | 41 + .../tests/napi/bridges/pa/types-byte-05.pa | 41 + .../tests/napi/bridges/pa/types-byte-06.pa | 42 + .../tests/napi/bridges/pa/types-byte-07.pa | 43 + .../tests/napi/bridges/pa/types-byte-08.pa | 44 + .../tests/napi/bridges/pa/types-byte-09.pa | 45 + .../tests/napi/bridges/pa/types-byte-10.pa | 46 + .../tests/napi/bridges/pa/types-byte-11.pa | 47 + .../tests/napi/bridges/pa/types-char-01.pa | 37 + .../tests/napi/bridges/pa/types-char-02.pa | 38 + .../tests/napi/bridges/pa/types-char-03.pa | 39 + .../tests/napi/bridges/pa/types-char-04.pa | 40 + .../tests/napi/bridges/pa/types-char-05.pa | 41 + .../tests/napi/bridges/pa/types-char-06.pa | 42 + .../tests/napi/bridges/pa/types-char-07.pa | 43 + .../tests/napi/bridges/pa/types-char-08.pa | 44 + .../tests/napi/bridges/pa/types-char-09.pa | 45 + .../tests/napi/bridges/pa/types-char-10.pa | 46 + .../tests/napi/bridges/pa/types-char-11.pa | 47 + .../tests/napi/bridges/pa/types-double-01.pa | 37 + .../tests/napi/bridges/pa/types-double-02.pa | 38 + .../tests/napi/bridges/pa/types-double-03.pa | 39 + .../tests/napi/bridges/pa/types-double-04.pa | 40 + .../tests/napi/bridges/pa/types-double-05.pa | 41 + .../tests/napi/bridges/pa/types-double-06.pa | 42 + .../tests/napi/bridges/pa/types-double-07.pa | 43 + .../tests/napi/bridges/pa/types-double-08.pa | 44 + .../tests/napi/bridges/pa/types-double-09.pa | 45 + .../tests/napi/bridges/pa/types-double-10.pa | 46 + .../tests/napi/bridges/pa/types-double-11.pa | 47 + .../tests/napi/bridges/pa/types-float-01.pa | 37 + .../tests/napi/bridges/pa/types-float-02.pa | 38 + .../tests/napi/bridges/pa/types-float-03.pa | 39 + .../tests/napi/bridges/pa/types-float-04.pa | 40 + .../tests/napi/bridges/pa/types-float-05.pa | 41 + .../tests/napi/bridges/pa/types-float-06.pa | 42 + .../tests/napi/bridges/pa/types-float-07.pa | 43 + .../tests/napi/bridges/pa/types-float-08.pa | 44 + .../tests/napi/bridges/pa/types-float-09.pa | 45 + .../tests/napi/bridges/pa/types-float-10.pa | 46 + .../tests/napi/bridges/pa/types-float-11.pa | 47 + .../ets/tests/napi/bridges/pa/types-int-01.pa | 37 + .../ets/tests/napi/bridges/pa/types-int-02.pa | 38 + .../ets/tests/napi/bridges/pa/types-int-03.pa | 39 + .../ets/tests/napi/bridges/pa/types-int-04.pa | 40 + .../ets/tests/napi/bridges/pa/types-int-05.pa | 41 + .../ets/tests/napi/bridges/pa/types-int-06.pa | 42 + .../ets/tests/napi/bridges/pa/types-int-07.pa | 43 + .../ets/tests/napi/bridges/pa/types-int-08.pa | 44 + .../ets/tests/napi/bridges/pa/types-int-09.pa | 45 + .../ets/tests/napi/bridges/pa/types-int-10.pa | 46 + .../ets/tests/napi/bridges/pa/types-int-11.pa | 47 + .../tests/napi/bridges/pa/types-long-01.pa | 37 + .../tests/napi/bridges/pa/types-long-02.pa | 38 + .../tests/napi/bridges/pa/types-long-03.pa | 39 + .../tests/napi/bridges/pa/types-long-04.pa | 40 + .../tests/napi/bridges/pa/types-long-05.pa | 41 + .../tests/napi/bridges/pa/types-long-06.pa | 42 + .../tests/napi/bridges/pa/types-long-07.pa | 43 + .../tests/napi/bridges/pa/types-long-08.pa | 44 + .../tests/napi/bridges/pa/types-long-09.pa | 45 + .../tests/napi/bridges/pa/types-long-10.pa | 46 + .../tests/napi/bridges/pa/types-long-11.pa | 47 + .../tests/napi/bridges/pa/types-short-01.pa | 37 + .../tests/napi/bridges/pa/types-short-02.pa | 38 + .../tests/napi/bridges/pa/types-short-03.pa | 39 + .../tests/napi/bridges/pa/types-short-04.pa | 40 + .../tests/napi/bridges/pa/types-short-05.pa | 41 + .../tests/napi/bridges/pa/types-short-06.pa | 42 + .../tests/napi/bridges/pa/types-short-07.pa | 43 + .../tests/napi/bridges/pa/types-short-08.pa | 44 + .../tests/napi/bridges/pa/types-short-09.pa | 45 + .../tests/napi/bridges/pa/types-short-10.pa | 46 + .../tests/napi/bridges/pa/types-short-11.pa | 47 + .../tests/napi/bridges/pa/types-string-01.pa | 38 + .../tests/napi/bridges/pa/types-string-02.pa | 40 + .../tests/napi/bridges/pa/types-string-03.pa | 42 + .../tests/napi/bridges/pa/types-string-04.pa | 44 + .../tests/napi/bridges/pa/types-string-05.pa | 46 + .../tests/napi/bridges/pa/types-string-06.pa | 48 + .../tests/napi/bridges/pa/types-string-07.pa | 50 + .../tests/napi/bridges/pa/types-string-08.pa | 52 + .../tests/napi/bridges/pa/types-string-09.pa | 54 + .../tests/napi/bridges/pa/types-string-10.pa | 56 + .../tests/napi/bridges/pa/types-string-11.pa | 58 + .../ets/tests/napi/bridges/scripts/test.sh | 33 + .../ets/tests/napi/ets/EtsnapiNameTest.ets | 68 + .../tests/napi/ets/EtsnapiVersionHookTest.ets | 33 + .../ets/tests/napi/ets/FakeNativeTest.ets | 58 + .../ets/tests/napi/ets/InnerNativeTest.ets | 54 + .../tests/napi/ets/InterfaceNativeTest.ets | 95 + .../ets/tests/napi/etsnative/CMakeLists.txt | 41 + .../etsnative_library_path_test.cpp | 31 +- .../tests/napi/etsnative/etsnative_test.cpp | 49 + .../ets/tests/napi/lib/EtsnapiNameTest.cpp | 92 + .../ets/tests/napi/lib/EtsnapiNameTest.h | 86 + .../tests/napi/lib/EtsnapiVersionHookTest.cpp | 65 + .../ets/tests/napi/lib/InnerNativeTest.cpp | 32 + .../tests/napi/lib/InterfaceNativeTest.cpp | 123 + .../plugins/ets/tests/native/CMakeLists.txt | 5 +- .../tests/native/array_buffer/ManagedTest.ets | 4 +- .../native/array_buffer/managed_test.cpp | 208 +- .../tests/native/array_buffer/native_test.cpp | 209 +- .../tests/native/atomic_int/CMakeLists.txt | 19 - .../native/atomic_int/atomic_int_test.cpp | 141 - .../native/atomic_int/atomic_int_test.ets | 140 - .../exclusive_worker_tests.cpp | 57 +- .../exclusive_worker_tests.ets | 4 +- .../native/native_methods/CMakeLists.txt | 18 + .../register_native_methods_test.cpp | 205 + .../register_native_methods_test.ets | 19 + .../ets/tests/native/native_test_helper.h | 165 +- .../ets/tests/native/promise/CMakeLists.txt | 18 + .../ets/tests/native/promise/promise_test.cpp | 59 + .../ets/tests/native/promise/promise_test.ets | 28 + .../sync_primitives/queue_spinlock_tests.cpp | 22 +- .../sync_primitives/queue_spinlock_tests.ets | 6 +- .../plugins/ets/tests/runtime/CMakeLists.txt | 28 +- .../runtime/ets_vm_init_prealloc_test.cpp | 3 - .../runtime/ets_vm_init_prealloc_test.ets | 38 +- .../runtime/ets_vm_postfork_aot_load_test.cpp | 3 +- .../plugins/ets/tests/runtime/ets_vm_test.cpp | 43 +- .../runtime/static_object_accessor_test.cpp | 287 - .../runtime/static_type_converter_test.cpp | 364 -- .../tooling/sampler/managed/CMakeLists.txt | 7 +- .../tooling/sampler/managed/SamplerTest.ets | 4 +- .../tooling/sampler/native/CMakeLists.txt | 6 +- .../tooling/sampler/native/SamplerAniTest.ets | 20 +- .../tests/runtime/tooling/test_debug_info.cpp | 4 +- .../ets/tests/runtime/types/CMakeLists.txt | 12 +- .../types/ets_abc_runtime_linker_test.cpp | 63 +- .../tests/runtime/types/ets_arraybuf_test.cpp | 40 +- .../tests/runtime/types/ets_arrayobj_test.cpp | 69 +- .../runtime/types/ets_atomic_flag_test.cpp | 38 - .../runtime/types/ets_atomic_int_test.cpp | 39 - .../tests/runtime/types/ets_class_test.cpp | 12 +- .../tests/runtime/types/ets_error_test.cpp | 1 - .../types/ets_method_signature_test.cpp | 1 - .../tests/runtime/types/ets_method_test.cpp | 15 +- .../types/ets_mirror_class_test_base.h | 85 - .../tests/runtime/types/ets_promise_test.cpp | 2 +- .../runtime/types/ets_runtime_linker_test.cpp | 300 +- .../types/ets_stacktrace_element_test.cpp | 41 - .../types/ets_string_from_char_code_test.cpp | 26 +- .../tests/runtime/types/ets_string_test.cpp | 59 +- .../types/ets_sync_primitives_test.cpp | 16 - .../types/ets_to_string_cache_test.cpp | 1 - .../tests/runtime/types/ets_typeapi_test.cpp | 1 - .../runtime/types/ets_typed_arrays_test.cpp | 50 - .../types/ets_typed_unsigned_arrays_test.cpp | 50 - .../tests/runtime/types/ets_union_test.cpp | 155 - .../tests/runtime/types/typed_arrays_test.cpp | 346 +- .../micro-benchmarks/run_micro_benchmarks.py | 13 +- .../escompat/escompat_Array_find.ets | 2 +- .../escompat/escompat_Array_methods.ets | 6 +- .../escompat/escompat_Array_misc.ets | 2 +- .../escompat/escompat_Array_modifications.ets | 10 +- .../escompat/escompat_Array_reduce_sort.ets | 2 +- .../escompat/escompat_Array_single.ets | 10 +- .../list.escompat_DataView_method.yaml | 2 +- .../list.escompat_regexp_instance.yaml | 12 +- .../ets/tests/stdlib-templates/readme.md | 2 +- .../regression/issue14385.ets | 2 +- .../regression/list.issue14385.yaml | 2 +- .../expressions/compound_assignment_01.ets | 10 +- .../expressions/compound_assignment_02.ets | 8 +- .../expressions/compound_assignment_03.ets | 6 +- .../expressions/compound_assignment_04.ets | 10 +- .../equality/equality_primitive_01.ets | 4 +- .../list.compound_assignment_01.yaml | 355 +- .../spec/generic/issue14700.ets | 4 +- ...containers_ArrayAsListObject_instance.yaml | 53 + ..._containers_ArrayAsListObject_instance.ets | 255 + .../std/core/list.std_core_array_concat.yaml | 16 +- .../std/core/list.std_core_array_copyOf.yaml | 4 +- .../core/list.std_core_array_copyOf_2.yaml | 4 +- .../core/list.std_core_array_copyOf_3.yaml | 4 +- .../list.std_core_array_copyTo_exception.yaml | 16 +- .../std/core/list.std_core_array_fill.yaml | 30 +- .../std/core/list.std_core_array_fill_2.yaml | 10 +- .../std/core/list.std_core_array_filter.yaml | 18 +- .../core/list.std_core_array_filter_2.yaml | 14 +- .../std/core/list.std_core_array_foreach.yaml | 52 +- .../core/list.std_core_array_foreach_2.yaml | 16 +- .../core/list.std_core_array_includes.yaml | 38 +- .../core/list.std_core_array_indexOf_2.yaml | 38 +- .../std/core/list.std_core_array_join.yaml | 8 +- .../list.std_core_array_lowerBoundSearch.yaml | 48 +- ...ist.std_core_array_lowerBoundSearch_2.yaml | 42 +- .../std/core/list.std_core_array_map.yaml | 58 +- .../std/core/list.std_core_array_map_2.yaml | 12 +- .../std/core/list.std_core_array_reverse.yaml | 12 +- .../std/core/list.std_core_array_sort.yaml | 54 +- .../std/core/list.std_core_array_sort_2.yaml | 57 +- .../std/core/list.std_core_byte_instance.yaml | 114 +- .../std/core/list.std_core_constructor.yaml | 18 +- .../core/list.std_core_double_instance.yaml | 134 +- .../std/core/list.std_core_double_static.yaml | 6 +- .../core/list.std_core_float_instance.yaml | 166 +- .../std/core/list.std_core_float_static.yaml | 6 +- .../std/core/list.std_core_int_instance.yaml | 114 +- .../std/core/list.std_core_long_instance.yaml | 111 +- .../core/list.std_core_short_instance.yaml | 114 +- .../core/list.std_core_string_instance.yaml | 50 +- .../list.std_core_stringbuilder_instance.yaml | 2 +- .../list.std_core_stringbuilder_static.yaml | 2 +- .../core/list.std_core_type_numeric_type.yaml | 4 +- .../list.std_core_typedarrays_function1.yaml | 26 +- .../list.std_core_typedarrays_instance.yaml | 16 +- .../list.std_core_typedarrays_methods.yaml | 22 +- .../list.std_core_typeduarrays_function1.yaml | 10 +- .../list.std_core_typeduarrays_instance.yaml | 8 +- .../list.std_core_typeduarrays_methods.yaml | 22 +- .../std/core/list.std_core_value.yaml | 4 +- .../std/math/list.std_math_arithmetic.yaml | 43 +- .../std/math/list.std_math_exp.yaml | 34 +- .../math/list.std_math_h_trigonometry.yaml | 4 +- .../std/math/list.std_math_log.yaml | 20 +- .../std/math/list.std_math_trigonometry.yaml | 34 +- .../list.std_serialization_json_static.yaml | 8 +- .../utils/test_check_test_regexp_result.j2 | 62 +- .../utils/test_constructor.j2 | 6 +- .../utils/test_core_math_lib.j2 | 2 +- .../utils/test_core_typedarray.j2 | 76 +- .../utils/test_core_typedarray_bignum.j2 | 10 +- .../utils/test_core_typedarray_ctors.j2 | 77 +- .../utils/test_core_typedarray_function2.j2 | 177 +- .../utils/test_core_typedarray_methods.j2 | 173 +- .../utils/test_core_typedarray_slicing.j2 | 72 +- .../utils/test_core_typeduarray.j2 | 68 +- .../utils/test_core_typeduarray_ctors.j2 | 78 +- .../utils/test_core_typeduarray_function2.j2 | 149 +- .../utils/test_core_typeduarray_methods.j2 | 56 +- .../utils/test_core_typeduarray_slicing.j2 | 70 +- .../stdlib-templates/utils/test_core_value.j2 | 6 +- .../utils/test_core_value_array_value.j2 | 4 +- .../utils/test_core_value_class_value.j2 | 4 +- .../utils/test_escompat_dataview.j2 | 8 +- .../utils/test_escompat_dataview_method.j2 | 2 +- .../stdlib-templates/utils/test_function.j2 | 2 +- .../utils/test_function_template.j2 | 2 +- .../utils/test_function_template_escompat.j2 | 2 +- .../utils/test_instance_method.j2 | 11 +- .../utils/test_instance_method_template.j2 | 2 +- .../utils/test_instance_property.j2 | 6 +- .../utils/test_main_function.j2 | 2 +- .../utils/test_static_method.j2 | 8 +- .../utils/test_static_method_template.j2 | 2 +- .../stdlib-templates/utils/test_utils.j2 | 10 +- .../utils/test_verifier_lib.j2 | 2 +- .../declgen-ts2ets-cts-ignored.txt | 82 +- .../declgen-ets2ets-isolated-excluded.txt} | 0 .../declgen-ets2ets-isolated-ignored.txt | 0 .../declgen-ets2ts-sdk-ignored.txt | 13 - .../ets-cts/declgen-ets2ts-cts-excluded.txt | 4642 +---------------- .../ets-cts/declgen-ets2ts-cts-ignored.txt | 2245 ++++---- .../declgen-ets2ts-func-tests-ignored.txt | 47 +- .../ets-cts/ets-cts-excluded-DI.txt | 358 +- .../ets-cts/ets-cts-excluded-JIT-REPEATS.txt | 160 +- .../test-lists/ets-cts/ets-cts-excluded.txt | 1460 +----- .../ets-cts/ets-cts-ignored-AMD64-AOT.txt | 24 +- .../ets-cts-ignored-AMD64-CPP-ASAN.txt | 11 + .../ets-cts/ets-cts-ignored-AMD64-OL0.txt | 10 +- .../ets-cts/ets-cts-ignored-AMD64.txt | 8 + .../ets-cts/ets-cts-ignored-ARM64-AOT.txt | 45 +- .../ets-cts-ignored-ARM64-JIT-REPEATS.txt | 2 - .../ets-cts/ets-cts-ignored-ARM64-JIT.txt | 8 + .../ets-cts/ets-cts-ignored-ARM64-OL0.txt | 10 +- .../test-lists/ets-cts/ets-cts-ignored-DI.txt | 12 +- .../ets-cts/ets-cts-ignored-JIT-REPEATS.txt | 111 +- .../ets-cts/ets-cts-ignored-SIMULTANEOUS.txt | 167 +- .../test-lists/ets-cts/ets-cts-ignored.txt | 3081 ++--------- .../ets-es-checked/ets-es-checked-ignored.txt | 61 +- .../test-lists/ets-func-tests/chapters.yaml | 5 +- .../ets-func-tests-excluded-DI.txt | 22 - .../ets-func-tests-excluded-JIT-REPEATS.txt | 26 +- .../ets-func-tests-excluded-TSAN.txt | 20 - .../ets-func-tests-excluded.txt | 149 - ...c-tests-ignored-AMD64-CPP-OL2-FULLASTV.txt | 19 - .../ets-func-tests-ignored-AMD64-INT-OL2.txt | 18 - .../ets-func-tests-ignored-AMD64-JIT-OL2.txt | 18 - .../ets-func-tests-ignored-AMD64-JIT.txt | 18 - .../ets-func-tests-ignored-AOT.txt | 18 - .../ets-func-tests-ignored-ARM64-INT-ASAN.txt | 22 +- .../ets-func-tests-ignored-ARM64-JIT-ASAN.txt | 22 +- ...s-func-tests-ignored-ARM64-JIT-REPEATS.txt | 22 - .../ets-func-tests-ignored-ARM64-JIT.txt | 20 - .../ets-func-tests-ignored-ASAN.txt | 19 - .../ets-func-tests-ignored-CPP-OL0.txt | 19 - .../ets-func-tests-ignored-JIT-REPEATS.txt | 30 +- .../ets-func-tests-ignored-TSAN.txt | 20 - .../ets-func-tests/ets-func-tests-ignored.txt | 202 +- .../test-lists/ets-sdk/ets-sdk-ignored.txt | 19 +- .../ets-ts-subset/ets-ts-subset-ignored.txt | 22 - .../test-lists/system/system-ignored.txt | 4 - .../unit-tests/unit-tests-excluded.txt | 1 + .../unit-tests-ignored-ARM64-JIT-IRTOC.txt | 3 - .../unit-tests-ignored-CPP-ASAN.txt | 3 - .../unit-tests/unit-tests-ignored.txt | 39 +- .../plugins/ets/tools/declgen_ts2sts/BUILD.gn | 13 +- .../tools/declgen_ts2sts/compile_declgen.py | 28 +- .../ets/tools/declgen_ts2sts/package.json | 4 +- .../tools/declgen_ts2sts/src/ASTAutofixer.ts | 309 +- .../ets/tools/declgen_ts2sts/src/Declgen.ts | 96 +- .../tools/declgen_ts2sts/src/TestRunner.ts | 26 +- .../declgen_ts2sts/src/compiler/Compiler.ts | 5 +- .../src/generateInteropDecls.ts | 35 +- .../arkts-array-structure.d.ets | 1 - .../arkts-array-structure.json | 0 .../{ts_source => }/arkts-array-structure.ts | 0 .../arkts-clasases-subtyping-extends.d.ets | 1 - .../arkts-clasases-subtyping-extends.json | 0 .../arkts-clasases-subtyping-extends.ts | 0 .../arkts-classes-abstract-classes.d.ets | 1 - .../arkts-classes-abstract-classes.json | 0 .../arkts-classes-abstract-classes.ts | 0 .../arkts-classes-async-static-methods.d.ets | 1 - .../arkts-classes-async-static-methods.json | 0 .../arkts-classes-async-static-methods.ts | 0 .../arkts-classes-aync-instance-methods.d.ets | 1 - .../arkts-classes-aync-instance-methods.json | 0 .../arkts-classes-aync-instance-methods.ts | 0 .../arkts-classes-getters-and-setters.d.ets | 1 - .../arkts-classes-getters-and-setters.json | 0 .../arkts-classes-getters-and-setters.ts | 0 ...sses-instance-methods-returning-this.d.ets | 1 - ...asses-instance-methods-returning-this.json | 0 ...classes-instance-methods-returning-this.ts | 0 ...ts-classes-overload-instance-methods.d.ets | 6 +- ...kts-classes-overload-instance-methods.json | 0 ...arkts-classes-overload-instance-methods.ts | 18 +- ...rkts-classes-overload-static-methods.d.ets | 6 +- ...arkts-classes-overload-static-methods.json | 0 .../arkts-classes-overload-static-methods.ts | 15 +- ...s-static-method-with-rest-parameters.d.ets | 1 - ...es-static-method-with-rest-parameters.json | 0 ...sses-static-method-with-rest-parameters.ts | 0 ...atic-methods-with-default-parameters.d.ets | 1 - ...tatic-methods-with-default-parameters.json | 0 ...-static-methods-with-default-parameters.ts | 0 .../{dets_output => }/arkts-collections.d.ets | 1 - .../{json_storage => }/arkts-collections.json | 0 .../{ts_source => }/arkts-collections.ts | 0 .../arkts-contravariant.d.ets | 3 +- .../arkts-contravariant.json | 0 .../{ts_source => }/arkts-contravariant.ts | 0 .../{dets_output => }/arkts-data-type.d.ets | 1 - .../{json_storage => }/arkts-data-type.json | 0 .../{ts_source => }/arkts-data-type.ts | 0 .../{dets_output => }/arkts-dataview.d.ets | 1 - .../{json_storage => }/arkts-dataview.json | 0 .../{ts_source => }/arkts-dataview.ts | 0 .../{dets_output => }/arkts-error.d.ets | 1 - .../{json_storage => }/arkts-error.json | 0 .../{ts_source => }/arkts-error.ts | 0 .../arkts-esobject-is-any.d.ets | 1 - .../arkts-esobject-is-any.json | 0 .../{ts_source => }/arkts-esobject-is-any.ts | 0 .../arkts-export-default-abstract-class.d.ets | 1 - .../arkts-export-default-abstract-class.json | 0 .../arkts-export-default-abstract-class.ts | 0 .../arkts-function-aync-functions.d.ets | 1 - .../arkts-function-aync-functions.json | 0 .../arkts-function-aync-functions.ts | 0 .../arkts-function-overloaded-functions.d.ets | 4 +- .../arkts-function-overloaded-functions.json | 0 .../arkts-function-overloaded-functions.ts | 13 +- .../arkts-function-with-arrow-structure.d.ets | 1 - .../arkts-function-with-arrow-structure.json | 0 .../arkts-function-with-arrow-structure.ts | 0 .../arkts-function-with-callback.d.ets | 5 +- .../arkts-function-with-callback.json | 0 .../arkts-function-with-callback.ts | 0 ...kts-function-with-default-parameters.d.ets | 1 - ...rkts-function-with-default-parameters.json | 0 .../arkts-function-with-default-parameters.ts | 0 .../arkts-function-with-rest-parameters.d.ets | 1 - .../arkts-function-with-rest-parameters.json | 0 .../arkts-function-with-rest-parameters.ts | 0 .../arkts-general-purpose-types-boxed.d.ets | 1 - .../arkts-general-purpose-types-boxed.json | 0 .../arkts-general-purpose-types-boxed.ts | 0 ...s-general-purpose-types-enumerations.d.ets | 1 - ...ts-general-purpose-types-enumerations.json | 0 ...rkts-general-purpose-types-enumerations.ts | 0 ...kts-general-purpose-types-never-type.d.ets | 1 - ...rkts-general-purpose-types-never-type.json | 0 .../arkts-general-purpose-types-never-type.ts | 0 ...-general-purpose-types-optional-type.d.ets | 1 - ...s-general-purpose-types-optional-type.json | 0 ...kts-general-purpose-types-optional-type.ts | 0 ...general-purpose-types-string-literal.d.ets | 1 - ...-general-purpose-types-string-literal.json | 0 ...ts-general-purpose-types-string-literal.ts | 0 .../arkts-general-purpose-types-unions.d.ets | 1 - .../arkts-general-purpose-types-unions.json | 0 .../arkts-general-purpose-types-unions.ts | 0 .../arkts-generic-functiontype.d.ets | 30 - .../arkts-generic-functiontype.json | 3 - .../arkts-generic-functiontype.ts | 30 - .../arkts-index-signature-interface.d.ets | 1 - .../arkts-index-signature-interface.json | 0 .../arkts-index-signature-interface.ts | 0 .../arkts-interfaces-overloaded-methods.d.ets | 1 - .../arkts-interfaces-overloaded-methods.json | 0 .../arkts-interfaces-overloaded-methods.ts | 0 .../{dets_output => }/arkts-invariant.d.ets | 3 +- .../{json_storage => }/arkts-invariant.json | 0 .../{ts_source => }/arkts-invariant.ts | 0 .../arkts-no-IndexedAccessTypes.d.ets | 7 +- .../arkts-no-IndexedAccessTypes.json | 0 .../arkts-no-IndexedAccessTypes.ts | 10 +- .../{dets_output => }/arkts-no-any.d.ets | 1 - .../{json_storage => }/arkts-no-any.json | 0 .../{ts_source => }/arkts-no-any.ts | 0 .../arkts-no-assignment-constant-bigint.d.ets | 1 - .../arkts-no-assignment-constant-bigint.json | 0 .../arkts-no-assignment-constant-bigint.ts | 0 ...rkts-no-assignment-constant-variable.d.ets | 1 - ...arkts-no-assignment-constant-variable.json | 0 .../arkts-no-assignment-constant-variable.ts | 0 .../arkts-no-built-in-types.d.ets | 25 + .../arkts-no-built-in-types.json | 0 .../cookbook_tests/arkts-no-built-in-types.ts | 42 + .../arkts-no-call-optional-function.d.ets | 1 - .../arkts-no-call-optional-function.json | 0 .../arkts-no-call-optional-function.ts | 0 .../arkts-no-conditional-types.d.ets | 1 - .../arkts-no-conditional-types.json | 0 .../arkts-no-conditional-types.ts | 0 .../arkts-no-declare-class.d.ets | 1 - .../arkts-no-declare-class.json | 0 .../{ts_source => }/arkts-no-declare-class.ts | 0 .../arkts-no-declare-function.d.ets | 1 - .../arkts-no-declare-function.json | 0 .../arkts-no-declare-function.ts | 0 .../arkts-no-declare-interface.d.ets | 1 - .../arkts-no-declare-interface.json | 0 .../arkts-no-declare-interface.ts | 0 .../arkts-no-duplicate-enum.d.ets | 1 - .../arkts-no-duplicate-enum.json | 0 .../arkts-no-duplicate-enum.ts | 0 .../arkts-no-duplicate-interfaces-class.d.ets | 2 +- .../arkts-no-duplicate-interfaces-class.json | 0 .../arkts-no-duplicate-interfaces-class.ts | 4 + .../arkts-no-enum-with-mixed-type.d.ets | 1 - .../arkts-no-enum-with-mixed-type.json | 0 .../arkts-no-enum-with-mixed-type.ts | 0 .../arkts-no-etskeyword.d.ets | 1 - .../arkts-no-etskeyword.json | 0 .../{ts_source => }/arkts-no-etskeyword.ts | 0 .../arkts-no-export-keyword.d.ets | 1 - .../arkts-no-export-keyword.json | 0 .../arkts-no-export-keyword.ts | 0 .../arkts-no-export-namespace.d.ets | 1 - .../arkts-no-export-namespace.json | 0 .../arkts-no-export-namespace.ts | 0 .../arkts-no-generator-function.d.ets | 1 - .../arkts-no-generator-function.json | 0 .../arkts-no-generator-function.ts | 0 .../arkts-no-import-keyword.d.ets | 1 - .../arkts-no-import-keyword.json | 0 .../arkts-no-import-keyword.ts | 0 .../arkts-no-initializer.d.ets | 1 - .../arkts-no-initializer.json | 0 .../{ts_source => }/arkts-no-initializer.ts | 0 .../arkts-no-intersection-type.d.ets | 1 - .../arkts-no-intersection-type.json | 0 .../arkts-no-intersection-type.ts | 0 .../{dets_output => }/arkts-no-keyof.d.ets | 1 - .../{json_storage => }/arkts-no-keyof.json | 0 .../{ts_source => }/arkts-no-keyof.ts | 0 .../arkts-no-limit-extends.d.ets | 1 - .../arkts-no-limit-extends.json | 0 .../{ts_source => }/arkts-no-limit-extends.ts | 0 .../arkts-no-mappedtype.d.ets | 1 - .../arkts-no-mappedtype.json | 0 .../{ts_source => }/arkts-no-mappedtype.ts | 0 .../arkts-no-misplaced-imports.d.ets | 1 - .../arkts-no-misplaced-imports.json | 0 .../arkts-no-misplaced-imports.ts | 0 .../{dets_output => }/arkts-no-module.d.ets | 1 - .../{json_storage => }/arkts-no-module.json | 0 .../{ts_source => }/arkts-no-module.ts | 0 .../arkts-no-numeric-literal.d.ets | 1 - .../arkts-no-numeric-literal.json | 0 .../arkts-no-numeric-literal.ts | 0 .../arkts-no-object-bind-params.d.ets | 1 - .../arkts-no-object-bind-params.json | 0 .../arkts-no-object-bind-params.ts | 0 .../arkts-no-object-parameters.d.ets | 1 - .../arkts-no-object-parameters.json | 0 .../arkts-no-object-parameters.ts | 0 .../arkts-no-optional-member-functions.d.ets | 1 - .../arkts-no-optional-member-functions.json | 0 .../arkts-no-optional-member-functions.ts | 0 .../arkts-no-private-identifiers.d.ets | 1 - .../arkts-no-private-identifiers.json | 0 .../arkts-no-private-identifiers.ts | 0 .../arkts-no-property-access-expression.d.ets | 1 - .../arkts-no-property-access-expression.json | 0 .../arkts-no-property-access-expression.ts | 0 .../{dets_output => }/arkts-no-symbol.d.ets | 1 - .../{json_storage => }/arkts-no-symbol.json | 0 .../{ts_source => }/arkts-no-symbol.ts | 0 .../arkts-no-type-generic.d.ets | 11 +- .../arkts-no-type-generic.json | 0 .../{ts_source => }/arkts-no-type-generic.ts | 0 .../arkts-no-type-literal.d.ets | 1 - .../arkts-no-type-literal.json | 0 .../{ts_source => }/arkts-no-type-literal.ts | 0 .../arkts-no-union-literal-generic.d.ets | 1 - .../arkts-no-union-literal-generic.json | 0 .../arkts-no-union-literal-generic.ts | 0 .../{dets_output => }/arkts-no-unknow.d.ets | 1 - .../{json_storage => }/arkts-no-unknow.json | 0 .../{ts_source => }/arkts-no-unknow.ts | 0 .../{dets_output => }/arkts-no-var.d.ets | 1 - .../{json_storage => }/arkts-no-var.json | 0 .../{ts_source => }/arkts-no-var.ts | 0 .../arkts-no-wrapper-to-primitive.d.ets | 1 - .../arkts-no-wrapper-to-primitive.json | 0 .../arkts-no-wrapper-to-primitive.ts | 0 .../arkts-operators-instanceos.d.ets | 1 - .../arkts-operators-instanceos.json | 0 .../arkts-operators-instanceos.ts | 0 .../arkts-operators-math-calculate.d.ets | 1 - .../arkts-operators-math-calculate.json | 0 .../arkts-operators-math-calculate.ts | 0 ...rkts-operators-self-inc-dec-operator.d.ets | 1 - ...arkts-operators-self-inc-dec-operator.json | 0 .../arkts-operators-self-inc-dec-operator.ts | 0 .../{dets_output => }/arkts-promise.d.ets | 1 - .../{json_storage => }/arkts-promise.json | 0 .../{ts_source => }/arkts-promise.ts | 0 .../arkts-regular-expression.d.ets | 1 - .../arkts-regular-expression.json | 0 .../arkts-regular-expression.ts | 0 .../arkts-standard-library-object.d.ets | 1 - .../arkts-standard-library-object.json | 0 .../arkts-standard-library-object.ts | 0 .../arkts-tuple-annotation.d.ets | 1 - .../arkts-tuple-annotation.json | 0 .../{ts_source => }/arkts-tuple-annotation.ts | 0 .../arkts-type-aliases-type.d.ets | 5 +- .../arkts-type-aliases-type.json | 0 .../arkts-type-aliases-type.ts | 2 +- .../{dets_output => }/arkts-typed-array.d.ets | 1 - .../{json_storage => }/arkts-typed-array.json | 0 .../{ts_source => }/arkts-typed-array.ts | 0 .../arkts-utility-types-partial.d.ets | 1 - .../arkts-utility-types-partial.json | 0 .../arkts-utility-types-partial.ts | 0 .../arkts-utility-types-readonly.d.ets | 1 - .../arkts-utility-types-readonly.json | 0 .../arkts-utility-types-readonly.ts | 0 .../arkts-utility-types-record.d.ets | 1 - .../arkts-utility-types-record.json | 0 .../arkts-utility-types-record.ts | 0 .../arkts-utility-types-required.d.ets | 1 - .../arkts-utility-types-required.json | 0 .../arkts-utility-types-required.ts | 0 .../dets_output/arkts-classes-export.d.ets | 37 - .../dets_output/arkts-declare-namespace.d.ets | 45 - .../dets_output/arkts-no-built-in-types.d.ets | 64 - .../arkts-no-constructor-type.d.ets | 23 - .../dets_output/arkts-no-lazy-import.d.ets | 28 - .../arkts-no-template-literal-type.d.ets | 21 - .../arkts-no-ts-utility-type.d.ets | 40 - ...kts-reserved-function-parameter-name.d.ets | 32 - .../arkts-rest-parameter-array.d.ets | 21 - .../dets_output/include/lib.d.ets | 35 - .../arkts-array-structure.d.ts | 29 - .../arkts-clasases-subtyping-extends.d.ts | 21 - .../arkts-classes-abstract-classes.d.ts | 18 - .../arkts-classes-async-static-methods.d.ts | 18 - .../arkts-classes-aync-instance-methods.d.ts | 18 - .../arkts-classes-getters-and-setters.d.ts | 21 - ...asses-instance-methods-returning-this.d.ts | 19 - ...kts-classes-overload-instance-methods.d.ts | 19 - ...arkts-classes-overload-static-methods.d.ts | 19 - ...es-static-method-with-rest-parameters.d.ts | 19 - ...tatic-methods-with-default-parameters.d.ts | 18 - .../dts_declarations/arkts-collections.d.ts | 23 - .../dts_declarations/arkts-contravariant.d.ts | 25 - .../dts_declarations/arkts-data-type.d.ts | 17 - .../dts_declarations/arkts-dataview.d.ts | 16 - .../arkts-declare-namespace.d.ts | 47 - .../dts_declarations/arkts-error.d.ts | 23 - .../arkts-function-aync-functions.d.ts | 16 - .../arkts-function-overloaded-functions.d.ts | 17 - .../arkts-function-with-arrow-structure.d.ts | 20 - ...rkts-function-with-default-parameters.d.ts | 16 - .../arkts-function-with-rest-parameters.d.ts | 17 - .../arkts-general-purpose-types-boxed.d.ts | 18 - ...ts-general-purpose-types-enumerations.d.ts | 19 - ...rkts-general-purpose-types-never-type.d.ts | 16 - ...s-general-purpose-types-optional-type.d.ts | 23 - ...-general-purpose-types-string-literal.d.ts | 17 - .../arkts-general-purpose-types-unions.d.ts | 20 - .../arkts-interfaces-overloaded-methods.d.ts | 19 - .../dts_declarations/arkts-invariant.d.ts | 24 - .../arkts-no-IndexedAccessTypes.d.ts | 23 - .../dts_declarations/arkts-no-any.d.ts | 18 - ...arkts-no-assignment-constant-variable.d.ts | 37 - .../arkts-no-built-in-types.d.ts | 75 - .../arkts-no-conditional-types.d.ts | 22 - .../arkts-no-declare-interface.d.ts | 18 - .../arkts-no-duplicate-enum.d.ts | 33 - .../arkts-no-duplicate-interfaces-class.d.ts | 36 - .../arkts-no-enum-with-mixed-type.d.ts | 39 - .../arkts-no-export-namespace.d.ts | 30 - .../arkts-no-generator-function.d.ts | 17 - .../arkts-no-initializer.d.ts | 45 - .../arkts-no-intersection-type.d.ts | 39 - .../dts_declarations/arkts-no-keyof.d.ts | 25 - .../arkts-no-limit-extends.d.ts | 45 - .../dts_declarations/arkts-no-mappedtype.d.ts | 47 - .../arkts-no-misplaced-imports.d.ts | 20 - .../dts_declarations/arkts-no-module.d.ts | 22 - .../arkts-no-numeric-literal.d.ts | 31 - .../arkts-no-object-bind-params.d.ts | 26 - .../arkts-no-object-parameters.d.ts | 24 - .../arkts-no-private-identifiers.d.ts | 40 - .../arkts-no-property-access-expression.d.ts | 51 - .../dts_declarations/arkts-no-symbol.d.ts | 16 - .../arkts-no-type-generic.d.ts | 71 - .../arkts-no-type-literal.d.ts | 59 - .../arkts-no-union-literal-generic.d.ts | 33 - .../dts_declarations/arkts-no-unknow.d.ts | 18 - .../dts_declarations/arkts-no-var.d.ts | 19 - .../arkts-no-wrapper-to-primitive.d.ts | 22 - .../dts_declarations/arkts-promise.d.ts | 16 - .../arkts-regular-expression.d.ts | 17 - .../arkts-tuple-annotation.d.ts | 52 - .../arkts-type-aliases-type.d.ts | 20 - .../dts_declarations/arkts-typed-array.d.ts | 24 - .../arkts-utility-types-partial.d.ts | 21 - .../arkts-utility-types-readonly.d.ts | 21 - .../arkts-utility-types-record.d.ts | 16 - .../arkts-utility-types-required.d.ts | 21 - .../dts_declarations/include/lib.d.ts | 35 - .../{ts_source => }/include/KeywordClass.ts | 0 .../test/cookbook_tests/include/lib.ts | 22 + .../json_storage/arkts-classes-export.json | 3 - .../json_storage/arkts-declare-namespace.json | 3 - .../arkts-no-constructor-type.json | 3 - .../json_storage/arkts-no-lazy-import.json | 3 - .../arkts-no-template-literal-type.json | 3 - .../arkts-no-ts-utility-type.json | 3 - ...rkts-reserved-function-parameter-name.json | 3 - .../arkts-rest-parameter-array.json | 3 - .../ts_source/arkts-classes-export.ts | 55 - .../ts_source/arkts-no-built-in-types.ts | 127 - .../ts_source/arkts-no-constructor-type.ts | 26 - .../ts_source/arkts-no-lazy-import.ts | 31 - .../arkts-no-template-literal-type.ts | 22 - .../ts_source/arkts-no-ts-utility-type.ts | 58 - .../arkts-reserved-function-parameter-name.ts | 50 - .../ts_source/arkts-rest-parameter-array.ts | 26 - .../cookbook_tests/ts_source/include/lib.ts | 37 - .../test-lists/declgenparser-ets-ignored.txt | 1 - .../ets/tools/declgen_ts2sts/tsconfig.json | 2 - .../tools/declgen_ts2sts/utils/lib/FaultId.ts | 7 +- .../declgen_ts2sts/utils/lib/TypeUtils.ts | 89 +- .../ets/tools/specification_checker.py | 223 - .../plugins/ets/verification/ets_plugin.cpp | 8 +- 11456 files changed, 146457 insertions(+), 305379 deletions(-) create mode 100644 static_core/plugins/ets/arkts_header/CMakeLists.txt create mode 100644 static_core/plugins/ets/arkts_header/arkts_header.cpp create mode 100644 static_core/plugins/ets/arkts_header/header_writer.cpp create mode 100644 static_core/plugins/ets/arkts_header/header_writer.h delete mode 100644 static_core/plugins/ets/cmake/ani.cmake delete mode 100644 static_core/plugins/ets/compiler/product_options.h delete mode 100644 static_core/plugins/ets/dfx/heap_helpers.cpp delete mode 100644 static_core/plugins/ets/dfx/heap_helpers.h delete mode 100644 static_core/plugins/ets/doc/build_all.bat delete mode 100644 static_core/plugins/ets/doc/build_annotations.bat delete mode 100644 static_core/plugins/ets/doc/build_cookbook.bat delete mode 100644 static_core/plugins/ets/doc/build_runtime.bat delete mode 100644 static_core/plugins/ets/doc/build_spec.bat delete mode 100644 static_core/plugins/ets/doc/build_stdlib.bat delete mode 100644 static_core/plugins/ets/doc/build_system.bat delete mode 100644 static_core/plugins/ets/doc/build_tutorial.bat delete mode 100644 static_core/plugins/ets/irtoc_scripts/escompat_array.irt delete mode 100644 static_core/plugins/ets/irtoc_scripts/map.irt delete mode 100644 static_core/plugins/ets/irtoc_scripts/map_set_common.irt delete mode 100644 static_core/plugins/ets/irtoc_scripts/set.irt delete mode 100644 static_core/plugins/ets/playground/frontend/public/env.js delete mode 100644 static_core/plugins/ets/runtime/ani/ani_helpers.cpp delete mode 100644 static_core/plugins/ets/runtime/ani/ani_helpers.h delete mode 100644 static_core/plugins/ets/runtime/ani/ani_options.cpp delete mode 100644 static_core/plugins/ets/runtime/ani/ani_options_parser.cpp delete mode 100644 static_core/plugins/ets/runtime/ani/docs/mangling.md create mode 100644 static_core/plugins/ets/runtime/ets_modifiers.h delete mode 100644 static_core/plugins/ets/runtime/ets_stdlib_cache.cpp delete mode 100644 static_core/plugins/ets/runtime/ets_stdlib_cache.h delete mode 100644 static_core/plugins/ets/runtime/hybrid/mem/external-gc.h delete mode 100644 static_core/plugins/ets/runtime/interop_js/code_scopes-inl.h delete mode 100644 static_core/plugins/ets/runtime/interop_js/code_scopes.cpp delete mode 100644 static_core/plugins/ets/runtime/interop_js/js_refconvert_tuple.cpp delete mode 100644 static_core/plugins/ets/runtime/interop_js/js_refconvert_tuple.h delete mode 100644 static_core/plugins/ets/runtime/interop_js/js_refconvert_union.cpp delete mode 100644 static_core/plugins/ets/runtime/interop_js/js_refconvert_union.h delete mode 100644 static_core/plugins/ets/runtime/interop_js/napi_impl/ark_napi_helper.h create mode 100644 static_core/plugins/ets/runtime/interop_js/native_api/arkts_esvalue.cpp create mode 100644 static_core/plugins/ets/runtime/interop_js/native_api/arkts_esvalue.h delete mode 100644 static_core/plugins/ets/runtime/interop_js/native_api/arkts_interop_js_api_impl.cpp delete mode 100644 static_core/plugins/ets/runtime/interop_js/native_api/arkts_interop_js_api_impl.h delete mode 100644 static_core/plugins/ets/runtime/interop_js/xref_object_operator.cpp delete mode 100644 static_core/plugins/ets/runtime/interop_js/xref_object_operator.h delete mode 100644 static_core/plugins/ets/runtime/interpreter/any_opcodes.inc delete mode 100644 static_core/plugins/ets/runtime/intrinsics/escompat_Map.cpp delete mode 100644 static_core/plugins/ets/runtime/intrinsics/escompat_Set.cpp delete mode 100644 static_core/plugins/ets/runtime/libani_helpers/interop_js/arkts_interop_js_api.cpp delete mode 100644 static_core/plugins/ets/runtime/libani_helpers/interop_js/arkts_interop_js_api.h delete mode 100644 static_core/plugins/ets/runtime/mem/ets_gc_stat.cpp delete mode 100644 static_core/plugins/ets/runtime/mem/ets_gc_stat.h create mode 100644 static_core/plugins/ets/runtime/napi/CMakeLists.txt rename static_core/plugins/ets/runtime/{ani => napi}/arch/amd64/ets_async_entry_point_amd64.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/amd64/ets_napi_entry_point_amd64.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/arm32/ets_async_entry_point_arm32.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/arm32/ets_async_entry_point_arm32hf.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/arm32/ets_napi_entry_point_arm32.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/arm32/ets_napi_entry_point_arm32hf.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/arm64/ets_async_entry_point_aarch64.S (100%) rename static_core/plugins/ets/runtime/{ani => napi}/arch/arm64/ets_napi_entry_point_aarch64.S (100%) create mode 100644 static_core/plugins/ets/runtime/napi/ets_mangle.cpp create mode 100644 static_core/plugins/ets/runtime/napi/ets_mangle.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_helpers.cpp create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_helpers.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_internal.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_invoke_interface.cpp create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_invoke_interface.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_macros.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_native_interface.cpp create mode 100644 static_core/plugins/ets/runtime/napi/ets_napi_native_interface.h create mode 100644 static_core/plugins/ets/runtime/napi/ets_scoped_objects_fix.h create mode 100644 static_core/plugins/ets/runtime/napi/etsnative/BUILD.gn create mode 100644 static_core/plugins/ets/runtime/napi/etsnative/CMakeLists.txt create mode 100644 static_core/plugins/ets/runtime/napi/etsnative/etsnative.cpp delete mode 100644 static_core/plugins/ets/runtime/product_options.h rename static_core/plugins/ets/{stdlib/native/escompat => runtime}/regexp/regexp.cpp (75%) create mode 100644 static_core/plugins/ets/runtime/regexp/regexp.h create mode 100644 static_core/plugins/ets/runtime/regexp/regexp_16.cpp create mode 100644 static_core/plugins/ets/runtime/regexp/regexp_16.h create mode 100644 static_core/plugins/ets/runtime/regexp/regexp_8.cpp create mode 100644 static_core/plugins/ets/runtime/regexp/regexp_8.h create mode 100644 static_core/plugins/ets/runtime/regexp/regexp_executor.cpp create mode 100644 static_core/plugins/ets/runtime/regexp/regexp_executor.h delete mode 100644 static_core/plugins/ets/runtime/static_object_accessor.cpp delete mode 100644 static_core/plugins/ets/runtime/static_object_accessor.h delete mode 100644 static_core/plugins/ets/runtime/static_type_converter.cpp delete mode 100644 static_core/plugins/ets/runtime/static_type_converter.h delete mode 100644 static_core/plugins/ets/runtime/types/ets_atomic_int.h delete mode 100644 static_core/plugins/ets/runtime/types/ets_map.cpp delete mode 100644 static_core/plugins/ets/runtime/types/ets_map.h delete mode 100644 static_core/plugins/ets/runtime/types/ets_set.h delete mode 100644 static_core/plugins/ets/runtime/types/ets_string.cpp delete mode 100644 static_core/plugins/ets/runtime/types/ets_taskpool.h delete mode 100644 static_core/plugins/ets/runtime/types/ets_tuple.h create mode 100644 static_core/plugins/ets/runtime/types/ets_weak_reference.cpp delete mode 100644 static_core/plugins/ets/runtime/unhandled_manager/unhandled_object_manager.cpp delete mode 100644 static_core/plugins/ets/runtime/unhandled_manager/unhandled_object_manager.h mode change 100755 => 100644 static_core/plugins/ets/sdk/api/@ohos.util.stream.ets delete mode 100644 static_core/plugins/ets/sdk/native/api/ani_xmlpullparser.cpp delete mode 100644 static_core/plugins/ets/sdk/native/api/ani_xmlpullparser.h delete mode 100644 static_core/plugins/ets/stdlib/escompat/ErrorHandler.ets create mode 100644 static_core/plugins/ets/stdlib/escompat/Proxy.ets rename static_core/plugins/ets/stdlib/{std/core => escompat}/ReadonlyArrayProxy.ets (90%) delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/RegExp.cpp delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/RegExp.h delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/regexp/regexp.h delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/regexp/regexp_16.cpp delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/regexp/regexp_16.h delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/regexp/regexp_8.cpp delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/regexp/regexp_8.h delete mode 100644 static_core/plugins/ets/stdlib/native/escompat/regexp/regexp_exec_result.h delete mode 100755 static_core/plugins/ets/stdlib/package_stdlib.py create mode 100755 static_core/plugins/ets/stdlib/package_stdlib.sh delete mode 100644 static_core/plugins/ets/stdlib/std/annotations/moduleDeclaration.ets delete mode 100644 static_core/plugins/ets/stdlib/std/concurrency/Message.ets delete mode 100644 static_core/plugins/ets/stdlib/std/concurrency/MessageHandler.ets delete mode 100644 static_core/plugins/ets/stdlib/std/concurrency/WorkerLocal.ets create mode 100644 static_core/plugins/ets/stdlib/std/containers/AVLTree.ets create mode 100644 static_core/plugins/ets/stdlib/std/containers/ArrayAsListObject.ets delete mode 100644 static_core/plugins/ets/stdlib/std/core/CreateFromJSONValue.ets delete mode 100644 static_core/plugins/ets/stdlib/std/core/Null.ets create mode 100644 static_core/plugins/ets/stdlib/std/core/NullValue.ets delete mode 100644 static_core/plugins/ets/stdlib/std/core/Proxy.ets delete mode 100644 static_core/plugins/ets/stdlib/std/debug/RuntimeDebug.ets delete mode 100644 static_core/plugins/ets/stdlib/std/hiddable_APIs.json delete mode 100644 static_core/plugins/ets/stdlib/std/interop/InteropSerializeHelper.ets delete mode 100644 static_core/plugins/ets/tests/ani/app/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/app/app/app.ets delete mode 100644 static_core/plugins/ets/tests/ani/app/arktsconfig.json delete mode 100644 static_core/plugins/ets/tests/ani/app/interface/ability.ets delete mode 100644 static_core/plugins/ets/tests/ani/app/main.cpp delete mode 100644 static_core/plugins/ets/tests/ani/app/plugin/plugin.cpp delete mode 100644 static_core/plugins/ets/tests/ani/app/plugin/plugin.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/ani_c/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/tests/ani_c/ani_ctest.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/ani_c/ani_ctest.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/ani_c/lib/ani_clib.c delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_call_method_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_call_method_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_call_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_call_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_get_property_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_get_property_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_instanceof_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_new_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_new_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_set_property_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/any_ops/any_set_property_test.ets rename static_core/plugins/ets/tests/ani/tests/{fixedarray_ops => array_ops}/ani_gtest_array_ops.h (100%) rename static_core/plugins/ets/tests/ani/tests/{fixedarray_ops => array_ops}/array_compatibility_test.cpp (78%) rename static_core/plugins/ets/tests/ani/tests/{fixedarray_ops => array_ops}/array_compatibility_test.ets (80%) delete mode 100644 static_core/plugins/ets/tests/ani/tests/array_ops/array_get_set_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/array_ops/array_gtest_helper.h delete mode 100644 static_core/plugins/ets/tests/ani/tests/array_ops/array_managed_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/array_ops/array_managed_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/array_ops/array_push_pop_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/bind_ops/class_bind_static_native_methods_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/bind_ops/class_bind_static_native_methods_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/arrays.cpp.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/arrays.ets.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/returns.cpp.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/returns.ets.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/returns_ref.cpp.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/returns_ref.ets.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/types.cpp.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/types.ets.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/types_ref.cpp.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/j2/types_ref.ets.j2 delete mode 100644 static_core/plugins/ets/tests/ani/tests/bridges/scripts/gen_test_files.py delete mode 100755 static_core/plugins/ets/tests/ani/tests/bridges/scripts/gen_test_files.sh delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_get_length_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_get_ref_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_get_ref_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_new_ref_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_boolean_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_boolean_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_byte_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_byte_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_char_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_char_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_double_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_double_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_float_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_float_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_int_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_int_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_long_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_long_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_short_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_region_short_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_set_ref_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/fixedarray_ops/fixedarray_set_ref_test.ets delete mode 100644 static_core/plugins/ets/tests/ani/tests/load_library/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/tests/load_library/lib.cpp create mode 100644 static_core/plugins/ets/tests/ani/tests/options/logger/ani_option_logger_parser_faild_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/options/logger/ani_option_logger_parser_wrong_ext_option_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/options/logger/ani_option_logger_parser_wrong_log_option_test.cpp delete mode 100644 static_core/plugins/ets/tests/ani/tests/options/options_parser/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ani/tests/options/options_parser/ani_options_parser_test.cpp delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/comparison/cmp_ref.ets delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/comparison/cmp_ref.params.yaml delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/comparison/cmp_val.ets delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/comparison/cmp_val.params.yaml delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/concat/conc_ref.ets delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/concat/conc_val.ets delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/conditional/cond_func_ref.ets delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/conditional/cond_func_ref.params.yaml delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/conditional/cond_func_val.ets delete mode 100644 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/conditional/cond_func_val.params.yaml delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/02.character_types_and_operations/conditional/cond_func_val_n0.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/array_access8.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/array_access9.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/array_constant_shift_6.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/array_constant_shift_7.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/array_constant_shift_8.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ch_0.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ch_1.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/cond_fld_val_1.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_bitwise_complement_2.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_bitwise_expression_12.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_bitwise_expression_13.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_bitwise_expression_14.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_bitwise_expression_2.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_calculation_10.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_calculation_11.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_calculation_12.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_calculation_13.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_calculation_14.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_logical_expression_7.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_logical_expression_8.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_num_chain_initializer_5.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_unary_minus_2.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/constant_unary_plus_2.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/create_array_using_generic_types_12.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/fixed_array_types_ext_17.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/for_of_15.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/initializer_compatibility_11.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/initializer_compatibility_12.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/int_28.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/int_29.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/int_30.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/multi_layer_interface_inheritance_override_ext_9.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_102.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_103.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_104.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_123.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_124.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_125.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_138.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_139.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_140.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_153.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_154.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_155.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_168.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_169.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_170.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_183.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_184.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_185.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_201.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_202.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_203.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_219.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_220.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_221.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_24.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_25.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_26.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_54.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_55.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_56.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_81.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_82.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_83.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_100.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_101.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_120.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_121.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_122.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_135.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_136.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_137.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_150.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_151.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_152.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_165.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_166.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_167.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_180.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_181.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_182.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_198.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_199.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_200.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_216.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_217.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_218.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_24.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_25.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_26.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_51.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_52.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_53.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_78.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_79.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_80.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/ops_boxed_99.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/primitive_types_cast_3.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/single_export_0.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/single_params_20.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/single_params_21.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/single_params_22.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/single_params_23.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/single_params_6.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/unary_ref_0.ets delete mode 100755 static_core/plugins/ets/tests/arkts-cts-negative/char_not_numeric/unary_val_0.ets delete mode 100644 static_core/plugins/ets/tests/checked/branch_elimination_protect_returninlined.ets create mode 100644 static_core/plugins/ets/tests/checked/checks_elimination_actual_length.ets delete mode 100644 static_core/plugins/ets/tests/checked/escape_analysis_decompose.ets delete mode 100644 static_core/plugins/ets/tests/checked/escape_phi.ets delete mode 100644 static_core/plugins/ets/tests/checked/escompat_array_concat.ets delete mode 100644 static_core/plugins/ets/tests/checked/escompat_array_join.ets delete mode 100644 static_core/plugins/ets/tests/checked/escompat_array_push.ets delete mode 100644 static_core/plugins/ets/tests/checked/escompat_array_reverse.ets delete mode 100644 static_core/plugins/ets/tests/checked/escompat_array_unshift.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_escompat_map_intrinsics.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_escompat_map_no_inline_array_calls.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_escompat_set_intrinsics.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_escompat_typed_arrays_of.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_escompat_typed_arrays_slice.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_escompat_typed_arrays_with.ets delete mode 100644 static_core/plugins/ets/tests/checked/ets_stringbuilder_length.ets create mode 100644 static_core/plugins/ets/tests/checked/ets_try_catch6.ets delete mode 100755 static_core/plugins/ets/tests/checked/hash_code_double_float.ets delete mode 100644 static_core/plugins/ets/tests/checked/if_conversion_1.ets delete mode 100644 static_core/plugins/ets/tests/checked/if_conversion_2.ets delete mode 100644 static_core/plugins/ets/tests/checked/inlining_test/inlining_infiniteLoop.ets delete mode 100644 static_core/plugins/ets/tests/checked/interface_cache_intrinsic.ets delete mode 100644 static_core/plugins/ets/tests/checked/jitinterface/compile_method.cpp delete mode 100644 static_core/plugins/ets/tests/checked/jitinterface/compile_method.h delete mode 100644 static_core/plugins/ets/tests/checked/lambda_with_capture_optimized.ets delete mode 100644 static_core/plugins/ets/tests/checked/loop_unroll_shl_shr_ashr.ets delete mode 100644 static_core/plugins/ets/tests/checked/lowering_bitfield_extraction.ets delete mode 100644 static_core/plugins/ets/tests/checked/lse_loop_non_dominating_store.ets delete mode 100644 static_core/plugins/ets/tests/checked/optimize_mod.ets delete mode 100644 static_core/plugins/ets/tests/checked/typedarray_get_length_loadobject.ets delete mode 100644 static_core/plugins/ets/tests/cmake/managed_helpers.cmake delete mode 100644 static_core/plugins/ets/tests/common/import_from_abc_simple/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/common/import_from_abc_simple/entry/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/common/import_from_abc_simple/entry/entry.ets delete mode 100644 static_core/plugins/ets/tests/common/import_from_abc_simple/lib/lib.ets delete mode 100644 static_core/plugins/ets/tests/common/import_from_declaration_cache/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/common/import_from_declaration_cache/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/common/import_from_declaration_cache/dir/export_file.ets delete mode 100644 static_core/plugins/ets/tests/common/import_from_declaration_cache/file.ets delete mode 100644 static_core/plugins/ets/tests/compiler/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/compiler/cmake/compiler_tests.cmake delete mode 100644 static_core/plugins/ets/tests/compiler/compiler_gtest/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/compiler/compiler_gtest/compiler_gtest.h delete mode 100644 static_core/plugins/ets/tests/compiler/wrong_boot_context_test/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/compiler/wrong_boot_context_test/resource.ets delete mode 100644 static_core/plugins/ets/tests/compiler/wrong_boot_context_test/wrong_boot_context_test.cpp delete mode 100644 static_core/plugins/ets/tests/compiler/wrong_boot_context_test/wrong_boot_context_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_add.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_and.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_bigint.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_biguint.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_compare_exchange.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_exchange.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_load.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_or.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_store.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_sub.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operation_xor.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_add.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_and.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_bigint.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_biguint.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_compare_exchange.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_exchange.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_load.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_or.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_store.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_sub.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/base_operator_xor.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/atomics/nonconcurrent_signed_unsigned_operations_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/declare1.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/declare1.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/declare2.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/declare2.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/declare3.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/declare3.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/index1.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/index2.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_generic_bridge/index3.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/default_import/default4.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/import_name_conflicts/main.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/import_static_invoke/class_module.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/import_static_invoke/import.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/infer_function_return_type/test.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/infer_function_return_type/test2.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/infer_function_return_type/test3.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/array_concat.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/array_indexof.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/array_last_indexof.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/array_reverse.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/copyTo.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/float32array_join.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/map.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/map_numeric.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/map_set.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/set.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/set_has.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_array.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_charat.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_fromcodepoint.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_gc.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_get.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_getlength.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_hashcode.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_indexofstring.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_iscompressed.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_iswellformed.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_lastindexof.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_normalize.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_tolocalelowercase.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_tolocaleuppercase.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_tolowercase.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/string_touppercase.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/typed_arrays_from.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/typed_arrays_includes.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/typed_arrays_indexof.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/typed_arrays_last_indexof.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/typed_arrays_slice.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/intrinsics/typed_arrays_with.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/A/arktsconfig.json create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/A/src/main/ets/a1.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/B/arktsconfig.json create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/B/indexB.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/B/src/main/ets/pages/b.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/C/arktsconfig.json create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/C/indexC.ets create mode 100644 static_core/plugins/ets/tests/ets-common-tests/testing_arktsconfig_field_dependencies_and_entry/C/src/main/ets/pages/c.ets delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/unions/union_method.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/unions/union_method_common.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/unions/union_method_dummy_interface.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/unions/union_method_short_long_range.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-common-tests/unions/union_method_virtual.ets.expected.err delete mode 100755 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/07.keywords/soft_declare.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/07.keywords/types_local.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/07.keywords/types_local.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/02.integer_literals/incorrect_long_literals.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/02.integer_literals/incorrect_long_literals.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/03.floating_point_literals/float_implicit_conversions.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/03.floating_point_literals/float_implicit_conversions.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/03.floating_point_literals/float_literal_too_large.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/03.floating_point_literals/float_literal_too_large.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/07.multiline_string_literal/spec_example_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/07.multiline_string_literal/spec_example_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/07.multiline_string_literal/spec_example_5.ets rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{09.null_literal => 08.null_literal}/null_literal.ets (95%) rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{09.null_literal => 08.null_literal}/null_literal1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{09.null_literal => 08.null_literal}/null_literal2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{09.null_literal => 08.null_literal}/null_literal3.ets (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_anchor_boundaries.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_anchor_boundaries.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_basic_literal.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_basic_literal.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_example_literals.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_example_literals.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_flags_literal.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_flags_literal.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_groups_capturing.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_groups_capturing.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_invalid_literal.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_invalid_literal.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_lookaround_literal.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_lookaround_literal.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_quantifier_literal.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/08.regex_literal/regex_quantifier_literal.params.yaml rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{10.undefined_literal => 09.undefined_literal}/undef_literal.ets (94%) rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{10.undefined_literal => 09.undefined_literal}/undef_literal1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{10.undefined_literal => 09.undefined_literal}/undef_literal2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/02.lexical_elements/09.literals/{10.undefined_literal => 09.undefined_literal}/undef_literal3.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/{primitive_types => 01.primitive_types}/pt_alias.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/{primitive_types => 01.primitive_types}/pt_alias.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/{primitive_types => 01.primitive_types}/pt_constructor.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/{primitive_types/pt_type.params.yaml => 01.primitive_types/pt_constructor.params.yaml} (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/{primitive_types => 01.primitive_types}/pt_metod.ets (76%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/01.primitive_types/pt_metod.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/{primitive_types => 01.primitive_types}/pt_type.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/01.primitive_types/pt_type.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/hier1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/hier1.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_bigint.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_byte.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_00.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_01.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_02.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_03.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_04.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_05.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_06.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_07.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_08.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_09.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_10.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_11.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_12.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_13.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_14.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_15.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_16.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_17.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_18.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_float_19.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_00.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_03.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_04.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_05.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_06.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_07.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_08.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_14.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_16.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_18.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_19.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_20.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_21.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_int_operator_22.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_long.ets (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/{06.value_types/01.numeric_types => 01.predefined_types/02.numeric_types}/nt_short.ets (89%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_array_alias.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_array_alias.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_class_alias.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_class_alias.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_constructor.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_function_alias.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_function_alias.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/01.predefined_types/primitive_types/pt_metod.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types/02.readonly_array_types => 03.using_types/01.readonly_array_and_tuple_type}/array_readonly.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types/02.readonly_array_types => 03.using_types/01.readonly_array_and_tuple_type}/array_readonly.params.yaml (70%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types/02.readonly_array_types => 03.using_types/01.readonly_array_and_tuple_type}/array_readonly_n.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types/02.readonly_array_types => 03.using_types/01.readonly_array_and_tuple_type}/array_readonly_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types/01.readonly_tuple_types => 03.using_types/01.readonly_array_and_tuple_type}/tuple_readonly.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types/01.readonly_tuple_types => 03.using_types/01.readonly_array_and_tuple_type}/tuple_readonly.params.yaml (70%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types/01.readonly_tuple_types => 03.using_types/01.readonly_array_and_tuple_type}/tuple_readonly_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types/01.readonly_tuple_types => 03.using_types/01.readonly_array_and_tuple_type}/tuple_readonly_n.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/03.using_types/types_declaration_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/03.using_types/types_declaration_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/03.using_types/types_declaration_spec.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/05.type_references/type_alias.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/05.type_references/type_map.ets rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/addition/addition_char.ets (93%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/addition/addition_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/addition/addition_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_and/bitwise_and_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_and/bitwise_and_char.params.yaml (73%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_and/bitwise_and_short.params.yaml (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_complement/bitwise_complement_char.ets (88%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_complement/bitwise_complement_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_complement/bitwise_complement_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_byte.params.yaml (91%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_or/bitwise_or_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_or/bitwise_or_char.params.yaml (72%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_or/bitwise_or_short.params.yaml (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_xor/bitwise_xor_char.ets (93%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/bitwise_xor/bitwise_xor_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/bitwise_xor/bitwise_xor_short.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/03.types/06.value_types/01.integer_types_and_operations/conversions => ets-templates/03.types/06.value_types/01.integer_types_and_operations/convertions}/conversions.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/01.integer_types_and_operations/convertions/conversions.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated/03.types/06.value_types/01.integer_types_and_operations/conversions => ets-templates/03.types/06.value_types/01.integer_types_and_operations/convertions}/conversions_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/03.types/06.value_types/01.integer_types_and_operations/conversions => ets-templates/03.types/06.value_types/01.integer_types_and_operations/convertions}/conversions_n.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_by_zero_bigint.ets (74%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_by_zero_byte.ets (66%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/division/division_by_zero_char.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_by_zero_int.ets (67%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_by_zero_long.ets (66%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_by_zero_short.ets (66%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/division/division_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/division/division_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/division/division_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/equal/equal_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/equal/equal_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/equal/equal_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/greater_or_equal/greater_or_equal_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/greater_or_equal/greater_or_equal_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_or_equal/greater_or_equal_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/greater_than/greater_than_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/greater_than/greater_than_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/greater_than/greater_than_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/left_shift/left_shift_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/left_shift/left_shift_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/left_shift/left_shift_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/less_or_equal/less_or_equal_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/less_or_equal/less_or_equal_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_or_equal/less_or_equal_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/less_than/less_than_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/less_than/less_than_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/less_than/less_than_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_bigint.ets (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_byte.ets (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/multiplication/multiplication_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/multiplication/multiplication_char.params.yaml (69%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_int.ets (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_long.ets (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_short.ets (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/multiplication/multiplication_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/not_equal/not_equal_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/not_equal/not_equal_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/not_equal/not_equal_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_byte.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/postfix_decrement/postfix_decrement_char.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/postfix_decrement/postfix_decrement_char.params.yaml (84%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_int.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_long.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_short.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_decrement/postfix_decrement_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_byte.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/postfix_increment/postfix_increment_char.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/postfix_increment/postfix_increment_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_int.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_long.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_short.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/postfix_increment/postfix_increment_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_byte.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/prefix_decrement/prefix_decrement_char.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/prefix_decrement/prefix_decrement_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_int.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_long.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_short.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_decrement/prefix_decrement_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_byte.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/prefix_increment/prefix_increment_char.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/prefix_increment/prefix_increment_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_int.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_long.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_short.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/prefix_increment/prefix_increment_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_by_zero_bigint.ets (77%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_by_zero_byte.ets (67%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/remainder/remainder_by_zero_char.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_by_zero_int.ets (67%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_by_zero_long.ets (67%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_by_zero_short.ets (67%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/remainder/remainder_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/remainder/remainder_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/remainder/remainder_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/right_shift/right_shift_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/right_shift/right_shift_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/right_shift/right_shift_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/string_concatenation/string_concatenation_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/string_concatenation/string_concatenation_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/string_concatenation/string_concatenation_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/subtraction/subtraction_char.ets (93%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/subtraction/subtraction_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_int.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_long.params.yaml (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/subtraction/subtraction_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/ternary/ternary_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/ternary/ternary_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/ternary/ternary_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/unary_minus/unary_minus_char.ets (93%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/unary_minus/unary_minus_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_minus/unary_minus_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_bigint.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_bigint.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/unary_plus/unary_plus_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/unary_plus/unary_plus_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unary_plus/unary_plus_short.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_byte.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_byte.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/unsigned_right_shift/unsigned_right_shift_char.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/06.value_types/01.integer_types_and_operations/unsigned_right_shift/unsigned_right_shift_char.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_int.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_long.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_long.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_short.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{02.integer_types_and_operations => 01.integer_types_and_operations}/unsigned_right_shift/unsigned_right_shift_short.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/01.numeric_types/nt_int_operator_09.ets rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/addition/addition_float.ets (78%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/addition/addition_float.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/division/division_float.ets (78%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/division/division_float.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/equal/equal_float.ets (80%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.floating-point_types_and_operations/equal/equal_float.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/greater_or_equal/greater_or_equal_float.ets (85%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.floating-point_types_and_operations/greater_or_equal/greater_or_equal_float.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/greater_than/greater_than_float.ets (85%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.floating-point_types_and_operations/greater_than/greater_than_float.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/less_or_equal/less_or_equal_float.ets (85%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.floating-point_types_and_operations/less_or_equal/less_or_equal_float.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/less_than/less_than_float.ets (85%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.floating-point_types_and_operations/less_than/less_than_float.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/multiplication/multiplication_float.ets (78%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/multiplication/multiplication_float.params.yaml (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/not_equal/not_equal_float.ets (84%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/not_equal/not_equal_float.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/subtraction/subtraction_float.ets (78%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/subtraction/subtraction_float.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/unary_minus/unary_minus_float.ets (82%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/unary_minus/unary_minus_float.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/unary_plus/unary_plus_float.ets (82%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{03.floating-point_types_and_operations => 02.floating-point_types_and_operations}/unary_plus/unary_plus_float.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.integer_types_and_operations/addition/addition_overflow.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.integer_types_and_operations/addition/addition_overflow.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.integer_types_and_operations/multiplication/multiplication_overflow.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.integer_types_and_operations/multiplication/multiplication_overflow.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.integer_types_and_operations/subtraction/subtraction_overflow.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/02.integer_types_and_operations/subtraction/subtraction_overflow.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/bitwise_operators.ets (67%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/boolean_type.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.boolean_type_and_operations/conditional_operator_0.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.boolean_type_and_operations/conditional_operator_1.ets rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/conditional_operator_2.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/conditional_operator_3.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/conditional_operator_4.ets (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/equality_operators.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/equality_operators.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/logical_complement_operator.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/string_concatenation_operator.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/types_initialization.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/{04.boolean_type_and_operations => 03.boolean_type_and_operations}/types_initialization.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/addition/addition_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/addition/addition_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_and/bitwise_and_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_and/bitwise_and_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_and/bitwise_and_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_and/bitwise_and_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_complement/bitwise_complement_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_complement/bitwise_complement_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_complement/bitwise_complement_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_complement/bitwise_complement_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_or/bitwise_or_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_or/bitwise_or_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_or/bitwise_or_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_or/bitwise_or_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_xor/bitwise_xor_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_xor/bitwise_xor_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_xor/bitwise_xor_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/bitwise_xor/bitwise_xor_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/division/division_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/division/division_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/equal/equal_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/equal/equal_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/equal/equal_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/greater_or_equal/greater_or_equal_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/greater_or_equal/greater_or_equal_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/greater_or_equal/greater_or_equal_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/greater_than/greater_than_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/greater_than/greater_than_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/greater_than/greater_than_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/less_or_equal/less_or_equal_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/less_or_equal/less_or_equal_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/less_or_equal/less_or_equal_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/less_than/less_than_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/less_than/less_than_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/less_than/less_than_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/multiplication/multiplication_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/multiplication/multiplication_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/not_equal/not_equal_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/not_equal/not_equal_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_decrement/postfix_decrement_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_decrement/postfix_decrement_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_decrement/postfix_decrement_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_decrement/postfix_decrement_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_increment/postfix_increment_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_increment/postfix_increment_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_increment/postfix_increment_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/postfix_increment/postfix_increment_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_decrement/prefix_decrement_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_decrement/prefix_decrement_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_decrement/prefix_decrement_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_decrement/prefix_decrement_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_increment/prefix_increment_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_increment/prefix_increment_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_increment/prefix_increment_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/prefix_increment/prefix_increment_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/string_concatenation/string_concatenation_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/string_concatenation/string_concatenation_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/string_concatenation/string_concatenation_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/string_concatenation/string_concatenation_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/subtraction/subtraction_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/subtraction/subtraction_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/ternary/ternary_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/ternary/ternary_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/ternary/ternary_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/ternary/ternary_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/unary_minus/unary_minus_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/unary_minus/unary_minus_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/unary_plus/unary_plus_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/03.floating-point_types_and_operations/unary_plus/unary_plus_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/04.boolean_type_and_operations/conditional_operator_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/06.value_types/04.boolean_type_and_operations/conditional_operator_1.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/intersection_type_declaration.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/intersection_type_initialization.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/named_types.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/named_types.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/named_types_generics.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/named_types_generics.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/type_variables.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/03.types/07.reference_types/type_variables.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/08.any/type_any.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/08.any/type_any.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/08.any/type_any_union.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/cast_to_object.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/class_methods.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/class_methods.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/08.type_object/conditional_operator_0.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/08.type_object/conditional_operator_1.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/equality_operator_0.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/equality_operator_1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/explicit_cast_operator.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/field_access.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/implicit_cast_operator.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/instanceof_operator.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/object_methods.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/object_methods.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/object_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/one_link_on_two_objects.ets (71%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/string_concatenation_0.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{09.type_object => 08.type_object}/string_concatenation_1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_function1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_function2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_function3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_function4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_instance.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_instance.params.yaml (77%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_instance_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{10.type_never => 09.type_never}/never_class_instance_neg.params.yaml (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/09.type_object/conditional_operator_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/09.type_object/conditional_operator_1.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/generic_void.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/void_return_type.ets (80%) rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/void_type.ets (78%) rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/void_type_in_expression.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/void_type_union_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/void_type_union_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{11.type_void => 10.type_void}/void_type_union_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_array1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_array2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_array3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_enum.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_enum1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_example.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_example_1.ets (77%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_generic.ets (81%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_generic1.ets (72%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_generic2.ets (78%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_generic3.ets (76%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_generic4.ets (76%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_incorrect_usage.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_undefined/undefined_incorrect_usage.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_keyword.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_keyword_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_keyword_2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_keyword_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_literal.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_literal1.ets (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_literal2.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_nullish.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_nullish.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_switch.ets (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_union.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_union1.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_union2.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_union3.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_union4.ets (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/{12.type_undefined => 11.type_undefined}/undefined_union5.ets (88%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/generic_void_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/generic_void_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/generic_void_n_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/generic_void_n_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/void_type_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/void_type_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/11.type_void/void_type_undefined.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null12.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null13.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null3.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null4.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null5.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null6.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null7.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null8.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{13.type_null => 12.type_null}/null9.ets (92%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/12.type_undefined/undefined_incorrect_usage.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{14.type_string => 13.type_string}/change_string_value.ets (73%) rename static_core/plugins/ets/tests/ets-templates/03.types/{14.type_string => 13.type_string}/string_literal.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{14.type_string => 13.type_string}/string_type_declaration_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{14.type_string => 13.type_string}/string_type_declaration_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{14.type_string => 13.type_string}/strings_addition.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint.ets (90%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_args.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_args.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_arr.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_arr.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_clss.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_clss.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_fdef.ets (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_fdef.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_fld.ets (96%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_fld.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_fld_gen.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_fld_gen.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_lmbd.ets (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_lmbd.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_n.ets (85%) rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_tup.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_tup.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{15.type_bigint => 14.type_bigint}/bint_un.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_bigint/bint_un.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_string/change_string_value_by_function_call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_string/string_length_readonly.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/14.type_string/string_length_type.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/literals_without_supertype.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/literals_without_supertype_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_03.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_05.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_08.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_09.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_12.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_16.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_17.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_18.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_19.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_20.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_21.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_22.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_23.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_24.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_25.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_26.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_27.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_28.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_29.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_30.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_31.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_32.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_33.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_34.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_35.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_36.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_37.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_38.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_39.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_40.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_41.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_42.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_43.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_44.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_45.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_46.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_47.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_48.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_49.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_50.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_51.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_52.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_53.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_54.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_55.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_56.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_57.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_58.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_59.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_60.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_61.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_62.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_63.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_64.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_65.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_66.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_67.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_68.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_69.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_70.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_71.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_72.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_73.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_74.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/supertypes_of_literal_types => 15.literal_types/01.supertypes_of_literal_types}/primitive_type_default_tests_75.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operations_on_literal_types.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operations_on_literal_types1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operations_on_literal_types2.ets (77%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_0.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_2.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_3.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_4.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_5.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_6.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_7.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_8.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types/01.operations_on_literal_types => 15.literal_types/02.operations_on_literal_types}/operationson_literal_class_9.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/as_const.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/as_const.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/class_literal_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/class_literal_type.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/const_literal_type.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/const_literal_type_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/custom_literal_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/custom_literal_type.params.yaml (68%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/function_literal_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/function_literal_type.params.yaml (73%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/overriding_literal_types.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/overriding_literal_types.params.yaml (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/supported_literal_types.ets (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/supported_literal_types.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/unsupported_literal_types.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{16.literal_types => 15.literal_types}/unsupported_literal_types.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_args.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_arr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_fdef.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_fld.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_fld_gen.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_lmbd.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_tup.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/15.type_bigint/bint_un.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/form_1_assign_to_2.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/form_2_assign_to_1.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/grow_array_form_one_0.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/grow_array_form_one_1.ets (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/grow_array_form_two_0.ets (74%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/grow_array_form_two_1.ets (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/put_to_empty_form_1.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/put_to_empty_form_2.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar1.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar1.params.yaml (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar2a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar2b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar2c.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar2d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar3a.ets (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rar3b.ets (84%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat00.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat06.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat07.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat08.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat09.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat10.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat11.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat12.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat13.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat14.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat18.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat19.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat20.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat21.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat22.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat23.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat24.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat25.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat26.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat27.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat28.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat29.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat30.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat31.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat32.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat33.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat34.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat_ext.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/rat_ext.params.yaml (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/resizable_array.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/resizable_array.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/shrink_array_form_one.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/01.resizable_array_types/shrink_array_form_two.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/array_index.ets (81%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/array_type.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/array_type.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/object.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/object.params.yaml (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/types.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/types.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{17.array_types => 16.array_types}/various_data_types.ets (80%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/17.array_types/01.resizable_array_types/resizable_array_types.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/17.array_types/01.resizable_array_types/resizable_array_types.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/17.array_types/02.readonly_array_types/array_readonly_push_n.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types => 17.tuple_types}/tt.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/17.tuple_types/tt.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types => 17.tuple_types}/tt2.ets (94%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types => 17.tuple_types}/tt2.params.yaml (83%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types => 17.tuple_types}/tt_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{18.tuple_types => 17.tuple_types}/tt_n.params.yaml (79%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/01.type_function/negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/01.type_function/negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/01.type_function/negative_rt.ets (98%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/01.type_function/negative_rt.params.yaml (67%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/01.type_function/positive.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/18.function_types/01.type_function/positive.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/function_assert.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/function_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/function_signature.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/function_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/function_type.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/incorrect_function_name.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/incorrect_function_name.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/long_function_name.ets (75%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/parametrized_function_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/return_lambda.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/returning_function_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/same_constructor_signature.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/same_function_signature.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{19.function_types => 18.function_types}/same_method_sibnature.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/18.tuple_types/tt.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.function_types/01.type_function/positive.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.function_types/01.type_function/positive_args.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.function_types/01.type_function/positive_args.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.function_types/function_type_spec1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.function_types/function_type_spec2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.function_types/function_type_spec4_n.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/norm.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.union_types/01.union_types_normalization/norm.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.union_types/01.union_types_normalization/utn01.ets rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn02.ets (84%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn03.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn04.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn05.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn08.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn09.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn10.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn11.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn12.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn13.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn14.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn15.ets (85%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/01.union_types_normalization/utn16.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_0.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_13.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_14.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_16.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_18.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_19.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_2.ets (85%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_20.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_21.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_22.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_3.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_4.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_5.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_6.ets (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_7.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_8.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/accessto_common_union_members_9.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_fld1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_fld1.params.yaml (79%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_fld2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_fld2.params.yaml (82%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_fld3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_fld3.params.yaml (85%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_meth1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_meth1.params.yaml (72%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_meth2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_meth2.params.yaml (84%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_meth3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_meth3.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_spec.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/02.access_to_common_union_members/cm_spec.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_class.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_class.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_example.ets (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_example_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_generic.ets (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_generic.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_getter_setter.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_getter_setter.params.yaml (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_inheritance.ets (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_inheritance.params.yaml (79%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_interface.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_interface.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_module.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_module.params.yaml (99%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_predefined.ets (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_predefined.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_unsupported.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/keyof_unsupported.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/03.keyof_types/module.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/assignment_of_arrays_with_union_types.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/assignment_of_arrays_with_union_types.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/assignment_of_arrays_with_union_types_n.ets (89%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.union_types/assignment_of_arrays_with_union_types_n.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/types_as_function.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/types_as_function.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/types_as_function_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/types_as_function_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_assignment.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_assignment.params.yaml (81%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_error_assignment.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_error_assignment.params.yaml (83%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_narrowing_attribute.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_narrowing_attribute.params.yaml (81%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_narrowing_attribute_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/union_type_narrowing_attribute_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/united_switch_ext.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/united_switch_ext.params.yaml (87%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/ut.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/19.union_types/ut.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/ut_2.params.yaml (82%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types/ut_2.ets => 19.union_types/ut_2.sts} (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/ut_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/ut_n.params.yaml (90%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/ut_n2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{20.union_types => 19.union_types}/ut_n2.params.yaml (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/array_nullable_types.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/array_nullable_types.params.yaml (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/assign_nullable_to_object.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/assign_nullable_to_object.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_primitive_types.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_primitive_types.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_0.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_1.ets (91%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_10.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_11.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_12.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_13.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_15.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_16.ets (85%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_2.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_3.ets (88%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_4.ets (85%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_5.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_6.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_7.ets (89%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_8.ets (92%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullable_types_operations_9.ets (96%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullish_not_compatible_with_object_n0.ets (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullish_not_compatible_with_object_n1.ets (97%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullish_not_compatible_with_object_n2.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullish_not_compatible_with_object_n3.ets (93%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullish_pt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/nullish_pt.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/reference_nullable_types.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{21.nullish_types => 20.nullish_types}/reference_nullable_types.params.yaml (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/01.union_types_normalization/norm.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/01.union_types_normalization/utn01.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/01.union_types_normalization/utn17.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/01.union_types_normalization/utn18.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_10.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_11.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_12.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_3.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_4.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_5.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_6.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_7.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_8.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth1_9.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_0.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_10.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_11.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_12.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_3.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_4.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_5.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_6.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_7.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_8.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth2_9.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_0.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_10.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_11.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_12.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_4.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_5.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_6.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_7.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_8.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_meth3_9.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/02.access_to_common_union_members/cm_spec_0.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/03.keyof_types/keyof_empty.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/03.keyof_types/keyof_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/assignment_of_arrays_with_union_types_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/03.types/20.union_types/ut.params.yaml rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_classes.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_classes.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_global_parameter.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_global_parameter.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_nullable_types.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_nullable_types.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_primitive_types.ets (95%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_primitive_types.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/03.types/{22.default_values_for_types => 21.default_values_for_types}/default_value_for_reference_types.ets (91%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl2_co.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl2_rt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n10.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n11.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n5.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n6.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n7.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n8.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{02.declarations => 03.distinguishable_declarations}/spec_decl_n9.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/04.accessible/type_declaration_areas.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/04.accessible/type_name_class_field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/04.accessible/type_name_interface_prop.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/04.accessible/type_name_params.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/class_level.ets (85%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/class_level_protected1.ets (92%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/class_level_protected2.ets (84%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/class_level_public.ets (88%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/diff_spaces.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/function_level.ets (88%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/function_level_n1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/hoisting.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/interface_level1.ets (85%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/interface_level2.ets (89%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/module_level.ets (85%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/nested1.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/nested2.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/nested3_n.ets (96%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/testing_package_level_scope/package_level.ets (86%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_class.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_class_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_class_neg_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_class_neg_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_class_neg_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_func.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/type_param_interface.ets (88%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_block_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_block_decl_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_class_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_decl_name.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_decl_name.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_enum_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_func_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{03.scopes => 04.scopes}/unique_intf_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_declaration_areas.ets (99%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.accessible/type_declaration_areas.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_class_field.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.accessible/type_name_class_field.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_const.ets (78%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_const.params.yaml (67%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_const_enum.ets (79%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_const_enum.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_interface_prop.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.accessible/type_name_interface_prop.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_neg.params.yaml (96%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_params.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.accessible/type_name_params.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_variable.ets (79%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_variable.params.yaml (66%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_variable_enum.ets (79%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{04.accessible => 05.accessible}/type_name_variable_enum.params.yaml (94%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/alias.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/alias_instance_type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/alias_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/namespace_type_decl_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/namespace_type_decl_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/namespace_type_decl_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/namespace_type_decl_bad_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/namespace_type_decl_bad_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/spec_neg_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/spec_neg_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/spec_neg_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/type_declaration_bad_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/type_declaration_bad_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/type_declaration_bad_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/type_inside_decl_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/type_inside_decl_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/01.type_alias_declaration/type_inside_decl_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/05.type_declarations/type_declaration_before_use.ets rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/alias.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/06.type_declarations/01.type_alias_declaration/alias.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/alias_gen.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/alias_gen.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/alias_neg.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/06.type_declarations/01.type_alias_declaration/alias_neg.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/mod/mod.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/mod/mod.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/pkg_a/pkg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/pkg_a/pkg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/scope.ets (99%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/scope.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/spec1.ets (99%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/spec2.ets (99%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/spec3.ets (99%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/spec4.ets (99%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/01.type_alias_declaration/spec5.ets (99%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/decl.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{05.type_declarations => 06.type_declarations}/decl.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/06.variable_and_constant_declarations/04.type_inference_from_initializer/infer2_12.ets.expected delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/06.variable_and_constant_declarations/04.type_inference_from_initializer/infer2_12.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/03.readonly_parameters/readonly.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/03.readonly_parameters/readonly_second_level_access_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/03.readonly_parameters/readonly_second_level_access_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/04.optional_parameters/opt_param.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/04.optional_parameters/opt_param_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_constructor_declaration_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_constructor_declaration_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_constructor_declaration_bad.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_method_call_bad.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_method_declaration_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_method_declaration_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/class_receiver_function.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/function_call_bad.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/function_declarations_7_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/generic_array_type_as_rest.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/generic_rest_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/generic_rest_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/generic_rest_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/generic_rest_tuple.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/generic_rest_tuple_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/interface_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/interface_to_rest_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/interface_to_rest_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/optional_and_rest_tuple_to_spread_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/optional_and_rest_tuple_to_spread_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/optional_and_rest_tuple_to_spread_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/record_to_rest.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/rest_parameter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/05.rest_parameter/rest_parameter_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/06.shadowing_parameters/lambda_scope_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/06.shadowing_parameters/lambda_scope_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/07.return_type/ret_type_class_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/07.return_type/ret_type_class_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/07.return_type/ret_type_interface_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/07.return_type/ret_type_interface_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/07.return_type/ret_type_lambda.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/07.return_type/ret_type_lambda.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/08.return_type_inference/ret_type_infer.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.function_declarations/08.return_type_inference/ret_type_infer_negative_0.ets rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/incorrect_var_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/incorrect_var_decl.params.yaml (89%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/var_decl.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/var_decl.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_0.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_1.ets (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.variable_and_constant_declarations/01.variable_declarations/variable_declarations_10.ets rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_11.ets (93%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_12.ets (91%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_13.ets (91%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_14.ets (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.variable_and_constant_declarations/01.variable_declarations/variable_declarations_15.ets rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_16.ets (77%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_2.ets (87%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_4.ets (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/07.variable_and_constant_declarations/01.variable_declarations/variable_declarations_5.ets rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_6.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_7.ets (87%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_8.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/01.variable_declarations/variable_declarations_9.ets (89%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/02.constant_declarations/bad_const_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/02.constant_declarations/bad_const_decl.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/02.constant_declarations/const_decl.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/02.constant_declarations/const_decl.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/03.assignability_with_initializer/initializer_compatibility.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/03.assignability_with_initializer/initializer_compatibility.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/03.assignability_with_initializer/initializer_compatibility_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/03.assignability_with_initializer/initializer_compatibility_n.params.yaml (96%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer2.params.yaml (70%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer_n.ets (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer_n1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer_n2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer_n3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/infer_n4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_0.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_13.ets (92%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_14.ets (85%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_15.ets (92%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_2.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_4.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_5.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_6.ets (90%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_7.ets (96%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_8.ets (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{06.variable_and_constant_declarations => 07.variable_and_constant_declarations}/04.type_inference_from_initializer/type_inference_from_initializer_9.ets (96%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_decl_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_decl_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_decl_rte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_decl_rte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_export.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_export.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_import.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/01.function_with_overload_signatures/overload_function_import.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/02.class_method_with_overload_signatures/overload_method_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/02.class_method_with_overload_signatures/overload_method_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/02.class_method_with_overload_signatures/overload_method_decl_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/02.class_method_with_overload_signatures/overload_method_decl_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/02.class_method_with_overload_signatures/overload_method_decl_rte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/02.class_method_with_overload_signatures/overload_method_decl_rte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/03.constructor_with_overload_signatures/overload_constructor_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/03.constructor_with_overload_signatures/overload_constructor_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/03.constructor_with_overload_signatures/overload_constructor_decl_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.declarations_with_overload_signatures/03.constructor_with_overload_signatures/overload_constructor_decl_cte.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/02.parameter_list/param_list.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/02.parameter_list/param_list.params.yaml (93%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/02.parameter_list/param_list_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/02.parameter_list/param_list_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/02.parameter_list/spec_example.ets (85%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.function_declarations/03.readonly_parameters/readonly.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_context_and_conversion.ets (98%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_context_and_conversion.params.yaml (81%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_custom_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_custom_neg.params.yaml (82%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_edit_arr_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_edit_arr_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_edit_tuple_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_edit_tuple_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_neg_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/03.readonly_parameters/readonly_neg_2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/04.optional_parameters/opt_param.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.function_declarations/04.optional_parameters/opt_param.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/04.optional_parameters/opt_param_n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.function_declarations/04.optional_parameters/opt_param_n.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_0.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_3.ets (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_4.ets (94%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_5.ets (84%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_6.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_7.ets (78%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_8.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/function_declarations_9.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/rest_parameter.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.function_declarations/05.rest_parameter/rest_parameter.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/05.rest_parameter/rest_parameter_neg.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.function_declarations/05.rest_parameter/rest_parameter_neg.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/scope1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/scope2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/scope_neg1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/scope_neg2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/shadowing1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/shadowing2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/06.shadowing_parameters/shadowing3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/07.return_type/ret_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/07.return_type/ret_type.params.yaml (85%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/07.return_type/ret_type_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/07.return_type/ret_type_neg.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/08.return_type_inference/ret_type_infer.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/08.function_declarations/08.return_type_inference/ret_type_infer.params.yaml rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/function_decl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/function_decl.params.yaml (83%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/function_decl2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/function_decl2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/function_decl_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/function_decl_neg.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/nested_function.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/nested_function2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/nested_function3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/nested_function4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/throws_clause_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/throws_clause_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/04.names_declarations_and_scopes/{07.function_declarations => 08.function_declarations}/throws_clause_3.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_constraint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_constraint.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_constraint_extends_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_constraint_extends_class_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_example.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_example.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_constraint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_constraint.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_constraint_extends_Interface_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_constraint_extends_interface.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_self_dependency.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_self_dependency.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_self_dependency_fake.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_self_dependency_fake.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_wrong_constraint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_wrong_constraint.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_wrong_constraint_extends_interface.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_i_wrong_constraint_extends_interface.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_object_compatibility.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_object_compatibility.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_self_dependency.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_self_dependency.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_self_dependency_fake.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_self_dependency_fake.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_union_normalization.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_union_normalization.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_wrong_constraint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_wrong_constraint.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_wrong_constraint_extends_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/01.type_parameter_constraint/generic_type_alias/generic_type_alias_wrong_constraint_extends_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/type_alias_i_type_parameter_default.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/type_alias_i_type_parameter_default.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/type_alias_type_parameter_default.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/type_alias_type_parameter_default.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/wrong_type_alias_i_missing_nondefault_parameter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/wrong_type_alias_i_type_parameter_default.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/wrong_type_alias_i_type_parameter_default.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/wrong_type_alias_missing_nondefault_parameter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/wrong_type_alias_type_parameter_default.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/02.type_parameter_default/generic_type_alias/wrong_type_alias_type_parameter_default.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/03.type_parameter_variance/generic_functions/wrong_variance_modifier_use.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/03.type_parameter_variance/generic_functions/wrong_variance_modifier_use.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/generic_classes/generic_class_self_dependency.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/generic_classes/generic_class_self_dependency.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/generic_interfaces/generic_interface_self_dependency.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/01.type_parameters/generic_interfaces/generic_interface_self_dependency.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/01.type_arguments/type_arguments_of_parameterized_declarations/wrong_wildcard_bound_funcgener_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/01.type_arguments/type_arguments_of_parameterized_declarations/wrong_wildcard_bound_funcgener_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/01.type_arguments/type_arguments_of_parameterized_declarations/wrong_wildcard_bound_funcgener_positive.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/01.type_arguments/type_arguments_of_parameterized_declarations/wrong_wildcard_bound_funcgener_positive.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/lmbd.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/lmbd.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/lmbd_n.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/lmbd_n.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/lmbd_n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/variance.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/variance.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/variance_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/02.explicit_generic_instantiations/variance_neg.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/03.implicit_generic_instantiations/lmbd.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/03.implicit_generic_instantiations/lmbd.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/03.implicit_generic_instantiations/lmbd_n.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/02.generic_instantiations/03.implicit_generic_instantiations/lmbd_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.awaited_utility_type/awaited_parameter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.awaited_utility_type/awaited_parameter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.awaited_utility_type/awaited_return.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.awaited_utility_type/awaited_return.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.awaited_utility_type/awaited_simple.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.awaited_utility_type/awaited_simple.params.yaml rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/incorrect_parameter.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/incorrect_parameter.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/method_excluded_from_partial.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/method_excluded_from_partial.params.yaml (97%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_abstract.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_class.ets (93%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_class.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_extends.ets (93%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_extends.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_implements.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_implements.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_interface.ets (93%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/module_interface.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_abstract.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_compatibility.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_compatibility.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_example_getter_setter.ets (91%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_example_transform.ets (92%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_generic.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_generic.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_getter_and_setter.ets (93%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_getter_and_setter.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_getter_and_setter_int.ets (88%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_getter_and_setter_int.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_inherit.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_inherit2.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.partial_utility_type/partial_inherit3.ets rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_type.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_type.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_type_interface.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/partial_type_interface.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/static_partial_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/static_partial_type.params.yaml (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/01.partial_utility_type/type.ets rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{03.partial_utility_type => 01.partial_utility_type}/type.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/02.nonnullable_utility_type/nonnullable_utility_2_never.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/02.nonnullable_utility_type/nonnullable_utility_2_never.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/02.nonnullable_utility_type/nonnullable_utility_type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/02.nonnullable_utility_type/nonnullable_utility_type.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/02.nonnullable_utility_type/spec_sample.ets rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/incorrect_parameter.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/incorrect_parameter.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/method_excluded_from_required.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/method_excluded_from_required.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_abstract.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_compatibility.ets (92%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_compatibility.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_compatibility_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_compatibility_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_example.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_example_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_getter_and_setter.ets (97%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_getter_and_setter.params.yaml (93%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_getter_and_setter_int.ets (97%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_getter_and_setter_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_getter_and_setter_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_abstract.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_class.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_class.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_extends.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_implements.ets (96%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_implements.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_interface.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_module_interface.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_no_fields.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_no_fields.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_type.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/required_type.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/02.required_utility_type/type.ets rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{04.required_utility_type => 02.required_utility_type}/type.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/03.partial_utility_type/bad_partial_type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/03.partial_utility_type/bad_partial_type.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/03.partial_utility_type/partial_inherit3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/03.partial_utility_type/type.ets rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/example_edit_readonly_field.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/example_readonly_assignability.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/method_excluded_from_readonly.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/method_excluded_from_readonly.params.yaml (97%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type.ets (95%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_compatibility.ets (74%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_compatibility_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_compatibility_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_neg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_of_union.ets (94%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_of_union.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_reassignment.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{05.readonly_utility_type => 03.readonly_utility_type}/readonly_type_reassignment.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{06.record_utility_type => 04.record_utility_type}/rec.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/04.record_utility_type/rec.params.yaml rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{06.record_utility_type => 04.record_utility_type}/rec2.ets (82%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{06.record_utility_type => 04.record_utility_type}/rec2.params.yaml (85%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{06.record_utility_type => 04.record_utility_type}/rec3.ets (79%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{06.record_utility_type => 04.record_utility_type}/rec3.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/04.required_utility_type/bad_required_type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/04.required_utility_type/bad_required_type.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/04.required_utility_type/type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/05.readonly_utility_type/bad_readonly_type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/05.readonly_utility_type/bad_readonly_type.params.yaml rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/private_field_check_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/private_field_check_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/private_field_check_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/private_field_check_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/private_field_check_4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf03.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf04.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf05.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf06.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf07.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf08.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf09.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf10.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf11.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf12.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf13.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf14.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf15.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf16.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf17.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf18.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf19.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf20.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf21.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf22.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf23.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf24.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf25.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf26.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf27.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf28.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf29.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf30.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf31.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf32.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf33.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf34.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf35.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf36.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf37.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf38.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf39.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf40.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf41.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf42.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf43.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf44.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf45.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf46.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf47.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf48.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf49.ets (100%) rename static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/{08.utility_type_private_field => 05.utility_type_private_field}/utpf50.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/enum_record_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/enum_record_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/incomplete_record_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/incomplete_record_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/incomplete_record_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/incomplete_record_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/rec.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/06.record_utility_type/union_in_rec.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/07.return_type_utility_type/bad_return_type_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/07.return_type_utility_type/bad_return_type_0.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/07.return_type_utility_type/bad_return_type_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/07.return_type_utility_type/bad_return_type_1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/07.return_type_utility_type/return_type_func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/07.return_type_utility_type/return_type_func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/PartialWithGeneric.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/long_chain_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/non_nullable_readonly_rec_field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/non_nullable_rec_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/non_nullable_rec_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/readonly_record_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/readonly_record_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/req_and_partial.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/ut_nesting_ex0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/09.nesting_utility_type/ut_nesting_ex1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_0.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/05.generics/03.utility_types/incorrect_utility_type_usage_3.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/array_primitive.ets (81%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/array_primitive.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/array_primitive2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/array_primitive2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing2.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing2_call.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing2_call.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing_call.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/boxing_call.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/forbidden1.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/forbidden1.params.yaml (66%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/forbidden2.ets (78%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/forbidden2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/forbidden_compile2.ets (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/forbidden_compile2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/identity.ets (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/identity.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/identity2.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/identity2.params.yaml (71%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/identity2_n.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/identity2_n.params.yaml (98%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/identity_call.ets (80%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/identity_call.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/null.ets (85%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/null.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/null_call.ets (80%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/null_call.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_boxing.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_boxing.params.yaml (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_boxing_nan.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_boxing_nan.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_narrowing.ets (89%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/prim_narrowing.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_unboxing.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_unboxing.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts => ets-templates/06.contexts_and_conversions/01.assignment-like_contexts}/prim_wide_narrow.ets (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/prim_wide_narrow.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/prim_widening.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/prim_widening.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/ref_widening.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/ref_widening.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/ref_widening_neg.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing2.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing2_call.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing2_call.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing_call.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/unboxing_call.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/unrelated_call.ets (93%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/unrelated_call.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/unrelated_refs.ets (94%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/unrelated_refs.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_prim.ets (91%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_prim.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_prim_call.ets (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/widening_prim_call.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_refs.ets (93%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_refs.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_refs_call.ets (92%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_refs_call.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_refs_unbox.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{02.assignment-like_contexts => 01.assignment-like_contexts}/widening_refs_unbox.params.yaml (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/widening_refs_unbox_call.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.assignment-like_contexts/widening_refs_unbox_call.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/non_standalone_expression.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/non_standalone_expression.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/readonly_standalone_expression.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/readonly_standalone_expression_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/standalone_expression.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/standalone_expression.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/standalone_expression_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/01.type_of_expression/standalone_expression_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias2_call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias2_call.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias_call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/alias_call.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/assign_context.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/assign_context.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/call.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/call2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/call2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/identity.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/identity_call.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/widening2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/widening2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/widening_prim_call.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/widening_refs2_call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.assignment-like_contexts/widening_refs2_call.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/conversion.ets (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/02.string_operator_contexts/conversion.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_null.ets (96%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_null.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_prim.ets (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_prim.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_ref.ets (95%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_ref.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_undefined.ets (96%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{03.string_operator_contexts => 02.string_operator_contexts}/str_undefined.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_arith.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/binary_numeric_promotion/result_type_arith.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_arith_n.ets (84%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_arith_n.params.yaml (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_bitwise.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/binary_numeric_promotion/result_type_bitwise.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_bool.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/binary_numeric_promotion/result_type_bool.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_bool_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_bool_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/binary_numeric_promotion/result_type_cond.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/binary_numeric_promotion/result_type_cond.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/conv.ets (90%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/conv.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_access.ets (87%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_access.params.yaml (72%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_access_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_access_n.params.yaml (93%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_creation.ets (91%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_creation.params.yaml (68%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_creation_n.ets (93%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/array_creation_n.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/bitwise_complement.ets (82%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/bitwise_complement.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/bitwise_complement_n.ets (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/bitwise_complement_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/shift.ets (69%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/unary_numeric_promotion/shift.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/shift_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/shift_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/unary_minus.ets (82%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/unary_numeric_promotion/unary_minus.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/unary_minus_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/unary_minus_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/unary_plus.ets (82%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.numeric_operator_contexts/unary_numeric_promotion/unary_plus.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/unary_plus_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{04.numeric_operator_contexts => 03.numeric_operator_contexts}/unary_numeric_promotion/unary_plus_n.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/conversion.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/conversion2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/conversion2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/conversion3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/conversion3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_null2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_null2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_prim2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_prim2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_ref2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_ref2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_undefined2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/03.string_operator_contexts/str_undefined2.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/boxing.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/boxing.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{06.numeric_casting_conversions => 04.casting_contexts_and_conversions/01.numeric_casting_conversions}/num_cc.ets (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{06.numeric_casting_conversions => 04.casting_contexts_and_conversions/01.numeric_casting_conversions}/num_cc.params.yaml (87%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/{06.numeric_casting_conversions => 04.casting_contexts_and_conversions/01.numeric_casting_conversions}/num_cc_nan.ets (70%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/unboxing.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/unboxing.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/unboxing2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/unboxing2.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_1a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_2a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_2b.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_3a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_4a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_5.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/cce_5a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/neg_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/neg_1a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/neg_gen1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/neg_gen2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_1a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_2a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_3a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_4a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/pos_4b.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/predef_ref.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/predef_ref.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/predef_ref_prim.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/predef_ref_prim.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/userdef_ref.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/userdef_ref.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/userdef_ref2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/02.class_or_interface_casting_conversions/userdef_ref2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/class_from_object.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/class_from_object.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/func_type_from_object.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/func_type_from_object.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/ref_type_from_object.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/ref_type_from_object.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/ref_type_from_object_n.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/ref_type_from_object_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/tuple_from_object.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/tuple_from_object.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/union_type_from_object.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/03.casting_conversions_from_object/union_type_from_object.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/class.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/class.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/func.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/func.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectbool.ets (91%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectstr.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_array_1.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_array_2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_array_3.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_array_4.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_brgint_1.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_class_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_class_2.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_class_3.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_class_4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_date_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_enum_1.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_enum_2.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_function_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_function_2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_function_3.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_function_4.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_interface_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_interface_2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_interface_3.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_interface_4.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_interface_5.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_map_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_map_2.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_null_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_3.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_4.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_5.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_6.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_7.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_number_8.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_obj_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_obj_2.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_obj_3.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_obj_4.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_obj_5.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_obj_7.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_regex_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_set_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_set_2.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_tuple_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_tuple_2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_tuple_3.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_undefined_1.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectto_union_1.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/objectunknown.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/sample.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/sample_neg.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/value.ets (98%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/value.params.yaml (80%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/05.casting_conversions_to_type_parameter/cast.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/05.casting_conversions_to_type_parameter/cast.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/05.casting_conversions_to_type_parameter/cast_neg.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/05.casting_conversions_to_type_parameter/cast_neg.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/cce.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/cce.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/impl.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/impl.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/spec.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/un1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/un1.params.yaml (98%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/un2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/06.casting_conversions_from_union/un2.params.yaml (98%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/07.casting_conversions_to_enumeration/cte_enum_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/07.casting_conversions_to_enumeration/cte_int_enum.ets (89%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/07.casting_conversions_to_enumeration/cte_intvalue_enumvalue.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/07.casting_conversions_to_enumeration/cte_string_enum.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/07.casting_conversions_to_enumeration/cte_stringvalue_enumvalue.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/identity.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.casting_contexts_and_conversions/identity.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/invalid.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/invalid.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/invalid2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/invalid2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/sequenced.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/sequenced.params.yaml (65%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/widening_refs.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/04.casting_contexts_and_conversions/widening_refs.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/binary_numeric_promotion/result_type_arith.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/binary_numeric_promotion/result_type_bitwise.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/binary_numeric_promotion/result_type_bool.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/binary_numeric_promotion/result_type_cond.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/conv.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/unary_numeric_promotion/shift.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/unary_numeric_promotion/unary_minus.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/04.numeric_operator_contexts/unary_numeric_promotion/unary_plus.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/assn_var/assn-var-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/assn_var/assn-var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/assn_var/assn-var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_cons/call-cons-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_cons/call-cons.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_cons/call-cons.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_func/call-func-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_func/call-func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_func/call-func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_lmbd/call-lmbd-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_lmbd/call-lmbd.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_lmbd/call-lmbd.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_meth/call-meth-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_meth/call-meth.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/call_meth/call-meth.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_arr/comp-arr-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_arr/comp-arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_arr/comp-arr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_obj/comp-clss-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_obj/comp-clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_obj/comp-clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_obj/comp-intf-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_obj/comp-intf.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/comp_obj/comp-intf.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_const/decl-const-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_const/decl-const.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_field/decl-field-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_field/decl-field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_field/decl-field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_field/decl-st-field-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_field/decl-st-field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_var/decl-var-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_var/decl-var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/decl_var/decl-var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/enumlongtodouble.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/enumlongtofloat.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/enumtodouble.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/enumtofloat.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/enumtoint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions/enumtolong.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.enum_to_const_types_conversions/enum2double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.enum_to_const_types_conversions/enum2double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.enum_to_const_types_conversions/enum2long.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.enum_to_const_types_conversions/enum2long.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/assn_var/assn-var-ident.ets (91%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/assn_var/assn-var-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/assn_var/assn-var-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/assn_var/assn-var-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/assn_var/assn-var-nan.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/assn_var/assn-var.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/assn_var/assn-var.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions => ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions}/bytetochar.ets (95%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/bytetodouble.ets (93%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/bytetofloat.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/bytetoint.ets (81%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/bytetolong.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/bytetoshort.ets (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_cons/call-cons-ident.ets (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_cons/call-cons-ident.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_cons/call-cons-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_cons/call-cons-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_cons/call-cons-nan.ets (91%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_cons/call-cons.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_cons/call-cons.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_func/call-func-ident.ets (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_func/call-func-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_func/call-func-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_func/call-func-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_func/call-func-nan.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_func/call-func.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_func/call-func.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_lmbd/call-lmbd-ident.ets (84%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_lmbd/call-lmbd-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_lmbd/call-lmbd-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_lmbd/call-lmbd-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_lmbd/call-lmbd-nan.ets (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_lmbd/call-lmbd.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_lmbd/call-lmbd.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_meth/call-meth-ident.ets (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_meth/call-meth-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_meth/call-meth-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_meth/call-meth-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/call_meth/call-meth-nan.ets (91%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_meth/call-meth.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/call_meth/call-meth.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions => ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions}/chartodouble.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions => ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions}/chartofloat.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions => ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions}/chartoint.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/01.widening_numeric_conversions => ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions}/chartolong.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_arr/comp-arr-ident.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_arr/comp-arr-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_arr/comp-arr-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_arr/comp-arr-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_arr/comp-arr-nan.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_arr/comp-arr.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_arr/comp-arr.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-clss-ident.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-clss-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-clss-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_obj/comp-clss-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-clss-nan.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_obj/comp-clss.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_obj/comp-clss.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-intf-ident.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-intf-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-intf-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_obj/comp-intf-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/comp_obj/comp-intf-nan.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_obj/comp-intf.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/comp_obj/comp-intf.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_const/decl-const-ident.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_const/decl-const-ident.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_const/decl-const-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_const/decl-const-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_const/decl-const-nan.ets (92%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_const/decl-const.ets (82%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_const/decl-const.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-field-ident.ets (91%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-field-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-field-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_field/decl-field-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-field-nan.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_field/decl-field.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_field/decl-field.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-st-field-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_field/decl-st-field-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-st-field-nan.ets (92%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_field/decl-st-field.ets (91%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_field/decl-st-field.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_var/decl-var-ident.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_var/decl-var-ident.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_var/decl-var-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_var/decl-var-n.params.yaml rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/decl_var/decl-var-nan.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_var/decl-var.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/decl_var/decl-var.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/enumtodouble.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/enumtofloat.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/enumtoint.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/02.widening_primitive_conversions/enumtolong.ets rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/floattodouble.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/inttodouble.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/inttofloat.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/inttolong.ets (92%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/longtodouble.ets (91%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/longtofloat.ets (91%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/shorttodouble.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/shorttofloat.ets (90%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/shorttoint.ets (92%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{01.widening_numeric_conversions => 02.widening_primitive_conversions}/shorttolong.ets (92%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n.ets (87%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n3.ets (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n3.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_cons/call-cons-n3.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_func/call-func-n3.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_lmbd/call-lmbd-n3.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/call_meth/call-meth-n3.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n.ets (91%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n3.ets (71%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n3.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-class-n3.ets (74%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-class-n3.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss-n.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n3.ets (73%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n3.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n3.ets (72%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n3.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n.ets (85%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n3.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n3.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var.params.yaml => ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field.params.yaml} (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n3.ets (79%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n3.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n2.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n3.ets (73%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n3.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_to_enum_conversions/double2enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_to_enum_conversions/double2enum.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_to_enum_conversions/long2enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_to_enum_conversions/long2enum.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_to_enum_conversions/str2enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/03.constant_to_enum_conversions/str2enum.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-lit.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-un.ets (92%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-un.params.yaml (87%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-wd.ets (92%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/assn_var/assn-var_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-lit.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-un.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-un.params.yaml (87%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-wd.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_cons/call-cons_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-lit.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-un.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-un.params.yaml (91%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-wd.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_func/call-func_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-lit.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-un.ets (86%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-un.params.yaml (87%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-wd.ets (86%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_lmbd/call-lmbd_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-lit.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-un.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-un.params.yaml (89%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-wd.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/call_meth/call-meth_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-lit.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-un.ets (84%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-un.params.yaml (87%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-wd.ets (84%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_arr/comp-arr_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-lit.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-un.ets (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-un.params.yaml (91%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-wd.ets (84%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj-wd.params.yaml (86%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/comp_obj/comp-obj_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-lit.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-un.ets (86%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-un.params.yaml (92%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-wd.ets (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field-wd.params.yaml (86%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_field/decl-field_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-lit.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-lit.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-lit_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-lit_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-un.ets (84%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-un.params.yaml (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-wd.ets (84%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var-wd.params.yaml (85%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/decl_var/decl-var_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion5.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion6.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/nouniontounion7.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec2_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec5a.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec5b.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec5b_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec6.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec7.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec8.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/spec9.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/textuniontonounion.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/04.widening_union_conversions/uniontowider.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/assn_var/assn-var.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/assn_var/assn-var.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/assn_var/assn-var_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/assn_var/assn-var_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_cons/call-cons.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_cons/call-cons.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_func/call-func.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_func/call-func.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_lmbd/call-lmbd.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_lmbd/call-lmbd.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_meth/call-meth.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_meth/call-meth.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_arr/comp-arr.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_arr/comp-arr.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-clss.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-clss.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-clss_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-clss_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-intf.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-intf.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-intf_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-intf_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_const/decl-const.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_const/decl-const.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_const/decl-const_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_const/decl-const_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_field/decl-field.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_field/decl-field.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_field/decl-field_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_field/decl-field_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_var/decl-var.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_var/decl-var.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_var/decl-var_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_var/decl-var_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/assn_var/assn-var-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/assn_var/assn-var-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/assn_var/assn-var.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/assn_var/assn-var.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_cons/call-cons-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_cons/call-cons-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_cons/call-cons.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_cons/call-cons.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_func/call-func-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_func/call-func-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_func/call-func.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_func/call-func.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_lmbd/call-lmbd-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_lmbd/call-lmbd-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_lmbd/call-lmbd.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_lmbd/call-lmbd.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_meth/call-meth-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_meth/call-meth-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_meth/call-meth.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_meth/call-meth.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_arr/comp-arr-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_arr/comp-arr-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_arr/comp-arr.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_arr/comp-arr.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_obj/comp-clss-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_obj/comp-clss-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_obj/comp-clss.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_obj/comp-clss.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/contravariancetotype.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/covariancetotype.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_field/decl-field-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_field/decl-field-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_field/decl-field.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_field/decl-field.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_var/decl-var-n2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_var/decl-var-n2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_var/decl-var.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_var/decl-var.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_0.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_10.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_11.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_12.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_13.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_5.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_6.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_7.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_8.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/function_types_conversions_9.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/nooptionaltooptional.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/spec1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/spec2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/spec3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/spec4.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.subtype_to_supertype_conversions/subtype_to_supertype.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.subtype_to_supertype_conversions/subtype_to_supertype.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.subtype_to_supertype_conversions/subtype_to_supertype_neg.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/08.subtype_to_supertype_conversions/subtype_to_supertype_neg.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/assn_var/assn-var.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/assn_var/assn-var.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/assn_var/assn-var_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/assn_var/assn-var_n.params.yaml (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons2_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons2_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons_n.params.yaml (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func2_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func2_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func_n.params.yaml (90%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_lmbd/call-lmbd.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_lmbd/call-lmbd.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_lmbd/call-lmbd_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_lmbd/call-lmbd_n.params.yaml (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth2_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth2_n.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth_n.params.yaml (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_arr/comp-arr.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_arr/comp-arr.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_arr/comp-arr_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_arr/comp-arr_n.params.yaml (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_obj/comp-obj.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_obj/comp-obj.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_obj/comp-obj_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_obj/comp-obj_n.params.yaml (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_field/decl-field.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_field/decl-field.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_field/decl-field_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_field/decl-field_n.params.yaml (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_var/decl-var.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_var/decl-var.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_var/decl-var_n.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_var/decl-var_n.params.yaml (95%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{02.enum_to_const_types_conversions => 10.enum_to_const_types_conversions}/enum2int.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{02.enum_to_const_types_conversions => 10.enum_to_const_types_conversions}/enum2int.params.yaml (66%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{02.enum_to_const_types_conversions => 10.enum_to_const_types_conversions}/enum2str.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{02.enum_to_const_types_conversions => 10.enum_to_const_types_conversions}/enum2str.params.yaml (66%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{03.constant_to_enum_conversions => 11.constant_to_enum_conversions}/int2enum.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{03.constant_to_enum_conversions => 11.constant_to_enum_conversions}/int2enum.params.yaml (65%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{03.constant_to_enum_conversions => 11.constant_to_enum_conversions}/int2enum_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{03.constant_to_enum_conversions => 11.constant_to_enum_conversions}/int2enum_n.params.yaml (89%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{03.constant_to_enum_conversions => 11.constant_to_enum_conversions}/str2enum_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/{03.constant_to_enum_conversions => 11.constant_to_enum_conversions}/str2enum_n.params.yaml (82%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/assn_var/assn-var.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/assn_var/assn-var.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/assn_var/assn-var2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/assn_var/assn-var2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_cons/call-cons.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_cons/call-cons.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_cons/call-cons2.ets (92%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_cons/call-cons2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_func/call-func.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_func/call-func.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_func/call-func2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_func/call-func2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_lmbd/call-lmbd.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_lmbd/call-lmbd.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_lmbd/call-lmbd2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_lmbd/call-lmbd2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_meth/call-meth.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_meth/call-meth.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_meth/call-meth2.ets (92%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_meth/call-meth2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_arr/comp-arr.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_arr/comp-arr.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_arr/comp-arr2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_arr/comp-arr2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-intf.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-intf.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-obj.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-obj.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-obj2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-obj2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_field/decl-field.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_field/decl-field.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_field/decl-field2.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_field/decl-field2.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_var/decl-var.ets rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_var/decl-var.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_var/decl-var2.ets (95%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_var/decl-var2.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/06.numeric_casting_conversions/explicit_conversion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/06.numeric_casting_conversions/explicit_conversion.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/06.numeric_casting_conversions/postfix_conversion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/06.numeric_casting_conversions/postfix_conversion.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/06.numeric_casting_conversions/prefix_conversion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/06.contexts_and_conversions/06.numeric_casting_conversions/prefix_conversion.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/01.normal_and_abrupt_completion_of_expression_evaluation/oom-string.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/02.order_of_expression_evaluation/arithmetic_error_order.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/02.order_of_expression_evaluation/lhe_rhe_evaluation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/02.order_of_expression_evaluation/order_of_evaluation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/03.operator_precedence/await.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/03.operator_precedence/chaining.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/03.operator_precedence/exponentiation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/04.evaluation_of_arguments/abrupt.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/05.evaluation_of_other_expressions/cast.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/05.evaluation_of_other_expressions/cast.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/05.evaluation_of_other_expressions/instof.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/{10.method_call_expression/02.step_2_selection_of_method => 01.evaluation_of_expressions/05.evaluation_of_other_expressions}/mcall.ets (66%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/heap_pollution.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/optional_chain_super.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/01.evaluation_of_expressions/optional_chain_this.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/01.function_reference/function_reference.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/01.function_reference/function_reference_lib.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/01.function_reference/function_reference_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/02.method_reference/meth_ref.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/named_reference_45.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/named_reference_46.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/qualified_name.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/qualified_name.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/qualified_name_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/03.named_reference/qualified_name_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/01.object_literal_of_class_type/spec_ex4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/01.object_literal_of_class_type/spec_ex5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/01.object_literal_of_class_type/spec_ex6.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/02.object_literal_of_interface_type/spec_ex3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/02.object_literal_of_interface_type/spec_ex4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/02.object_literal_of_interface_type/spec_ex5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/03.object_literal_of_record_type/spec_ex4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/04.object_literal_evaluation/class_with_readonly.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/04.object_literal_evaluation/eval_order_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/04.object_literal_evaluation/eval_order_iface.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/04.object_literal_evaluation/iface_with_readonly.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/initializing_a_class_internally.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex6.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/spec_ex7.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/union_inferred.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/union_not_inferred_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/union_not_inferred_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/05.object_literal/union_not_inferred_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/06.spread_expression/iterable.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/08.this_expression/this_in_lambda_negative_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/10.method_call_expression/04.type_of_method_call_expression/negative1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/11.function_call_expression/args_type_evaluation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/11.function_call_expression/safe_call_arguments_evaluate.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/01.array_indexing_expression/array_access8.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/01.array_indexing_expression/array_access9.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/01.array_indexing_expression/array_index3_n.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/01.array_indexing_expression/array_index3_n.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/ind.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.record_indexing_expression/ind.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/ind2.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/ind2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx1a.ets (89%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx1b.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx1c.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx1d.ets (83%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx1e.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx3a.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx3b.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx3c.ets (83%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/indx3d.ets (81%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record01.ets (97%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record06.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record07.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record08.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record09.ets (95%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record11.ets (88%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record12.ets (93%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record13.ets (94%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record14.ets (94%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record15.ets (85%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record16.ets (94%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record17.ets (94%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record18.ets (94%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record19.ets (93%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record21.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record22.ets (89%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record23.ets (94%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record24.ets (91%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record25.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record26.ets (95%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/{03.record_indexing_expression => 02.record_indexing_expression}/record27.ets (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_nzfract_cte_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_nzfract_cte_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_nzfract_rte_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_nzfract_rte_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_outofbounds_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_outofbounds_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_readonly_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_readonly_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_res_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_res_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_res_type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_type_cte_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/02.string_indexing_expression/string_idx_type_cte_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/03.record_indexing_expression/ind.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/12.indexing_expression/03.record_indexing_expression/record28.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/{16.cast_expressions => 15.cast_expressions}/cast.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/15.cast_expressions/cast.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/{16.cast_expressions => 15.cast_expressions}/cast0.ets (66%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{16.cast_expressions => 15.cast_expressions}/cast1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{16.cast_expressions => 15.cast_expressions}/cast2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{16.cast_expressions => 15.cast_expressions}/nullable_cast_0.ets (96%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{16.cast_expressions => 15.cast_expressions}/nullable_cast_1.ets (77%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/15.instanceof_expression/instanceof-cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/15.instanceof_expression/instanceof.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/15.instanceof_expression/instof.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/01.type_inference_in_cast_expression/type_inference.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/01.type_inference_in_cast_expression/type_inference.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/01.type_inference_in_cast_expression/type_inference_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/01.type_inference_in_cast_expression/type_inference_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/02.runtime_checking_in_cast_expression/cast_rt_check.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/02.runtime_checking_in_cast_expression/cast_rt_check.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/02.runtime_checking_in_cast_expression/runtime_checking_function.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/02.runtime_checking_in_cast_expression/runtime_checking_function.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/02.runtime_checking_in_cast_expression/runtime_checking_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/02.runtime_checking_in_cast_expression/runtime_checking_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.cast_expressions/cast.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/{15.instanceof_expression => 16.instanceof_expression}/instanceof-cte.ets (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.instanceof_expression/instanceof-cte.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/16.instanceof_expression/instanceof.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/{15.instanceof_expression => 16.instanceof_expression}/instanceof.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{15.instanceof_expression => 16.instanceof_expression}/object_incompatible_with_the_specified_type.ets (93%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{15.instanceof_expression => 16.instanceof_expression}/operand_that_is_a_reference_type.ets (93%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{15.instanceof_expression => 16.instanceof_expression}/operand_that_is_not_a_reference_type.ets (91%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{15.instanceof_expression => 16.instanceof_expression}/right_operand_that_is_not_a_reference_type.ets (91%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/01.postfix_increment/abrupt_completion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/01.postfix_increment/bigint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/01.postfix_increment/class_fields.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/01.postfix_increment/postfix_increment_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/01.postfix_increment/records.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/02.postfix_decrement/abrupt_completion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/02.postfix_decrement/bigint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/02.postfix_decrement/class_fields.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/02.postfix_decrement/postfix_decrement_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/02.postfix_decrement/records.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/03.prefix_increment/abrupt_completion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/03.prefix_increment/bigint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/03.prefix_increment/class_fields.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/03.prefix_increment/prefix_increment_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/03.prefix_increment/records.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/04.prefix_decrement/abrupt_completion.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/04.prefix_decrement/bigint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/04.prefix_decrement/class_fields.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/04.prefix_decrement/prefix_decrement_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/04.prefix_decrement/records.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/05.unary_plus/int_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/05.unary_plus/long_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/05.unary_plus/unary_plus_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/06.unary_minus/unary_minus_int_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/20.unary_expressions/06.unary_minus/unary_minus_long_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/21.multiplicative_expressions/04.exponentiation/inf.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/21.multiplicative_expressions/04.exponentiation/inf.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/21.multiplicative_expressions/04.exponentiation/integer_and_floating_point.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/21.multiplicative_expressions/04.exponentiation/integer_and_floating_point.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/21.multiplicative_expressions/04.exponentiation/nan.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/21.multiplicative_expressions/04.exponentiation/nan.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel_func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel_func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel_var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/bigint_relational_operators/rel_var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/comparison_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_comparison_operators/comparison_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_bigint.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_bigint.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_byte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_byte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_int.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_int.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_long.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_long.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_short.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/01.numerical_conversions_for_operands/conversions_short.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/ge.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/ge.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/gt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/gt.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/le.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/le.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/lt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/lt.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/{25.equality_expressions/bigint_equality_operators/eq_n.ets => 24.relational_expressions/03.bigint_relational_operators/rel_n.ets} (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{01.numerical_comparison_operators/bigint_relational_operators => 03.bigint_relational_operators}/rel_n.params.yaml (65%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{03.boolean_comparison_operators => 04.boolean_comparison_operators}/boolean_comparison.ets (77%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{03.boolean_comparison_operators => 04.boolean_comparison_operators}/boolean_comparison.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{03.boolean_comparison_operators => 04.boolean_comparison_operators}/boolean_comparison_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{03.boolean_comparison_operators => 04.boolean_comparison_operators}/boolean_comparison_neg.params.yaml (77%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum_arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum_cond.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum_fun.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum_tup.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum_union.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/04.enumeration_relational_operators/enum_var.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum2.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum2.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum_arr.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_arr.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum_cond.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_cond.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_fld.ets (65%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_fld.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum_fun.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_fun.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_lmb.ets (66%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_lmb.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum_tup.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_tup.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum_union.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_union.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/05.enumeration_relational_operators/enum_var.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/24.relational_expressions/{04.enumeration_relational_operators => 05.enumeration_relational_operators}/enum_var.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/02.function_type_equality_operators/function_equality.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/02.function_type_equality_operators/function_equality.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/02.function_type_equality_operators/function_equality_ne.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/02.function_type_equality_operators/function_equality_ne.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{string_equality_operators => 02.string_equality_operators}/string_eq.ets (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/02.string_equality_operators/string_eq.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{string_equality_operators => 02.string_equality_operators}/string_eq_cte.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{string_equality_operators => 02.string_equality_operators}/string_eq_cte.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.bigint_equality_operators/bigint_eq_cte.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.bigint_equality_operators/bigint_eq_cte.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/eq.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/eq.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.bigint_equality_operators/eq_n.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/eq_n.params.yaml (65%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/ne1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/ne1.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/ne2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{bigint_equality_operators => 03.bigint_equality_operators}/ne2.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/null_and_undefined_equality.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/nullable_and_undefinable_equation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/nullable_and_undefinable_equation.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/nullable_equation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/nullable_equation.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/undefinable_equation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/03.equality_with_null_or_undefined/undefinable_equation.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{boolean_equality_operators => 04.boolean_equality_operators}/boolean_equality_operator.ets (91%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/04.boolean_equality_operators/boolean_equality_operator.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{enumeration_equality_operators => 05.enumeration_equality_operators}/enum_equality.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/05.enumeration_equality_operators/enum_equality.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/object_type_equality_operators/cte.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/object_type_equality_operators/cte.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/object_type_equality_operators/eq.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/object_type_equality_operators/eq.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/object_type_equality_operators/eq1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/object_type_equality_operators/eq1.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/object_type_equality_operators/ne.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/object_type_equality_operators/ne.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/object_type_equality_operators/ne1.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/object_type_equality_operators/ne1.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/type_parameter_equality_operators/eq.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/type_parameter_equality_operators/eq.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/type_parameter_equality_operators/eq1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/type_parameter_equality_operators/eq1.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/type_parameter_equality_operators/eq2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/type_parameter_equality_operators/eq2.params.yaml (98%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/type_parameter_equality_operators/ne.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/type_parameter_equality_operators/ne.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/type_parameter_equality_operators/ne1.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/type_parameter_equality_operators/ne1.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/type_parameter_equality_operators/ne3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/type_parameter_equality_operators/ne3.params.yaml (99%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/union_equality_operators/cte.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/union_equality_operators/cte.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/union_equality_operators/cte_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/union_equality_operators/cte_n.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/union_equality_operators/eq.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/union_equality_operators/eq.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/06.reference_equality_based_on_actual_type/union_equality_operators/ne.ets rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality_based_on_actual_type => 06.reference_equality_based_on_actual_type}/union_equality_operators/ne.params.yaml (99%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/array_types_equality_operator.ets (93%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/array_types_equality_operator.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/null_conversation_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/null_conversation_1.ets (79%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/null_conversation_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/operand_is_not_of_reference_type.ets (93%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/operand_is_not_of_reference_type.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/refer_to_the_same_array.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/refer_to_the_same_object.ets (82%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/reference_types_equality_operator.ets (92%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/reference_types_equality_operator.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{reference_equality => 07.reference_equality}/type_conversion_of_one_operand_to_another_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{03.equality_with_null_or_undefined => 08.equality_with_null_or_undefined}/null_and_undefined_equality.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/08.equality_with_null_or_undefined/null_and_undefined_equality.params.yaml rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{03.equality_with_null_or_undefined => 08.equality_with_null_or_undefined}/null_and_undefined_equality_negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/{03.equality_with_null_or_undefined => 08.equality_with_null_or_undefined}/null_and_undefined_equality_negative.params.yaml (90%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/bigint_equality_operators/eq_func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/bigint_equality_operators/eq_func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/bigint_equality_operators/eq_var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/bigint_equality_operators/eq_var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/boolean_equality_operators/boolean_equality_operator.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/enumeration_equality_operators/enum_equality.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/object_type_equality_operators/eq.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/object_type_equality_operators/eq.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/object_type_equality_operators/eq1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/object_type_equality_operators/eq1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/object_type_equality_operators/ne.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/object_type_equality_operators/ne1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/type_parameter_equality_operators/eq.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/type_parameter_equality_operators/eq.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/type_parameter_equality_operators/eq1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/type_parameter_equality_operators/eq1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/type_parameter_equality_operators/ne.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/type_parameter_equality_operators/ne1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/union_equality_operators/eq.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/union_equality_operators/eq.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/reference_equality_based_on_actual_type/union_equality_operators/ne.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/25.equality_expressions/string_equality_operators/string_eq.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/01.lambda_signature/positive.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/01.lambda_signature/positive.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/negative_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/negative_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_2_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_4_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_6.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_7.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/03.lambda_expression_type/type_8.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/32.lambda_expression/generic.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/33.constant_expression/check_enum/constant_num_chain_initializer_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/07.expressions/33.constant_expression/check_enum/constant_num_chain_initializer_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/08.statements/14.throw_statements/throw_neg2.ets.expected.err rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_boolean_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_boolean_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_class_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_class_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_date_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_date_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_interface_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_interface_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_number_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_number_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_string_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_array_string_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_boolean_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_boolean_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_class_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_class_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_date_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_date_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_function_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_function_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_int_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_int_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_null_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_null_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_number_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_number_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_string_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_string_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_undefined_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_private_undefined_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_boolean_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_boolean_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_class_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_class_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_date_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_date_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_interface_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_interface_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_number_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_number_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_string_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_array_string_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_boolean_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_boolean_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_class_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_class_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_date_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_date_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_function_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_function_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_int_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_int_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_null_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_null_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_number_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_number_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_string_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_string_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_undefined_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_protected_undefined_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_boolean_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_boolean_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_class_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_class_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_date_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_date_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_interface_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_interface_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_number_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_number_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_string_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_array_string_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_boolean_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_boolean_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_class_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_class_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_date_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_date_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_function_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_function_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_int_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_int_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_null_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_null_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_number_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_number_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_string_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_string_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_undefined_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/accessing_parent_class/accessing_parent_class_public_undefined_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/circularly_class_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_call_rewrite/class_11.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_call_rewrite/class_12.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_call_rewrite/class_13.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_call_rewrite/class_14.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_call_rewrite/class_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_01.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_02.ets (72%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_03.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_04.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_05.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_06.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_07.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_08.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_09.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_10.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_11.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_12.ets (69%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_13.ets (68%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_14.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_16.ets (70%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_17.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_18.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_19.ets (78%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_20.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_21.ets (69%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_22.ets (72%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_23.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_24.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_25.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_26.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_27.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_inherits_parent_members/class_inherits_parent_members_case_28.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewrite_call/class_06.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewrite_call/class_07.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewrite_call/class_08.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewrite_call/class_09.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewrite_call/class_10.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewriting/class_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewriting/class_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewriting/class_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewriting/class_04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_rewriting/class_05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over01.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over02.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over03.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over04.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over05.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over06.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over07.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over08.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over09.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over10.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over11.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over12.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over13.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over14.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over15.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over16.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over17.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over18.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over19.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over20.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over21.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over22.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause/class_superclass_override => 01.class_declaration/03.class_extension_clause/class_spuerclass_override}/class_over23.ets (98%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri01.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri02.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri03.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri04.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri05.ets (90%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri06.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri07.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri08.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri09.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri10.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri11.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri12.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri13.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri14.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri15.ets (87%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri16.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri17.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri18.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri19.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri20.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri21.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri22.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri23.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri24.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri25.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri26.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri27.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri28.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri29.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri30.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri31.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri32.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri33.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri34.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_non_private/class_no_pri35.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static01.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static02.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static03.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static04.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static05.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static06.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static07.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static08.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static09.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static10.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static11.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static12.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static13.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/class_superclass_staticmethod/class_static14.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/extends_clause.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/extends_itself.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/extends_object_class.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_0.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_1.ets (90%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_10.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_13.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_14.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_15.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_16.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_18.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_19.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_2.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_20.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_21.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_22.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_23.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_24.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_25.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_26.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_27.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_28.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_29.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_3.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_30.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_31.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_32.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_33.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_34.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_35.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_36.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_37.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_38.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_39.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_4.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_40.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_41.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_42.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_43.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_44.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_45.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_46.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_47.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_48.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_49.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_5.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_50.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_51.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_52.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_53.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_54.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_55.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_6.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_7.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_8.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/initialize_members/initialize_members_9.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/invalid_type_reference.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/invalid_type_reference.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism0.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism1.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism10.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism2.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism4.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism5.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism6.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism7.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism8.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/members/polymorphism9.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_0.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_10.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_11.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_12.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_13.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_14.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_15.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_16.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_17.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_18.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_19.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_2.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_20.ets (89%) mode change 100755 => 100644 rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_21.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_22.ets (90%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_23.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_24.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_25.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_3.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_4.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_5.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_6.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_7.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_8.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/method_return_value/method_return_value_9.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer03.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer04.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer05.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer06.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer07.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer08.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer09.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer10.ets (78%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer11.ets (78%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer12.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer13.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer15.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer16.ets (78%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer17.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer18.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer19.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer20.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer21.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer22.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer23.ets (78%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer24.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer25.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer26.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer27.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer28.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer29.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer30.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer31.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer32.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer33.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer34.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer35.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer36.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer37.ets (75%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer38.ets (73%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer39.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_40.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_41.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_42.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_43.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_44.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_45.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_46.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_47.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_48.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_49.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_50.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_51.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_52.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_53.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/multi_level_inheritance/multi_level_inheritance_value_transfer_54.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/object_as_superclass.ets (73%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/superclass_with_same_parameters.ets (72%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/valid_type_reference.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/valid_type_reference.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/03.class_extension_clause/wildcard_type_argument.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/wildcard_type_argument.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/03.class_extension_clause/wildcard_type_argument_negative.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{02.class_extension_clause => 01.class_declaration/03.class_extension_clause}/wildcard_type_argument_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_inheritance.ets (67%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_inheritance_by_non_abstract_class.ets (67%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_multiple_inheritance.ets (68%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_multiple_override.ets (68%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_override.ets (67%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_override_by_superclass.ets (69%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/abstract_method_override_by_superinterface.ets (69%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/default_method.ets (75%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/direct_interface_Implementation_twice.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/implements_same_interface_with_diferent_parameters.ets (66%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/implements_same_interface_with_diferent_parameters_1.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/implements_same_interface_with_diferent_parameters_2.ets (72%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/indirect_interfaces_Implementation_twice.ets (71%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/invalid_type_reference.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/invalid_type_reference_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/invalid_type_reference_2.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause/01.implementing_interface_methods => 01.class_declaration/04.class_implementation_clause}/one_method_for_two_interfaces.ets (86%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/override_default_method.ets (68%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/same_field_and_method_names.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/superinterface_with_same_parameters.ets (66%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/superinterfaces_of_class_0.ets (68%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/superinterfaces_of_class_1.ets (73%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/superinterfaces_of_class_2.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/two_superinterfaces_from_same_generic_interface.ets (65%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/valid_type_reference.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/wildcard_type_argument.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/wildcard_type_argument.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/01.class_declaration/04.class_implementation_clause/wildcard_type_argument_negative.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause => 01.class_declaration/04.class_implementation_clause}/wildcard_type_argument_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause/implementing_interface_properties => 01.class_declaration/05.implementing_interface_properties}/getter_setter_implementation.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause/implementing_interface_properties => 01.class_declaration/05.implementing_interface_properties}/property_implementation.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause/implementing_interface_properties => 01.class_declaration/05.implementing_interface_properties}/property_implementation_readonly_getter.ets (90%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause/implementing_interface_properties => 01.class_declaration/05.implementing_interface_properties}/property_implementation_readonly_setter.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{03.class_implementation_clause/implementing_interface_properties => 01.class_declaration/05.implementing_interface_properties}/property_implementation_readonly_setter_n.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 02.class_body}/class_body_members.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 02.class_body}/class_body_members.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 02.class_body}/negative_class_body_members.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_body/negative_class_body_members.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 02.class_body}/negative_dup_class_body_members.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 02.class_body}/negative_dup_class_body_members.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/class_superclass_override/class_over24.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/class_superclass_override/class_over25.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/class_superclass_override/class_over26.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/class_superclass_override/class_over27.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/extend_object_class_with_interface.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/extends_non_final_object_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/wildcard_type_argument.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/02.class_extension_clause/wildcard_type_argument_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_call_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/class_overrides_interface_methods_n3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/nothing_to_override.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/one_method_for_two_interfaces_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class_n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class_n3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/refer_to_same_impl_at_class_n4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/01.implementing_interface_methods/same_implementation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_getter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_getter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_getter_and_setter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_getter_and_setter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_readonly_field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_readonly_field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_setter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_setter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_writable_field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/02.implementing_required_interface_properties/interface_writable_field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/example.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/example_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/example_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/example_neg.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/override_optional_property.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/override_optional_property.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/override_optional_property_with_required_one.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/override_optional_property_with_required_one_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/03.implementing_optional_interface_properties/override_required_property_with_an_optional_one.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/abstract_method_inheritance_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/abstract_method_inheritance_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/abstract_method_inheritance_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/direct_interface_Implementation_twice.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/direct_interface_Implementation_twice_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/implements_same_interface_with_diferent_parameters_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/modules/interfaces.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/same_field_and_method_names.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/same_field_and_method_names.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/type_reference.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/type_reference_module.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/type_reference_module_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/type_reference_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/type_reference_neg_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/type_reference_neg_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/wildcard_type_argument.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_implementation_clause/wildcard_type_argument_negative.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/dir_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkg_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/pkgmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/acc/pkgmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/acc/sepmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/acc/sepmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/class_members_with_same_name.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/class_members_with_same_name.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/dir_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkg_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/pkgmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/constructor/pkgmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/constructor/sepmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/constructor/sepmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/dir_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkg_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/pkgmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/fld/pkgmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/fld/sepmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/fld/sepmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/inherited_from_superclass.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/inherited_from_superclass.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/inherited_from_superinterface.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/inherited_from_superinterface.params.yaml (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/member_declared_in_body.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/member_declared_in_body.params.yaml (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/members_that_are_not_inherited.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/members_that_are_not_inherited_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/members_that_are_not_inherited_2.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/dir_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_priv_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_priv_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_priv_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_prot_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_prot_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_prot_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_pub_1/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_pub_2/file_A.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkg_pub_2/file_B.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/pkgmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/met/pkgmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/met/sepmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/03.class_members/met/sepmod.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/non-instance-members.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/private_member_from_superclass.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/private_member_from_superclass.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members => 03.class_members}/static_class_members_with_same_name.ets (75%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/01.private_access_modifier/private_constructor_access_in_class.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/01.private_access_modifier/private_constructor_access_out_class.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/01.private_access_modifier/private_interface_access_in_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/01.private_access_modifier/private_interface_access_out_class.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/01.private_access_modifier/private_member_access_in_class.ets (68%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/01.private_access_modifier/private_member_access_in_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/01.private_access_modifier/private_member_access_out_class.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/01.private_access_modifier/private_member_access_out_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/02.protected_access_modifier => 04.access_modifiers/03.protected_access_modifier}/protected_constructor_access_in_class.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/02.protected_access_modifier => 04.access_modifiers/03.protected_access_modifier}/protected_constructor_access_in_derived_class.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/02.protected_access_modifier => 04.access_modifiers/03.protected_access_modifier}/protected_constructor_access_out_class.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_interface_access_in_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_interface_access_in_derived_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_interface_access_out_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_member_access_in_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_member_access_in_class.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_member_access_in_derived_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_member_access_in_derived_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/02.protected_access_modifier => 04.access_modifiers/03.protected_access_modifier}/protected_member_access_out_class.ets (70%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/03.protected_access_modifier/protected_member_access_out_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/03.public_access_modifier => 04.access_modifiers/04.public_access_modifier}/public_class_declaration.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/03.public_access_modifier => 04.access_modifiers/04.public_access_modifier}/public_constructor_access_in_class.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/03.public_access_modifier => 04.access_modifiers/04.public_access_modifier}/public_constructor_access_out_class.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/04.public_access_modifier/public_interface_access_in_class.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/04.public_access_modifier/public_interface_access_out_class.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/03.public_access_modifier => 04.access_modifiers/04.public_access_modifier}/public_member_access_in_class.ets (70%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/04.public_access_modifier/public_member_access_in_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers/03.public_access_modifier => 04.access_modifiers/04.public_access_modifier}/public_member_access_out_class.ets (76%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.access_modifiers/04.public_access_modifier/public_member_access_out_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/access_modifiers.ets (75%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/access_modifiers.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/default_access_modifiers.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{05.access_modifiers => 04.access_modifiers}/default_access_modifiers.params.yaml (72%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/acc/pkgmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/acc/sepmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/class_initializer/abstract_class_initializer_declaration_try_neg_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/class_initializer/abstract_class_initializer_declaration_try_neg_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/class_initializer/class_initializer_declaration_try_neg_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/class_initializer/class_initializer_declaration_try_neg_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/class_initializer/class_initializer_order.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/constructor/pkgmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/constructor/sepmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/fld/pkgmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/fld/sepmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/met/pkgmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/met/sepmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/04.class_members/negative_class_body_members.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_constructor_access_in_derived_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_member_access_in_abstract_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_member_access_in_abstract_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_member_access_in_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_member_access_out_abstract_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_member_access_out_abstract_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/01.private_access_modifier/private_member_access_out_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/02.protected_access_modifier/protected_member_access_in_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/02.protected_access_modifier/protected_member_access_in_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/02.protected_access_modifier/protected_member_access_in_derived_class.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/02.protected_access_modifier/protected_member_access_in_derived_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/02.protected_access_modifier/protected_member_access_out_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/03.public_access_modifier/public_member_access_in_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.access_modifiers/03.public_access_modifier/public_member_access_out_class.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/01.static_and_instance_fields => 05.field_declarations/01.static_fields}/static_field_declaration1.ets (88%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/01.static_and_instance_fields => 05.field_declarations/01.static_fields}/static_field_declaration2.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/01.static_and_instance_fields => 05.field_declarations/01.static_fields}/static_field_declaration3.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/01.static_and_instance_fields => 05.field_declarations/01.static_fields}/static_field_declaration4.ets (86%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/01.static_and_instance_fields => 05.field_declarations/01.static_fields}/static_field_declaration_n1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/01.static_and_instance_fields => 05.field_declarations/01.static_fields}/static_field_declaration_n3.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/direct_readonly_field_initilization.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/readonly_field_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/readonly_field_declaration_without_initialization.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/readonly_field_double_initialization.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/readonly_field_initilization_in_constructor.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/readonly_field_modification.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/02.readonly_constant_fields/readonly_static_field_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/field_initialization_with_super.ets (74%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/field_initialization_with_this.ets (74%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/non_static_field_initialization.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/non_static_field_initialization_reference.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/non_static_field_self_initialization_reference.ets (75%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/right_initialization_order.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/static_field_initialization_reference.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/static_field_initialization_with_super.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/static_field_initialization_with_this.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/static_field_self_initialization_reference.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/04.field_initialization => 05.field_declarations/03.field_initialization}/wrong_initialization_order.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.field_declarations/04.overriding_fields/overriding_fields.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/05.field_declarations/04.overriding_fields/overriding_fields.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations/06.overriding_fields => 05.field_declarations/04.overriding_fields}/sample.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/access_to_hiden_field_by_cast.ets (73%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/access_to_hiden_field_by_expression.ets (75%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/access_to_static_hiden_field.ets (76%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/field_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/field_declaration_with_busy_name.ets (67%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/field_declaration_with_busy_name.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/fields_inheritance_from_superclass.ets (68%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/fields_inheritance_from_superclass_and_superinterface.ets (71%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/fields_inheritance_from_superinterface.ets (70%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/inheritance_fields_with_same_name_neg.ets (74%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/private_field_inheritance_from_superclass_member.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/reference_to_inheritance_fields_with_same_name.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/several_inherited_field_paths_from_superinterface.ets (74%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/superclass_field_declaration.ets (71%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/superinterface_field_declaration.ets (74%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/two_same_field_modifiers.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{06.field_declarations => 05.field_declarations}/two_same_field_modifiers.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.field_declarations/03.optional_fields/optional_fields.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.field_declarations/03.optional_fields/optional_fields.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.field_declarations/06.overriding_fields/overriding_fields.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.field_declarations/06.overriding_fields/overriding_fields.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/non_static_method_call.ets (78%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/non_static_method_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_body_with_super.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_body_with_this.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_call.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_declaration_with_keywords.ets (81%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_declaration_with_keywords.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_declaration_without_body.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_in_abstract_class.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_in_abstract_class_1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/01.static_methods/static_method_with_body_type_parameter.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/02.instance_methods/instance_method_call.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_declaration.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_declaration_with_keywords.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_declaration_with_keywords.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_in_non_abstract_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_in_simple_class.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_override_by_abstract.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/abstract_method_without_implementation.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/instance_method_overridden_by_abstract.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/03.abstract_methods/private_abstract_method_declaration.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/constructor_overloading.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/different_access_modifiers.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/different_access_modifiers.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/hiding_by_class_methods/different_return_types.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/hiding_by_class_methods/hidden_method_access_by_cast.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/hiding_by_class_methods/hiding_instance_static_method.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/hiding_by_class_methods/hiding_method_from_superclass.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/inheriting_methods_with_override-equivalent_signatures/inheritance_abstract_multiple_methods_with_same_signatures.ets rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/09.overriding/03.override-compatible_signatures => 09.classes/06.method_declarations/06.overriding_methods}/inheriting_methods_with_override-equivalent_signatures/inheritance_multiple_methods_with_override.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/09.overriding/03.override-compatible_signatures => 09.classes/06.method_declarations/06.overriding_methods}/inheriting_methods_with_override-equivalent_signatures/inheritance_multiple_methods_with_same_signatures.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/method_overload_0.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/method_overload_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/method_overload_2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/method_overload_relatioship_0.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/method_signature.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/override_method_declaration.ets (77%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/override_method_declaration_with_keywords.ets (71%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/override_method_declaration_with_keywords.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/abstract_method_overridden_by_instance.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/access_to_overridden_method.ets (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/overriding_by_instance_methods/different_return_types.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/overrided_method_access_by_cast.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/overriding_internal_method_from_superclass.sts (71%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/overriding_method_from_superclass.ets (72%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/overriding_method_from_superclass.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/overriding_method_from_superinterface.ets (67%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/overriding_by_instance_methods/overriding_private_method.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/overriding_by_instance_methods/overriding_static_method.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/requirements_in_overriding_and_hiding/declaring_methods.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/requirements_in_overriding_and_hiding/different_return_types_in_hiding.ets (79%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/requirements_in_overriding_and_hiding/different_return_types_in_overriding.ets (79%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/requirements_in_overriding_and_hiding/hiding_methods_with_different_access_modifiers.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/requirements_in_overriding_and_hiding/hiding_methods_with_different_access_modifiers.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/requirements_in_overriding_and_hiding/hiding_methods_with_different_access_modifiers_n.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/requirements_in_overriding_and_hiding/hiding_methods_with_different_access_modifiers_n.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/06.method_declarations/06.overriding_methods/requirements_in_overriding_and_hiding/overriding_methods_with_different_access_modifiers.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/05.overriding_methods => 06.method_declarations/06.overriding_methods}/requirements_in_overriding_and_hiding/overriding_methods_with_different_access_modifiers.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/abstract_method_declaration_with_block.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/abstract_method_declaration_with_semicolon.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/method_declaration_with_block.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/method_declaration_with_return_type.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/method_declaration_with_semicolon.ets (72%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/method_without_return_statement.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/native_method_declaration_with_block.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/07.method_body => 06.method_declarations/08.method_body}/native_method_declaration_with_semicolon.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/met_ret_this.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/met_ret_this.params.yaml (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/met_ret_this_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/met_ret_this_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_02.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_03.ets (84%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_04.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_05.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_06.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_07.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_08.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_09.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_10.ets (90%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_abstract_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_abstract_method.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_declare_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_function.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_interface_01.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_interface_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_interface_03.ets (97%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_interface_04.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_override_01.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_override_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_override_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations/08.methods_returning_this => 06.method_declarations/09.methods_returning_this}/methods_returning_this_override_04.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/duplicate_method_with_override_equivalent_signatures.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/method_call.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/method_declaration_with_existed_name.ets (80%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/method_declaration_with_existed_name_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/method_super_call_0.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/method_super_call_1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/throws_clause_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{07.method_declarations => 06.method_declarations}/throws_clause_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_exception.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_final_modifier.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_inheritance.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_native_modifier.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_override_modifier.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_private_modifier_in_class.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_private_modifier_out_class.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_setter.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_static_modifier.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_with_reference_type.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/getter_with_value_type.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_exception.ets (89%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_final_modifier.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_inheritance.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_native_modifier.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_override_modifier.ets (91%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_private_modifier_in_class.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_private_modifier_out_class.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_static_modifier.ets (95%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_with_reference_type.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{08.accessor_declarations => 07.accessor_declarations}/setter_with_value_type.ets (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/override_method_declaration_with_keywords.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/override_method_nothing_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/override_method_nothing_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/override_method_with_default_params.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/override_method_with_default_params.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/override_method_without_keyword.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/overriding_by_instance_methods/different_return_types.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/overriding_by_instance_methods/instance_method_overridden_by_abstract.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/overriding_by_instance_methods/overriding_private_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/requirements_in_overriding_and_hiding/declaring_methods.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/requirements_in_overriding_and_hiding/hiding_methods_with_different_access_modifiers.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/requirements_in_overriding_and_hiding/hiding_methods_with_different_access_modifiers_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/07.method_declarations/05.overriding_methods/requirements_in_overriding_and_hiding/overriding_methods_with_different_access_modifiers.ets rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_empty_initializer.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_for.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_switch.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_try.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_try_1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_try_neg_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_try_neg_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_try_neg_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_declaration_while.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_with_return.ets (85%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_with_super.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_initializer_with_this.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/abstract_class_multiple_initializer_blocks.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/astract_class_initializer_declaration_try.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_empty_initializer.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_before_decl.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_for.ets (92%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_neg_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_switch.ets (94%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_try.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_try_1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_try_neg_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_try_neg_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_try_neg_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_declaration_while.ets (93%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_ensure_fields_initialized.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_ensure_fields_initialized_1.ets (83%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_incorrect_order.ets (82%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_order.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/08.class_initializer/class_initializer_order.params.yaml rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_with_return.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_with_super.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_with_super_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_with_this.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_with_type_variable.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_initializer_with_type_variable_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/09.classes/{04.class_members/class_initializer => 08.class_initializer}/class_multiple_initializer_blocks.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/01.formal_parameters/cons_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/01.formal_parameters/cons_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/01.formal_parameters/cons_parameters_gen.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/01.formal_parameters/cons_parameters_gen.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/01.formal_parameters/constructor_declaration_with_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/circular_reference1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/circular_reference2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return3.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return_expression.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return_expression2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return_expression3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return_expression_neg1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return_expression_neg2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/constructor_with_return_expression_neg3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/invocation_another_constructor_of_superclass1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/invocation_another_constructor_of_superclass2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/primary01.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/primary02.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/primary03.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/primary04.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/secondary01.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/secondary02.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/secondary03.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/secondary04.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/spec_example1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/spec_example2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/this_argument_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/02.constructor_body/this_argument_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/03.explicit_constructor_call/explicit_cons_call.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/03.explicit_constructor_call/explicit_cons_call.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/03.explicit_constructor_call/invocation_another_constructor_with_refer_to_instance_0.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/03.explicit_constructor_call/invocation_another_constructor_with_refer_to_instance_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/03.explicit_constructor_call/invocation_another_constructor_with_refer_to_instance_2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/03.explicit_constructor_call/invocation_another_constructor_with_refer_to_instance_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/class_without_constructor.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_declared_implicitly.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_declared_implicitly.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_superclass_with_optional_parameter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_superclass_with_optional_parameter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_superclass_with_parameter_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_superclass_with_parameter_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_with_access_modifier.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/dc_with_access_modifier.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/04.default_constructor/default_constructor_in_subclass.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_abstract1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_abstract2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_anonymous_overloading1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_anonymous_overloading2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_bodyless1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_bodyless2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_internal1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_internal2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_native1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_native2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_overload1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_overload1n1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_overload1n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_overload2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_overload2n1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_overload2n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_private1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_private2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_private3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_private4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_protected1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_protected2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_protected3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_protected4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_singleton1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_singleton2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_singleton3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_singleton4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_singleton5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_static1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_static2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_same_signature.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_same_signature_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_arguments.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_parameters1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_parameters2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_parameters3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_parameters4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_parameters5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/constructor_declaration_with_type_parameters6.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/09.classes/09.constructor_declaration/static_constructor_declaration.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 03.interface_body}/interface_members.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 03.interface_body}/interface_members.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 03.interface_body}/interface_members_negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 03.interface_body}/interface_members_negative.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/03.interface_body/issue24865.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/03.interface_members/issue24685.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/field_initializer_with_other_field.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/field_initializer_with_this.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/field_without_initializer.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/hidden_members.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/hidden_members.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/hidden_members_negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/hidden_members_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/interface_field_decl.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/interface_field_decl_negative.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/member_inheritance.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/member_inheritance_private_member.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/member_type_access.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/member_type_access.params.yaml (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/member_type_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/member_type_declaration.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/members_with_same_names.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/methods_overriding.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/multiple_member_inheritance.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/object_method_declaring.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/object_method_override_0.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/object_method_override_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/object_method_override_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/private_methods_inheritance.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{03.interface_members => 04.interface_members}/static_methods_inheritance.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties_class_accessor.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties_class_accessor.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties_interface_accessor.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties_interface_accessor.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/01.required_interface_properties/required_interface_properties_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/02.optional_interface_properties/optional_interface_properties.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/04.interface_properties/02.optional_interface_properties/optional_interface_properties.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/01.interface_method_overload_signatures/example.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/01.interface_method_overload_signatures/example_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/01.interface_method_overload_signatures/implementation_body.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/01.interface_method_overload_signatures/implementation_body.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/overriding_by_instance_methods/overriding_private_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/overriding_requirements/same_name.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/overriding_requirements/same_name2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/overriding_requirements/same_name3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/05.interface_method_declarations/overriding_requirements/same_name4.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/external_interface_with_property_0.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/external_interface_with_property_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/getter_setter_form.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/interface_property_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/readonly_simple_form_0.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/readonly_simple_form_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/simple_form.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{04.interface_properties => 05.interface_properties}/undefined_interface_property_declaration.ets (76%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/boundary_situation/accessing_parent_self_inheritance_interface/verify_interface_self_inheritance_01.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/boundary_situation/accessing_parent_self_inheritance_interface/verify_interface_self_inheritance_02.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/inheritance_method_with_declared_signature_any.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/inheritance_private_method_with_declared_signature2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/complex_inheritance/complex_inheritance_25_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/complex_inheritance/complex_inheritance_29.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/inherit_readonly_field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/inherit_readonly_field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/inherit_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/inherit_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/type_system/type_system_23.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multi_layer_interface/type_system/type_system_23_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_10.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_20.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_17.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_01_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/multiple_interface/verify_override_conflict_method/childModuleConflict.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_06.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/inheriting_methods_with_override_equivalent_signatures/inheritance_multiple_abstract_methods.ets (69%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/inheriting_methods_with_override_equivalent_signatures/inheritance_multiple_default_methods.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/inheriting_methods_with_override_equivalent_signatures/override_multiple_default_methods.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_method_declarations/overriding_by_instance_methods/overriding_private_method.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/overriding_by_instance_methods/overriding_public_method.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/overriding_by_instance_methods/overriding_public_method_with_wrong_signature.ets (66%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_method_declarations/overriding_requirements/different_access_modifiers.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/06.interface_method_declarations/overriding_requirements/different_return_type.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/overriding_requirements/different_signature.ets (68%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/overriding_requirements/object_method_override.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/overriding_requirements/same_return_type.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/overriding_requirements/same_signature.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/throws_clause_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{05.interface_method_declarations => 06.interface_method_declarations}/throws_clause_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_01.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_02.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_03.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_04.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_08.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_09.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_10.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_12.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_16.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_17.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_18.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_19.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_20.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_21.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_22.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_23.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_24.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_25.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_26.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_27.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_28.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_29.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_30.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_31.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_32.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_33.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_34.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/child_interface_constants_inheritance_verification/child_interface_constants_inheritance_verification_35.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_01.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_02.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_03.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_04.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_05.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_08.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_09.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/inheriting_abstract_methods/class_implementation_single_inheritance_interface_10.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_05.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_08.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_09.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_10.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_12.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_13.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_14.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_15.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_16.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_18.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_19.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_20.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_21.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_22.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_23.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_24.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_25.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_26.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_27.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_28.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_29.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_30.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_31.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_32.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_33.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_34.ets (97%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_35.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_default_method_conflict_handling/multi_inheritance_default_method_conflict_handling_36.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_02.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_03.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_04.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_05.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_06.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_07.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_08.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_09.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_10.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_12.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_13.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_14.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_15.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_16.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_17.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_18.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_19.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_20.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_21.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_22.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/multi_inheritance_interface_abstract_method/multi_inheritance_interface_abstract_method_23.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_01.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_02.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_03.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_04.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_05.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_06.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_07.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_08.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_09.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_10.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/overriding_the_default_method/class_implementation_multi_inheritance_interface_11.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_01.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_02.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_03.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_04.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_05.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_06.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_07.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_08.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_09.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_10.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_11.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_12.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_13.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_14.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_15.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_16.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_17.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/Interface_inheritance_class_implementation/test_class_usage_of_conflicting_constants/test_class_usage_of_conflicting_constants_18.ets (77%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/boundary_situation/accessing_parent_final_interface/verify_inheritance_final_interface.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/boundary_situation/accessing_parent_self_inheritance_interface/verify_interface_self_inheritance_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/boundary_situation/accessing_parent_self_inheritance_interface/verify_interface_self_inheritance_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_01.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_02.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_04.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_05.ets (66%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_06.ets (99%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_08.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_09.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_10.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_11.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_12.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_13.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_14.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_15.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_16.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_17.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_18.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_19.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_20.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_21.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_22.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_23.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_24.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_25.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/null_interface_inheritance/other_interface_26.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_01.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_02.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_03.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_04.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_05.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_06.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_08.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_09.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_10.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_11.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_13.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_14.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_15.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/boundary_situation/transfer_parent_interface/transfer_interface_16.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/inheritance_abstract_method.ets (75%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/inheritance_default_method.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/inheritance_method_with_declared_signature.ets (75%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/inheritance_private_method.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/inheritance_private_method_with_declared_signature.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/inheritance_static_method.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/inheritance_static_private_method.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_1.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_10.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_11.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_12.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_13.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_14.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_15.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_16.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_17.ets (75%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_18.ets (74%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_19.ets (74%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_2.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_20.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_21.ets (77%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/method_inheritance/check_interface_rewrites/override_default_method_22.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/method_inheritance/check_interface_rewrites/override_default_method_23.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_24.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_25.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_26.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_27.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_28.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_29.ets (74%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_3.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_4.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_5.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_6.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_7.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_8.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/check_interface_rewrites/override_default_method_9.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_1.ets (75%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_10.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_11.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_12.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_13.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_14.ets (83%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/method_inheritance/inherited_abstract_method/inherited_abstract_method_15.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_16.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_17.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_18.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_19.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_2.ets (75%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_20.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_21.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_22.ets (76%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_23.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_24.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_25.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_26.ets (74%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_27.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_28.ets (99%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_29.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_3.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_30.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_31.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_32.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_33.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_34.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_35.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_36.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_37.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_38.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_39.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_4.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_40.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_41.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_42.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_43.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_44.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_45.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_46.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_47.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_48.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_49.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_5.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_50.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_51.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_52.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_53.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_6.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_7.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_8.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/method_inheritance/inherited_abstract_method/inherited_abstract_method_9.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_0.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_1.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_13.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_14.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_15.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_16.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/complex_inheritance/complex_inheritance_17.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_18.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_19.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_2.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_20.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_21.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_22.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_23.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_24.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_25.ets (68%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_26.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_27.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_28.ets (90%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/complex_inheritance/complex_inheritance_29.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_3.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_30.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_31.ets (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/complex_inheritance/complex_inheritance_32.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_33.ets (73%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_34.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_35.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_4.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_5.ets (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/complex_inheritance/complex_inheritance_6.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_7.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_8.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/complex_inheritance/complex_inheritance_9.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_0.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override => 07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants}/multi_layer_interface_inheritance_1.ets (70%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_10.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_11.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_12.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_13.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_14.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_15.ets rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants}/multi_layer_interface_inheritance_16.ets (83%) mode change 100755 => 100644 create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_17.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_18.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_19.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_20.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_21.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_22.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_23.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_24.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_25.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_26.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_27.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_28.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_29.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_3.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_30.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_31.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_32.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_33.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_4.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_5.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_6.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_7.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants/multi_layer_interface_inheritance_8.ets rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_methods_constants}/multi_layer_interface_inheritance_9.ets (85%) mode change 100755 => 100644 rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_0.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_17.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_18.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_19.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_20.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_21.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_22.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_23.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_24.ets rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override}/multi_layer_interface_inheritance_override_25.ets (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_26.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_27.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_28.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_29.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_30.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_31.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_32.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_33.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_34.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_35.ets (75%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_36.ets (77%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_37.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_ext.ets => 07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_ext.ets} (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/multi_layer_interface_inheritance_override/multi_layer_interface_inheritance_override_ext.params.yaml rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_0.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_1.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_11.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_12.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_13.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_14.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_15.ets (88%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_16.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_17.ets (89%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_18.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_19.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_2.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_20.ets (92%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_21.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_22.ets (83%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/type_system/type_system_23.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_24.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_25.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_26.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_27.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_28.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_29.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_30.ets (96%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multi_layer_interface/type_system/type_system_4.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_5.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_6.ets (91%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_7.ets (84%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_8.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multi_layer_interface/type_system/type_system_9.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_04.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_06.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_07.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_08.ets (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_conflict/conflict_09.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_conflict/conflict_10.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_11.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_12.ets (91%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_conflict/conflict_13.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_14.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_15.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_16.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_17.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_conflict/conflict_18.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_02.ets (69%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_03.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_04.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_05.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_06.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_07.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_08.ets (90%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_09.ets (86%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_10.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_11.ets (79%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_12.ets (65%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_13.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_14.ets (96%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_15.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_16.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_17.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_18.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/abstract_method_same_name/abstract_method_19.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_20.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_21.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/abstract_method_same_name/abstract_method_22.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_01.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_02.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_03.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_04.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_05.ets (71%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_06.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_07.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_08.ets (85%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_09.ets (79%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_10.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_11.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_12.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_13.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_14.ets (80%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_15.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_16.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_17.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/child_specifies_parent_use_case/child_specifies_parent_use_case_18.ets (72%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_01.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_02.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_03.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_04.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_05.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_06.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_07.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_08.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_09.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_10.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_11.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_12.ets (80%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_13.ets (89%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_14.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_15.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_16.ets (82%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_17.ets (83%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_18.ets (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_19.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_20.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_21.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_22.ets (83%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_23.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_24.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_25.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/handle_interface_constant_conflicts/handle_interface_constant_conflicts_case_26.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/moduleA.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/moduleB.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_03.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_04.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_05.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_06.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_07.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_08.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_09.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_10.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_11.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_12.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_13.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_14.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_15.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_16.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_17.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/multiple_parent_interfaces_same_constant_case_18.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/namespaceA.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/multiple_parent_interfaces_same_constant/namespaceB.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/childModule.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/parentModule.ets (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_01.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_02.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_03.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_04.ets (94%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_05.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_06.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_07.ets (65%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_08.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_09.ets (71%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_10.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_11.ets (93%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_12.ets (81%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_13.ets (77%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_14.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_15.ets (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_16.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_17.ets (79%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/multiple_interface/verify_override_conflict_method/verify_override_conflict_method_case_18.ets rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/04.await/awaiting_coroutine_ext.ets => 10.interfaces/07.interface_inheritance/static_method_inheritance/accessing_parent_static_interface/subclass_calls_parent_class_interface_method.ets} (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/accessing_parent_static_interface/subclass_calls_parent_class_interface_method.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/same_name_method/same_name_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/same_name_method/same_name_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/same_name_method/same_name_03.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/same_name_method/same_name_04.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/same_name_method/same_name_05.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/same_name_method/same_name_06.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/static_method/static_method_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/static_method/static_method_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/static_method/static_method_03.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/static_method_inheritance/static_method/static_method_04.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/static_method_inheritance/static_method/static_method_05.ets (78%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/interface_inheritance_const/const_01.ets (82%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/interface_inheritance_const/const_03.ets (96%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_04.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_05.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_06.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_07.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_08.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_09.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_10.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/interface_inheritance_const/const_11.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_12.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_13.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_14.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_15.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_16.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/interface_inheritance_const/const_17.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/interface_inheritance_const/const_18.ets (90%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/interface_inheritance_const/const_19.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_boolean_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_boolean_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_class_in_subclass_interface_01.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_class_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_date_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_date_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_enum_in_subclass_interface_01.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_enum_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_int_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_int_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_interface_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_interface_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_null_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_null_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_number_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_number_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_string_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_string_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_undefined_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_array_undefined_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_boolean_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_boolean_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_class_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_class_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_date_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_date_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_enum_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_enum_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_01.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_02.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_03.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_04.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_05.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_06.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_07.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_08.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_09.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_10.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_11.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_12.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_13.ets (86%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_14.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_15.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_16.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_17.ets (87%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_18.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_19.ets (86%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_20.ets (86%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_21.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_22.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_23.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_24.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_25.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_26.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_27.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_28.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_29.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_30.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_31.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_32.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_33.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_34.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_35.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_36.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_37.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_38.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_39.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_genericclass_in_subclass_interface_40.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_int_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_int_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_interface_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_interface_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_null_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_null_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_number_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_number_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_string_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_string_in_subclass_interface_02.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_undefined_in_subclass_interface_01.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_undefined_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_01.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_02.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_03.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_04.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_05.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_06.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_07.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_08.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_09.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_10.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_11.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_12.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_13.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_14.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_15.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_16.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_17.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_18.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_19.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_20.ets rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_21.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_22.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_23.ets (95%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_24.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/04.coroutines/coroutines_ext.ets => 10.interfaces/07.interface_inheritance/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_ext.ets} (100%) rename static_core/plugins/ets/tests/ets-templates/10.interfaces/{06.interface_inheritance => 07.interface_inheritance}/superinterfaces_and_subinterfaces/verify_constant_values_subinterface_class/constants_union_class_in_subclass_interface_ext.params.yaml (91%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/01.enumeration_integer_values/enum_long.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/01.enumeration_integer_values/enum_long.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/01.enumeration_integer_values/enum_long_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/01.enumeration_integer_values/enum_long_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/04.enumeration_double_values/enum_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/04.enumeration_double_values/enum_double.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/04.enumeration_double_values/enum_double_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/04.enumeration_double_values/enum_double_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/05.enumeration_type_annotation/enum_type_anno.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/05.enumeration_type_annotation/enum_type_anno.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/05.enumeration_type_annotation/enum_type_anno_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/05.enumeration_type_annotation/enum_type_anno_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_3.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_4.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_5.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_6.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_7.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/any_number_of_constants_8.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/enum_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/enum_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/enum_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/11.enumerations/enum_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/12.error_handling/01.errors/error_call.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/01.separate_modules/init_once/test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/03.selective_binding/import_conflict_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/03.selective_binding/import_example.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/03.selective_binding/import_example.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/03.selective_binding/modules/example.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/03.selective_binding/original_binding_name.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/03.selective_binding/original_binding_name_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_class_gen.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_function.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_function_gen.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_tuple.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_union.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_with_alias.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/04.import_type_directive/type_binding_with_alias_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/06.several_bindings_for_one_import_path/explicitly_and_implicitly_import_5.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/02.import_directives/06.several_bindings_for_one_import_path/import_same_names.ets.expected.err rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 02.separate_module_initializer}/import_statements.ets (87%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 02.separate_module_initializer}/modules/statements.ets (76%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/01.bind_all_with_qualified_access/import_all_as.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/01.bind_all_with_qualified_access/import_all_as.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/03.selective_binding => 03.import_directives/02.simple_name_binding}/import_simple_name.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/03.selective_binding => 03.import_directives/02.simple_name_binding}/import_simple_name_as.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/03.selective_binding => 03.import_directives/02.simple_name_binding}/multiple_import_simple_name.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/03.selective_binding => 03.import_directives/02.simple_name_binding}/multiple_import_simple_name_as.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/03.selective_binding => 03.import_directives/02.simple_name_binding}/multiple_import_simple_name_as_non_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/explicitly_and_implicitly_import_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/explicitly_and_implicitly_import_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/explicitly_and_implicitly_import_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/explicitly_and_implicitly_import_4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/explicitly_and_implicitly_import_5.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/explicitly_and_implicitly_import_6.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/import_same_names.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/several_imports.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/06.several_bindings_for_one_import_path => 03.import_directives/03.several_bindings_for_one_import_path}/several_imports_In_one.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_export_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_export_neg_2.ets (86%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_abstract_class.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_class.ets (76%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_const_var.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_const_var_neg.ets (87%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_enum.ets (77%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_function.ets (82%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_function_gen.ets (82%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_function_same_name.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_generic_class.ets (84%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_interface.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_tuple.ets (79%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_type.ets (84%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_union.ets (76%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/default_import_variable.ets (82%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/export_default/selective_export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/export_default/single_export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/import_defaultExport_allBinding.ets (80%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/import_defaultExport_selectiveBindings.ets (81%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/import_default_exported_func_neg.ets (87%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/import_default_exported_func_neg_2.ets (87%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/import_default_exported_func_neg_3.ets (74%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_default_export.ets (74%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_default_export_2.ets (88%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_default_export_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_default_export_neg_2.ets (88%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_export.ets (80%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_levels_default_export.ets (85%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_levels_default_export_2.ets (85%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/02.default_import_binding => 03.import_directives/04.default_import_binding}/multiple_levels_default_export_3.ets (85%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/export_multiple_default_types.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_abstract_class.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class.ets (81%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class_alias.ets (81%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class_neg.ets (86%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class_neg_2.ets (86%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class_neg_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class_same_name.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_class_same_name_2.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_interface.ets (86%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_var_boxed.ets (82%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_var_default.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/04.import_type_directive => 03.import_directives/05.type_binding}/type_binding_var_primitive.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/bad/import_path_bad.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/bad/import_path_bad.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/dir/import_path_dir.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/dir/import_path_dir.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/dir/import_path_dir_global.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/dir/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/dir/module_a/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/dir/nesteddir/module_a/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/import_baseURL_path_file.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/import_path_file.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/import_path_file.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/import_path_file_global.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/import_path_file_global.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/file/nesteddir/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives/05.import_path => 03.import_directives/06.import_path}/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/import.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/import.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/import_all.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/import_as.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{02.import_directives => 03.import_directives}/import_as.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{03.standard_library_usage => 04.standard_library_usage}/core_default_import.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{03.standard_library_usage => 04.standard_library_usage}/core_default_import.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{03.standard_library_usage => 04.standard_library_usage}/stdlib_default_import.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{03.standard_library_usage => 04.standard_library_usage}/stdlib_default_import.params.yaml (65%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_module.ets (90%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_modules.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_modules.params.yaml (77%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage4.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage5.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage6.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage_neg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/declaration_usage_neg2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules/struct_declaration_n_1.ets => 05.declaration_modules/struct_declaration_n _1.ets} (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/05.declaration_modules/struct_declaration_n_1.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/struct_declaration_n_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{04.declaration_modules => 05.declaration_modules}/struct_declaration_n_3.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/05.top-level_declarations/01.exported_declarations/type_exported_declarations/export_type_class_gen.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/05.top-level_declarations/01.exported_declarations/type_exported_declarations/export_type_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/05.top-level_declarations/01.exported_declarations/type_exported_declarations/export_type_func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/05.top-level_declarations/01.exported_declarations/type_exported_declarations/export_type_func_gen.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/05.top-level_declarations/01.exported_declarations/type_exported_declarations/export_type_union.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/cyclic_dependency/module.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/cyclic_dependency/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/cyclic_dependency/module_b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/cyclic_dependency/test.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/cyclic_dependency/test2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/init_once/global.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/init_once/module.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/06.compilation_unit_initialization/module/init_once/test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/init_order/module.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{01.separate_modules => 06.compilation_unit_initialization/module}/init_order/test.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/16.packages => 13.compilation_units/06.compilation_unit_initialization/package}/cyclic_dependency/pkgA/test.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/16.packages => 13.compilation_units/06.compilation_unit_initialization/package}/cyclic_dependency/pkgB/module.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/16.packages => 13.compilation_units/06.compilation_unit_initialization/package}/init_once/global/module.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/16.packages => 13.compilation_units/06.compilation_unit_initialization/package}/init_once/pkg/module.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/06.compilation_unit_initialization/package/init_once/test.ets rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/16.packages => 13.compilation_units/06.compilation_unit_initialization/package}/init_order/pkg/module.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/06.compilation_unit_initialization/package/init_order/test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/06.namespace_declarations/simple_spec4_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/ambient01_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/ambient02_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/ambient03_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/export_default_anonymous.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/export_default_anonymous.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/pkg01_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t01/c.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t02/c.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t02/d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t03/a.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t03/d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t04/a.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t04/d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t05/a.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/01.selective_export_directive/t05/d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/02.single_export_directive/ambient01_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/02.single_export_directive/ambient02_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/02.single_export_directive/ambient03_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/02.single_export_directive/export_default_anonymous.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/02.single_export_directive/export_default_anonymous.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/07.export_directives/02.single_export_directive/pkg01_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_abstract_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_const.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_enum.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_function.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_function_gen.ets (93%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_generic_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_interface.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_tuple.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_type_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_type_2_level.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_type_2_level_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_type_2_level_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_union.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/default_export_variable.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/non_default_export_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/default_exported_declarations/nothing_exported.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/export_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/export_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/exported_grouped_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/exported_grouped_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/import_exported_element.ets (82%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/import_not_exported_element.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_default_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_abstract_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_class_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_class_same_name.ets (98%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_class_same_name_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_interface.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_var_boxed.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_var_primitive.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/01.exported_declarations/type_exported_declarations/export_type_var_tpl.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/bad_top_level_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/bad_top_level_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/top_level_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{05.top-level_declarations => 07.top-level_declarations}/top_level_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_basics.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_basics.params.yaml (78%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg10.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg11.ets (92%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg12.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg15.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg16.ets (76%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg5.ets (93%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg6.ets (83%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg7.ets (78%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg8.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_declarations_neg9.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_storage.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/namespace_storage2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/pack1/namespace_package1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/pack1/namespace_package2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/pack1/namespace_package3.ets (76%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/08.namespace_declarations/simple_spec4_1.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/simple_spec4_2.ets (76%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/simple_spec4_3.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/simple_spec_pos1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/simple_spec_pos2.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/simple_spec_pos3.ets (93%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{06.namespace_declarations => 08.namespace_declarations}/simple_spec_pos4.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/ambient01/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/ambient01/file.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/ambient01_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/ambient02/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/ambient02/file.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/ambient02_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/ambient03/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/ambient03/file.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/ambient03_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/export_as_same_name.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/export_default_anonymous.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/export_default_anonymous/export_newclass.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/export_default_anonymous/export_number.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/export_default_anonymous/export_string.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/export_nothing.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/multiple_export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/multiple_export_as.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/multiple_export_as_between.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/multiple_export_as_first.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/multiple_export_as_last.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/negative_selective_exports.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/negative_selective_exports.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/no_export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/pkg01/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/pkg01/b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/pkg01/c.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/pkg01/d.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/pkg01_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/selective_exports.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/selective_exports.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/single_as_export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/single_export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t01/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t01/b.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t01/c.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t02/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t02/b.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t02/c.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t02/d.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t03/a.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t03/b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t03/c.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t03/d.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t04/a.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t04/b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t04/c.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t04/d.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t05/a.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t05/b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/01.selective_export_directive/t05/c.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/01.selective_export_directive/t05/d.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient01/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient01/file.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/02.single_export_directive/ambient01_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient02/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient02/file.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/02.single_export_directive/ambient02_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient03/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient03/file.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/02.single_export_directive/ambient03_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient04/file.d.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient04/file.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/ambient04_test.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/02.single_export_directive/export_default_anonymous.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_add_expressions.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_lambda.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_multi_expressions.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_newclass.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_number.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/export_default_anonymous/export_string.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/pkg01/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/pkg01/b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/pkg01/c.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/pkg01/d.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.export_directives/02.single_export_directive/pkg01_test.ets rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/single_export.ets (98%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/02.single_export_directive/single_export.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/class_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/class_a_as_b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/class_a_as_b_twice.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/const_as_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/export_already_declared.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/export_as_already_declared.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/export_type_of_as_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/negative_export_as_by_old_name.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/03.export_type_directive/negative_export_as_twice.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/module_a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/module_all.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/module_all_renamed.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/module_b.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/module_b_re-export.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg01_re-export_all_by_old_names.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg01a/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg01b/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg02_re-export_all_with_rename.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg02a/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg02b/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg03_re-export_all.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg03a/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/pkg03b/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/re-export_all.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/re-export_all_by_old_names.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/re-export_all_namespace.ets (68%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{07.export_directives => 09.export_directives}/04.re-export_directive/re-export_all_with_rename.ets (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/13.compilation_units/09.program_entry_point/program_entry_no_handle_error.ets.expected.err rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{08.top-level_statements => 10.top-level_statements}/block_declaration.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{08.top-level_statements => 10.top-level_statements}/block_declaration.params.yaml (72%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{08.top-level_statements => 10.top-level_statements}/block_execution.ets (93%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{08.top-level_statements => 10.top-level_statements}/multiple_block_execution.ets (93%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 11.program_entry_point}/multiple_entrypoints.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_cmdline.ets (89%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_error_coroutine.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_error_coroutines.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_export.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_invalid.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_no_handle_error.ets (100%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_normal.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_normal_coroutine.ets (96%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_normal_coroutines.ets (94%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_package.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_parameters.ets (95%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_top_level.ets (84%) rename static_core/plugins/ets/tests/ets-templates/13.compilation_units/{09.program_entry_point => 12.program_exit}/program_entry_void.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_declarations.d.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_declarations.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_declarations_n.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_declarations_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage_n_0.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage_n_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/01.constant_declarations/constant_usage_n_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/02.function_declarations/function_declarations.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/02.function_declarations/function_declarations_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/02.function_declarations/function_declarations_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/03.ambient_overload_function_declarations/overload_function_declarations.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/03.ambient_overload_function_declarations/overload_function_declarations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/03.ambient_overload_function_declarations/overload_function_usage.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/03.ambient_overload_function_declarations/overload_function_usage.params.yaml rename static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/{04.class_declarations => 03.class_declarations}/class_declarations.ets (76%) create mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/03.class_declarations/class_declarations.params.yaml rename static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/{04.class_declarations => 03.class_declarations}/class_declarations_neg.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/03.class_declarations/class_declarations_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl.params.yaml delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl_d/index_decl_0.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl_d/index_decl_1.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl_d/index_decl_2.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl_d/index_decl_3.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_decl_d/index_decl_4.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_declarations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_declarations.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_declarations_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/01.ambient_indexer/index_declarations_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_decl.params.yaml delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_decl_d/call_sig_decl_0.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_decl_d/call_sig_decl_1.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_decl_d/call_sig_decl_2.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_declarations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_declarations.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_declarations_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/02.ambient_call_signature/call_sig_declarations_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_decl.params.yaml delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_decl_d/iterable_decl_0.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_decl_d/iterable_decl_1.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_declarations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_declarations.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_declarations_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/03.ambient_iterable/iterable_declarations_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl.params.yaml delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_0.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_1.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_10.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_11.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_12.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_13.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_14.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_15.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_16.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_17.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_18.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_19.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_2.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_20.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_21.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_22.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_23.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_24.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_25.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_26.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_27.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_3.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_4.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_5.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_6.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_7.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_8.d.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_decl_d/class_decl_9.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_declarations.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/04.class_declarations/class_declarations_neg.params.yaml rename static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/{05.interface_declarations => 04.interface_declarations}/interface_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/{05.interface_declarations => 04.interface_declarations}/interface_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/{06.namespace_declarations => 05.namespace_declarations}/namespace_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/{06.namespace_declarations => 05.namespace_declarations}/namespace_declarations.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl/declarations.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl/declarations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl/import_declarations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl/import_declarations.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/declarations_n.d.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/declarations_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/import_declarations_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/import_declarations_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/import_declarations_n_0.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/import_declarations_n_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/14.ambient_declarations/import_decl_n/import_declarations_n_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/consecutive_arrays.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/negative_cases.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/negative_cases.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/positive_cases.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/positive_cases.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/union_types.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/01.type_of_standalone_expression/union_types.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/02.specifics_of_assignment_like_contexts/negative_cases.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/02.specifics_of_assignment_like_contexts/negative_cases.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/02.specifics_of_assignment_like_contexts/positive_cases.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/02.specifics_of_assignment_like_contexts/positive_cases.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/03.specifics_of_variable_initialization_context/declaration_type_inference.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/03.specifics_of_variable_initialization_context/declaration_type_inference.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/03.specifics_of_variable_initialization_context/expression_type_evaluation_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/03.specifics_of_variable_initialization_context/expression_type_evaluation_1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/03.specifics_of_variable_initialization_context/expression_type_evaluation_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/03.specifics_of_variable_initialization_context/expression_type_evaluation_2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/04.specifics_of_numeric_operator_contexts/negative_unary_operator.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/04.specifics_of_numeric_operator_contexts/numeric_expressions_widening.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/04.specifics_of_numeric_operator_contexts/numeric_expressions_widening.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/05.specifics_of_string_operator_contexts/string_concatenation.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/06.other_contexts/subtyping.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/07.specifics_of_type_parameters/negative_cases.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.semantic_essentials/07.specifics_of_type_parameters/positive_cases.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/supertyping => 01.subtyping/01.supertyping}/supertyping_among_array_types/cast_to_class_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/supertyping => 01.subtyping/01.supertyping}/supertyping_among_array_types/cast_to_class_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/supertyping => 01.subtyping/01.supertyping}/supertyping_among_array_types/cast_to_subclass_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/supertyping => 01.subtyping/01.supertyping}/supertyping_among_array_types/cast_to_subinterface_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/supertyping => 01.subtyping/01.supertyping}/supertyping_among_array_types/obj_cast_to_primitive.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/03.subtyping_for_union_types/negative.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/03.subtyping_for_union_types/negative.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/03.subtyping_for_union_types/positive.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/03.subtyping_for_union_types/positive.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/04.subtyping_for_function_types/negative.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/04.subtyping_for_function_types/negative.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/04.subtyping_for_function_types/positive.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/04.subtyping_for_function_types/positive.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_array_types/array_type.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_array_types/cast_to_object.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_array_types/cast_to_object_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_array_types/cast_to_superclass.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_array_types/primitive_cast_to_object.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/01.subtyping_for_classes_and_interfaces => 01.subtyping/subtyping_among_class_and_interface_types}/generic_cast_to_generic_superclass.ets (66%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/01.subtyping_for_classes_and_interfaces => 01.subtyping/subtyping_among_class_and_interface_types}/generic_cast_to_object.ets (86%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/01.subtyping_for_classes_and_interfaces => 01.subtyping/subtyping_among_class_and_interface_types}/generic_cast_to_object_with_parameters.ets (69%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/01.subtyping_for_classes_and_interfaces => 01.subtyping/subtyping_among_class_and_interface_types}/generic_cast_to_superclass.ets (83%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/subtyping_among_class_and_interface_types/generic_sub_and_superinterfaces.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/subtyping_among_class_and_interface_types/generic_subinterface.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/01.subtyping_for_classes_and_interfaces => 01.subtyping/subtyping_among_class_and_interface_types}/non_generic_cast_to_object.ets (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/01.subtyping/subtyping_among_class_and_interface_types/non_generic_cast_to_superclass.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/01.subtyping_for_classes_and_interfaces => 01.subtyping/subtyping_among_class_and_interface_types}/non_generic_superinterface.ets (84%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/02.subtyping_for_literal_types => 01.subtyping/subtyping_among_other_types}/literal_type.ets (87%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/02.subtyping_for_literal_types => 01.subtyping/subtyping_among_other_types}/literal_union_type.ets (89%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping/02.subtyping_for_literal_types => 01.subtyping/subtyping_among_other_types}/union_type.ets (65%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_primitive_types/primitive_types_cast.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{02.subtyping => 01.subtyping}/subtyping_among_primitive_types/primitive_types_cast.params.yaml (96%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_cast_to_generic_superclass2_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_cast_to_generic_superclass_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_cast_to_object_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_cast_to_object_with_parameters_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_cast_to_superclass_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_sub_and_superinterfaces.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_sub_and_superinterfaces_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_subinterface.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/generic_subinterface_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_cast_to_object_n.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_cast_to_superclass.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_cast_to_superclass_n0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_cast_to_superclass_n1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_cast_to_superclass_n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_superinterface_n0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_superinterface_n1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_superinterface_n2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/01.subtyping_for_classes_and_interfaces/non_generic_superinterface_n3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/02.subtyping_for_literal_types/subtyping_literals.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/02.subtyping_for_literal_types/subtyping_literals.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/03.subtyping_for_union_types/negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/03.subtyping_for_union_types/positive.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/03.subtyping_for_union_types/positive.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_function.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_function.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_function_generic.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_function_generic.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_instance_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_instance_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_interface_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_interface_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_lambda.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_lambda.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_static_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/04.subtyping_for_function_types/positive_static_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/05.subtyping_for_fixed-size_array_types/negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/05.subtyping_for_fixed-size_array_types/negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/05.subtyping_for_fixed-size_array_types/negative_type_safety.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/05.subtyping_for_fixed-size_array_types/negative_type_safety.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/05.subtyping_for_fixed-size_array_types/positive.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/05.subtyping_for_fixed-size_array_types/positive.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/subtyping_among_array_types/NotASubtype0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/02.subtyping/subtyping_among_array_types/NotASubtype1.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_01.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_02.ets (91%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_03.ets (85%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_04.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_05.ets (86%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_06.ets (90%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_07.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_08.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_09.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_11.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_12.ets (89%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_16.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_18.ets (89%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_19.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_20.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_21.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_22.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_23.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{03.type_identity => 02.type_identity}/type_identity_case_24.ets (89%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/class_and_interface.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/class_and_interface.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/classes_compatibility.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/classes_compatibility.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/enums_compatibility.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/functions_compatibility.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/functions_compatibility.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/functions_compatibility_opt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/functions_compatibility_opt.params.yaml (89%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/tuple_enum_and_object_literal.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{04.assignability => 03.assignability}/tuple_enum_and_object_literal.params.yaml (91%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/contravariance/contravariance_class_example.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/contravariance/contravariance_class_negative_example.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/contravariance/contravariance_function.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/contravariance/contravariance_function_negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/covariance/covariance_class_example.ets (87%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/covariance/covariance_class_negative_example.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/covariance/covariance_function.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_03.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_06.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_07.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_08.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_09.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_10.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_12.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_13.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_14.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_15.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_16.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_17.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_18.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_19.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_20.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_21.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_22.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_23.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_24.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_25.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_26.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/examples/example_type_variance_case_27.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/invariance/invariance_class_example.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/invariance/invariance_function.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/invariance/invariance_function.params.yaml (98%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/invariance/invariance_function_callback.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/invariance/invariance_function_callback_1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{05.invariance_covariance_and_contravariance => 04.invariance_covariance_and_contravariance}/invariance/invariance_function_incorrect.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_01.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_02.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_03.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_04.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_05.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_06.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/asymmetric_verification_case/asymmetric_verification_case_07.ets (92%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_03.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_04.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_05.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/boundary_case/boundary_case_08.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_06.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_07.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_08.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_09.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_10.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_12.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_13.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_14.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/diff_type_compat_case/diff_type_compat_case_15.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_01.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_02.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_03.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_04.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_05.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_06.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_07.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/implicit_compat_case/implicit_compat_case_08.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_01.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_02.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_03.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_04.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_05.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_06.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_07.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/inheritance_relationship_compatibility_case/inheritance_relationship_compatibility_case_08.ets (93%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/interface_implementation_compatibility_case/interface_implementation_compatibility_case_01.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/interface_implementation_compatibility_case/interface_implementation_compatibility_case_02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/interface_implementation_compatibility_case/interface_implementation_compatibility_case_03.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/interface_implementation_compatibility_case/interface_implementation_compatibility_case_04.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/interface_implementation_compatibility_case/interface_implementation_compatibility_case_05.ets (96%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/rest_params.ets (87%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/rest_params.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/rest_params_spread.ets (88%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/rest_params_spread.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_01.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_02.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_03.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_04.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_05.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_06.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_07.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_08.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_09.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_10.ets (79%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_11.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_12.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_13.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_14.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_15.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_16.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_17.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_18.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_19.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_20.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_21.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_22.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_23.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_24.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_25.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_26.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_27.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_28.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_29.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/same_type_compat_no_implicit_case/same_type_compat_no_implicit_case_30.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/single_params.ets (86%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/single_params.params.yaml (66%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/tuple_rest_params.ets (88%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{06.compatibility_call_args => 05.compatibility_call_args}/tuple_rest_params.params.yaml (85%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/func_clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/func_clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/func_func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/func_func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/func_union.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/func_union.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/intf.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/intf.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_arr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_fixed_arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_fixed_arr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_lit.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/05.invariance_covariance_and_contravariance/unions_lit.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/06.compatibility_call_args/rest_parameter_with_optional.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/06.compatibility_call_args/rest_parameter_with_optional.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/06.type_inference/01.smart_types/comb_01a.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/06.type_inference/01.smart_types/comb_01b.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_01c.ets (71%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_01d.ets (69%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_10a.ets (72%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_11a.ets (84%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_11b.ets (83%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_11c.ets (84%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_11d.ets (83%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_12a.ets (81%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_12b.ets (81%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_13.ets (71%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_13a.ets (81%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_13b.ets (81%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_13c.ets (76%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/comb_13d.ets (74%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/cond_expr.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/cond_expr.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/for_of_stmt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/for_of_stmt.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/func_overload.ets (87%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/06.type_inference/01.smart_types/func_overload.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/if_stmt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/if_stmt.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/if_stmt2.ets (81%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/if_stmt2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un1.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un3.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un4.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un_bool_ops.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un_bool_ops.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un_num_ops.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/01.type_expression => 06.type_inference/01.smart_types}/un_num_ops.params.yaml (97%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/while_stmt.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{08.smart_casts_and_smart_types/04.computing_smart_types => 06.type_inference/01.smart_types}/while_stmt.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/ex_6_1.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/legacy_overload_negative.ets => 07.overloading_and_overriding/01.overload-equivalent_signatures/neg.ets} (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/neg.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_0.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_10.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_3.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_4.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_5.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_6.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_7.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_8.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/overload_equivalent_example_9.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/pos.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/01.overload-equivalent_signatures/pos.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/interface_override_with_object_example.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/interface_override_with_object_example.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/interface_override_with_object_example_return.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/interface_override_with_object_example_return.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/interface_override_with_object_example_return_neg.ets (85%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/interface_override_with_object_example_return_neg.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_compatibility_array.ets (67%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_array.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_compatibility_class.ets (68%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_class.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_enum.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_enum.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_compatibility_function.ets (67%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_function.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_parameter.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_parameter.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_compatibility_primitive.ets (67%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_primitive.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_compatibility_tuple.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatibility_tuple.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatible_signature.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_compatible_signature.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_with_object.ets (69%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_with_object.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/03.override-compatible_signatures => 07.overloading_and_overriding/02.override-compatible_signatures}/override_with_object_n.ets (69%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/02.override-compatible_signatures/override_with_object_n.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_argument_equivalent.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_argument_equivalent_n.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_argument_equivalent_n.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/03.overloading_for_functions}/function_argument_equivalent_neg.ets (89%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_argument_equivalent_neg.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_argument_equivalent_neg_n2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_argument_equivalent_neg_n2.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import_and_decl.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import_and_decl.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import_from_same_cu.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import_neg.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_import_neg.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_override.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/function_override_module.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_2params.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_boxed.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_custom.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/modules/function_export_a_enum.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_function.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_generic.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_no_arg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_primitive.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_tuple.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_a_union.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/modules/function_export_all.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_2params.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_boxed.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_custom.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_function.ets (98%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_generic.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_no_arg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_primitive.ets (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_tuple.ets (95%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading/overload_with_import => 07.overloading_and_overriding/03.overloading_for_functions}/modules/function_export_b_union.ets (92%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/modules/function_export_neg.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/modules/function_export_neg_1.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/modules/function_export_neg_2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/03.overloading_for_functions/modules/function_export_neg_3.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/access_modifier_over.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/access_modifier_over.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/class_method_over_n3.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/class_method_over_n3.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/constructor_overload.ets (97%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/constructor_overload.params.yaml (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/instance_method_over_n2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/instance_method_over_n2.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/single_class_over_generic_1.ets (99%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/single_class_over_generic_2.ets (98%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/single_class_over_generic_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/single_class_overload_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{10.overloading => 07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/single_class_overload_n.params.yaml (70%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/static_method_over_n2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes/static_method_over_n2.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated/15.semantic_rules/09.overriding/01.overriding_in_classes => ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/two_class_method_over_n.ets (79%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/15.semantic_rules/09.overriding/01.overriding_in_classes => ets-templates/15.semantic_rules/07.overloading_and_overriding/04.overloading_and_overriding_in_classes}/two_class_method_over_n.params.yaml (79%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces/im_over.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces/im_over.params.yaml rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations => 15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/im_over2.ets (77%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces/im_over2.params.yaml rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations => 15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/interface_return_value_overload.ets (84%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations => 15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/interface_return_value_overload_1.ets (85%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/02.overriding_and_overload_signatures_in_interfaces => 07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/interface_return_value_overload_2.ets (71%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations => 15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/multiple_interfaces_inheritance.ets (81%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces/multiple_interfaces_inheritance.params.yaml rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/02.overriding_and_overload_signatures_in_interfaces => 07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/single_interface_overload_n.ets (73%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{09.overriding/02.overriding_and_overload_signatures_in_interfaces => 07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/single_interface_overload_n.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces/single_interface_overload_neg.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces/single_interface_overload_neg.params.yaml rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations => 15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/two_interfaces.ets (72%) rename static_core/plugins/ets/tests/ets-templates/{17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations => 15.semantic_rules/07.overloading_and_overriding/05.overloading_and_overriding_in_interfaces}/two_interfaces.params.yaml (68%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/float.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/float_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/float_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/integer.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/integer.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/integer_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/07.type_inference/01.numeric_constant_expressions/integer_neg.params.yaml rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/01.applicable_candidates_selection/overload_no_candidate_func.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/01.applicable_candidates_selection/overload_no_candidate_meth.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/better_shorter_conversion_0.ets (94%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/better_shorter_conversion_1.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/better_shorter_conversion_2.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/better_shorter_conversion_3.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_0.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_3.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_4_1.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_4_2.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_5_1.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/15.semantic_rules/08.overload_resolution/02.best_candidate_selection/ex_7.ets (95%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/08.smart_casts_and_smart_types/04.computing_smart_types/comb_01a.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/08.smart_casts_and_smart_types/04.computing_smart_types/comb_01b.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/08.smart_casts_and_smart_types/04.computing_smart_types/func_overload.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/08.smart_casts_and_smart_types/07.smart_cast_examples/spec_example1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/08.smart_casts_and_smart_types/07.smart_cast_examples/spec_example2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/08.smart_casts_and_smart_types/07.smart_cast_examples/spec_example3.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{12.static_initialization => 09.initializer_block}/bad-static-location.ets (98%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/access_modifier_over_private.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/access_modifier_over_private.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/access_modifier_over_protected.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/access_modifier_over_protected.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/access_modifier_over_public.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/access_modifier_over_public.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/class_method_over.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/class_method_over.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/instance_method_over.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/instance_method_over.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/static_method_over.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/01.overriding_in_classes/static_method_over.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/im_overloading1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/im_overloading1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/im_overloading2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/im_overloading2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/im_overriding1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/im_overriding1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_clss4.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_intf_clss1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/02.overriding_and_overload_signatures_in_interfaces/intf_intf_intf_clss1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/access_modifier_over_compatible.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/access_modifier_over_compatible.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/different_return_types.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/different_return_types.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/inheriting_methods_with_override-equivalent_signatures/inheritance_abstract_multiple_methods_with_same_signatures.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example_return.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example_return.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/interface_override_with_object_example_return_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_array.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_class.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_enum.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_enum.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_fixed_array.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_fixed_array.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_function.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_intf.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_intf.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_parameter.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_parameter.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_primitive.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatibility_tuple.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatible_signature.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_compatible_signature.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_with_object.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/override_with_object_n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/spec_example_0a.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/spec_example_0b.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/spec_example_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/spec_example_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/spec_example_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/03.override-compatible_signatures/spec_example_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/Sig.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/Sig.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SigNeg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SigNeg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SpecExample0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SpecExample1_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SpecExample1_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SpecExample1_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SpecExample1_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/09.overriding/04.overriding_and_implement_signatures_in_interfaces/SpecExample1_5.ets rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_f1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_f1.params.yaml (71%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_f2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_f2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_t1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_t1.params.yaml (74%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_t2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/cond_t2.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/do_f.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/do_f.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/do_t.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/do_t.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/for_f.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/for_f.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/for_t.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/for_t.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_f1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_f1.params.yaml (71%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_f2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_f2.params.yaml (97%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_t1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_t1.params.yaml (76%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_t2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/if_t2.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/ops.ets (75%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/ops.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/ops2.ets (76%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/ops2.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/while_f.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/while_f.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/while_t.ets (100%) rename static_core/plugins/ets/tests/ets-templates/15.semantic_rules/{14.compatibility_features => 10.compatibility_features}/01.extended_conditional_expressions/while_t.params.yaml (94%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_access.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_access.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_arrays1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_arrays1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_arrays2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_arrays2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_classes1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_classes1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_classes2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_classes2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_enums4.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_fixed_arrays1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_fixed_arrays1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_fixed_arrays2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_fixed_arrays2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_functions.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_functions.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_impl_sig.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_impl_sig.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_interfaces1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_interfaces1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_interfaces2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_interfaces2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_numeric.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_numeric.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_single.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_single.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_tuples.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/cons/cons_tuples.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_arrays1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_arrays1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_arrays2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_arrays2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_async.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_async.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_classes1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_classes1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_classes2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_classes2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_enums4.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_fixed_arrays1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_fixed_arrays1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_fixed_arrays2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_fixed_arrays2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_functions.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_functions.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_impl_sig.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_impl_sig.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_interfaces1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_interfaces1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_interfaces2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_interfaces2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_numeric.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_numeric.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_order.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_order.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_rest.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_rest.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_single.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_single.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_tuples.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/func/func_tuples.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_access.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_access.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_arrays1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_arrays1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_arrays2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_arrays2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_async.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_async.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_classes1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_classes1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_classes2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_classes2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_enums4.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_fixed_arrays1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_fixed_arrays1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_fixed_arrays2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_fixed_arrays2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_functions.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_functions.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_impl_sig.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_impl_sig.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_interfaces1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_interfaces1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_interfaces2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_interfaces2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_numeric.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_numeric.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_order.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_order.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_single.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_single.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_tuples.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/01.signature_resolution_for_overload_signatures/meth/meth_tuples.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_array_and_tuple_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_array_and_tuple_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_enum_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_enum_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_numeric_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_numeric_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_optional_and_rest_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_optional_and_rest_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_subtyping_params.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/c_subtyping_params.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/overload_constructor.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/constructor/overload_constructor.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_array_and_tuple_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_array_and_tuple_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_enum_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_enum_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_instance_function_overload.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_instance_function_overload.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_numeric_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_numeric_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_optional_and_rest_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_optional_and_rest_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_subtyping_params.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/f_subtyping_params.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/overload_function.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/function/overload_function.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_array_and_tuple_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_array_and_tuple_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_enum_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_enum_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_instance_method_overload.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_instance_method_overload.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_numeric_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_numeric_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_optional_and_rest_parameters.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_optional_and_rest_parameters.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_subtyping_params.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/m_subtyping_params.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/overload_method.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/02.overload_resolution_for_overload_declarations/method/overload_method.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/function_argument_equivalent_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/legacy_overload_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_constructor_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_constructor_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_function_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_function_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_method_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_method_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_1_source.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_1_source.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_2_sources.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_2_sources.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_and_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_and_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_neg.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/function_import_neg.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/10.overloading/overload_with_import/modules/function_export_all.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/11.type_erasure/cast.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/11.type_erasure/cast.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/11.type_erasure/instanceof.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/11.type_erasure/instanceof.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/11.type_erasure/instanceof_gen.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/15.semantic_rules/11.type_erasure/instanceof_gen.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/01.character_literals/cond_func_ref.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/01.character_literals/cond_func_ref.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/01.character_literals/cond_func_val.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/01.character_literals/cond_func_val.params.yaml delete mode 100755 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/01.character_literals/cond_func_val_n0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_equality_operators/cmp_ref.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_equality_operators/cmp_ref.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_equality_operators/cmp_val.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_equality_operators/cmp_val.params.yaml rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/addition/add_arr_ref.ets (85%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/addition/add_arr_ref.params.yaml (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/addition}/add_arr_val.ets (88%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/addition}/add_arr_val.params.yaml (92%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/addition/add_func_ref.ets (88%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/addition/add_func_ref.params.yaml (86%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/addition/add_func_val.ets (88%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/addition/add_func_val.params.yaml (86%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations}/ch.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations}/ch.params.yaml (93%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations}/ch1.ets (93%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations}/ch1.params.yaml (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/comparison/cmp_ref.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/comparison/cmp_ref.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/comparison/cmp_val.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/comparison/cmp_val.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/concat}/conc2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/concat}/conc2.params.yaml (78%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/concat/conc_ref.ets rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/concat/conc_ref.params.yaml (94%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/concat/conc_val.ets rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/concat/conc_val.params.yaml (94%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/conditional/cond_exp_val.ets (87%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/conditional/cond_exp_val.params.yaml (85%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/conditional}/cond_fld_val.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/conditional}/cond_fld_val.params.yaml (80%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/conditional/cond_func_ref.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/conditional/cond_func_ref.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/conditional/cond_func_val.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/conditional/cond_func_val.params.yaml create mode 100755 static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/02.character_types_and_operations/conditional/cond_func_val_n0.ets rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_arr_ref.ets (87%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_arr_ref.params.yaml (94%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_arr_val.ets (87%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_arr_val.params.yaml (94%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_func_ref.ets (86%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_func_ref.params.yaml (71%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_func_val.ets (86%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/decrement/dec_func_val.params.yaml (75%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_arr_ref.ets (87%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_arr_ref.params.yaml (94%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_arr_val.ets (87%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_arr_val.params.yaml (94%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_func_ref.ets (86%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_func_ref.params.yaml (71%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_func_val.ets (86%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/increment/inc_func_val.params.yaml (74%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/subtraction/sub_arr_ref.ets (88%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/subtraction/sub_arr_ref.params.yaml (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/subtraction}/sub_arr_val.ets (91%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/subtraction}/sub_arr_val.params.yaml (90%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/subtraction/sub_func_ref.ets (88%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/subtraction/sub_func_ref.params.yaml (86%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/subtraction/sub_func_val.ets (88%) rename static_core/plugins/ets/tests/{arkts-cts-negative/char_not_numeric => ets-templates/17.experimental_features/01.character_type_and_literals}/02.character_types_and_operations/subtraction/sub_func_val.params.yaml (87%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/unary}/unary_ref.ets (91%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/unary}/unary_ref.params.yaml (90%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/unary}/unary_val.ets (91%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/01.character_type_and_literals/{01.character_literals => 02.character_types_and_operations/unary}/unary_val.params.yaml (90%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_con1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_con1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_con2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_con2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_con3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_con3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_lit.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/01.fixed_size_array_creation/fixed_array_creation_lit.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/fixed_array_n_rt.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/02.fixed_array_types/fixed_array_n_rt.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/01.runtime_evaluation_of_array_creation_expressions/expr.ets (88%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.array_creation_expressions/01.runtime_evaluation_of_array_creation_expressions/expr.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/01.runtime_evaluation_of_array_creation_expressions/expr_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/01.runtime_evaluation_of_array_creation_expressions/expr_n.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.array_creation_expressions/array_create_from_literal.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.array_creation_expressions/array_create_from_literal.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/array_create_from_type_parameter_neg_0.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/array_create_from_type_parameter_neg_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/array_create_from_type_parameter_neg_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/array_create_from_type_parameter_neg_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/array_creation_expressions.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/array_creation_expressions.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/expr.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.array_creation_expressions/expr.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/expr_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{03.resizable_array_creation_expressions => 03.array_creation_expressions}/expr_n.params.yaml (94%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/01.runtime_evaluation_of_array_creation_expressions/expr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/01.runtime_evaluation_of_array_creation_expressions/expr_oome.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/01.runtime_evaluation_of_array_creation_expressions/expr_oome.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_con1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_con1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_con2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_con2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_con3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_con3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_lit1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_lit1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_lit2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/array_create_from_lit2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/03.resizable_array_creation_expressions/expr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_double_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_double_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_double_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_double_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_byte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_double.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_float.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_int.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_long.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_short.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_export_module_string.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_float_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_float_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_float_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_float_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_integer_types_common_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_integer_types_common_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_integer_types_common_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_integer_types_common_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_long_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_long_decl.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_string_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_string_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_string_decl.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/04.enumerations_experimental/01.enumeration_with_explicit_type/enum_string_decl.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/cte.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/cte.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/ind_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/ind_class.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/ind_expr.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/ind_expr.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/ind_interface.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{05.indexable_types => 04.indexable_types}/ind_interface.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{06.iterable_types => 05.iterable_types}/it.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{06.iterable_types => 05.iterable_types}/it.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/01.callable_types_with_invoke_method/ct_invoke.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/01.callable_types_with_invoke_method/ct_invoke.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/01.callable_types_with_invoke_method/ct_invoke_access.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/01.callable_types_with_invoke_method/ct_invoke_access.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/02.callable_types_with_instantiate_method/ct_inst.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/02.callable_types_with_instantiate_method/ct_inst.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/02.callable_types_with_instantiate_method/ct_inst1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/02.callable_types_with_instantiate_method/ct_inst1.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/02.callable_types_with_instantiate_method/ct_inst_access.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/02.callable_types_with_instantiate_method/ct_inst_access.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/ct.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/ct.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/ct1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{07.callable_types => 06.callable_types}/ct1.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{08.statements => 07.statements}/01.for-of_type_annotation/for_of.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{08.statements => 07.statements}/01.for-of_type_annotation/for_of.params.yaml (99%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{08.statements => 07.statements}/01.for-of_type_annotation/for_of_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{08.statements => 07.statements}/01.for-of_type_annotation/for_of_n.params.yaml (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading2.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading2.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading3.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading3.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading4.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading4.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading5.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading5.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading_n.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/01.function_overloading/fn_overloading_n.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/02.class_method_overload_declarations => 08.function_method_and_constructor_overloading/02.class_method_overloading}/cm_over1.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/02.class_method_overloading/cm_over1.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/02.class_method_overload_declarations => 08.function_method_and_constructor_overloading/02.class_method_overloading}/cm_over2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/02.class_method_overload_declarations => 08.function_method_and_constructor_overloading/02.class_method_overloading}/cm_over2.params.yaml (70%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/02.class_method_overload_declarations => 08.function_method_and_constructor_overloading/02.class_method_overloading}/cm_over3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/02.class_method_overload_declarations => 08.function_method_and_constructor_overloading/02.class_method_overloading}/cm_over3.params.yaml (65%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/04.constructor_overload_declarations => 08.function_method_and_constructor_overloading/03.constructor_overloading}/co1_over.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/03.constructor_overloading/co1_over.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/04.constructor_overload_declarations => 08.function_method_and_constructor_overloading/03.constructor_overloading}/co2_over.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/04.constructor_overload_declarations => 08.function_method_and_constructor_overloading/03.constructor_overloading}/co2_over.params.yaml (76%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/04.constructor_overload_declarations => 08.function_method_and_constructor_overloading/03.constructor_overloading}/co3_over.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{09.overload_declarations/04.constructor_overload_declarations => 08.function_method_and_constructor_overloading/03.constructor_overloading}/co3_over.params.yaml (71%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/04.declaration_distinguishable_by_signatures/dist.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/04.declaration_distinguishable_by_signatures/dist.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/05.typescript_overload_signatures/overload.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/05.typescript_overload_signatures/overload.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/05.typescript_overload_signatures/overload_neg.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/08.function_method_and_constructor_overloading/05.typescript_overload_signatures/overload_neg.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat10.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat11.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat5.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat6.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat7.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat8.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/01.native_functions/nat9.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/02.native_methods/native_method_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/02.native_methods/native_method_declaration_with_body.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/02.native_methods/native_method_declaration_with_keywords.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/02.native_methods/native_method_declaration_with_keywords.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/03.native_constructors/natc1_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/03.native_constructors/natc1_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/03.native_constructors/natc1_3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/03.native_constructors/natc_local_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{10.native_functions_and_methods => 09.native_functions_and_methods}/03.native_constructors/natc_local_2.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_3.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_4.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_5.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_5.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_6.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/legacy_negative/fn_legacy_overload_6.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/module.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/not_accessible_function_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/not_accessible_function_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_export.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_export.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_location.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_location.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_of_overload_declaration_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_of_overload_declaration_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_of_overload_signature_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/01.function_overload_declarations/overload_of_overload_signature_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/02.class_method_overload_declarations/cm_over1.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations/im_over2.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations/multiple_interfaces_inheritance.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations/single_interface_overload.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/03.interface_method_overload_declarations/single_interface_overload.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/09.overload_declarations/04.constructor_overload_declarations/co1_over.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/01.final_classes/extend_final_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/01.final_classes/fc.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/01.final_classes/fc.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/01.final_classes/final_class_declaration.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/01.final_classes/final_class_declaration_and_inheritance.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/01.final_classes/override_methods_of_final_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_declaration_with_modifiers_negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_declaration_with_modifiers_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_declaration_with_modifiers_positive.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_declaration_with_modifiers_positive.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_method_call.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_method_call_from_another_final_method.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_method_derived_class_call.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_method_inside_class_call.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/final_with_overrided_method.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/fm.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/fm.params.yaml (97%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/hiding_final_method.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{11.classes_experimental => 10.final_classes_and_methods}/02.final_methods/overriding_final_method.ets (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/ConstructorNameOverload.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/NameAsReferenceBad.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/ShortFormCall_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/ShortFormCall_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/ShortFormCall_2.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/SpecExample0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/SpecExample1_Bad_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/SpecExample1_Bad_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/SpecExample1_Good_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/SpecExample1_Good_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/use_named_via_this.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/use_super_from_name.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/11.classes_experimental/03.constructor_names/use_this_from_name.ets rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/default_interface_method1.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/default_interface_method2.ets (89%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/default_interface_method_n1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/default_interface_method_n2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/default_interface_method_n3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/private_interface_methods1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{12.default_interface_method_declarations => 11.default_interface_method_declarations}/private_interface_methods2.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/01.functions_with_receiver/a.ets create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/01.functions_with_receiver/a1.ets rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/01.functions_with_receiver/functions_with_receiver.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/01.functions_with_receiver/functions_with_receiver.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/01.functions_with_receiver/functions_with_receiver_negative.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/01.functions_with_receiver/functions_with_receiver_negative.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/01.functions_with_receiver/i.ets (80%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/01.functions_with_receiver/i1.ets (81%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/02.receiver_types/functions_with_receiver.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/02.receiver_types/functions_with_receiver.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types/03.accessors_with_receiver/accessors_with_receiver_negative.ets => 12.adding_functionality_to_existing_types/02.receiver_types/functions_with_receiver_negative.ets} (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/02.receiver_types/functions_with_receiver_negative.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/03.accessors_with_receiver/accessors_with_receiver.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/03.accessors_with_receiver/accessors_with_receiver.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types/04.function_types_with_receiver/function_types_with_receiver_negative.ets => 12.adding_functionality_to_existing_types/03.accessors_with_receiver/accessors_with_receiver_negative.ets} (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/03.accessors_with_receiver/accessors_with_receiver_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/04.function_types_with_receiver/function_types_with_receiver.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/04.function_types_with_receiver/function_types_with_receiver.params.yaml (84%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/04.function_types_with_receiver/function_types_with_receiver_negative.ets rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/04.function_types_with_receiver/function_types_with_receiver_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/05.lambda_expressions_with_receiver/lambda_expressions_with_receiver.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/05.lambda_expressions_with_receiver/lambda_expressions_with_receiver.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/06.implicit_this_in_lambda/implicit_this_in_lambda.ets (97%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/12.adding_functionality_to_existing_types/06.implicit_this_in_lambda/implicit_this_in_lambda.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/06.implicit_this_in_lambda/implicit_this_in_lambda_negative.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/06.implicit_this_in_lambda/implicit_this_in_lambda_negative.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/extension_functions_array.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/extension_functions_array.params.yaml (79%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/extension_functions_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/extension_functions_class.params.yaml (82%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/extension_functions_interface.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{13.adding_functionality_to_existing_types => 12.adding_functionality_to_existing_types}/extension_functions_interface.params.yaml (84%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/01.functions_with_receiver/a.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/01.functions_with_receiver/a1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/01.functions_with_receiver/functions_with_receiver.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/01.functions_with_receiver/functions_with_receiver_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/02.receiver_types/functions_with_receiver.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/02.receiver_types/functions_with_receiver_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/02.receiver_types/functions_with_receiver_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/05.lambda_expressions_with_receiver/lambda_expressions_with_receiver.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/05.lambda_expressions_with_receiver/lambda_expressions_with_receiver_negative.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/05.lambda_expressions_with_receiver/lambda_expressions_with_receiver_negative.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.adding_functionality_to_existing_types/06.implicit_this_in_lambda/implicit_this_in_lambda.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{14.trailing_lambdas => 13.trailing_lambda}/trlambda_func.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.trailing_lambda/trlambda_func.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{14.trailing_lambdas => 13.trailing_lambda}/trlambda_met.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.trailing_lambda/trlambda_met.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{14.trailing_lambdas => 13.trailing_lambda}/trlambda_static_met.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/13.trailing_lambda/trlambda_static_met.params.yaml rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getname.ets (93%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getname_1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getvalue_0.ets (90%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getvalue_1.ets (88%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getvalue_tostring.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getvalue_tostring_1.ets (91%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getvalueof.ets (77%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_getvalueof_1.ets (78%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_pipeline.ets (82%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_values.ets (85%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{04.enumerations_experimental/02.enumeration_methods => 14.enumeration_methods}/enum_type_methods_values_1.ets (84%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/14.trailing_lambdas/trlambda_ctor.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/14.trailing_lambdas/trlambda_ctor.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/14.trailing_lambdas/trlambda_func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/14.trailing_lambdas/trlambda_met.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/14.trailing_lambdas/trlambda_static_met.params.yaml rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/04.await => 17.experimental_features/15.coroutines/awaiting_coroutine}/a.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/04.await => 17.experimental_features/15.coroutines/awaiting_coroutine}/a.params.yaml (80%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/04.await => 17.experimental_features/15.coroutines/awaiting_coroutine}/a_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/04.await => 17.experimental_features/15.coroutines/awaiting_coroutine}/a_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental/generics_nonull_return_ext.ets => 15.coroutines/awaiting_coroutine/awaiting_coroutine_ext.ets} (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/04.await => 17.experimental_features/15.coroutines/awaiting_coroutine}/awaiting_coroutine_ext.params.yaml (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/15.coroutines/coroutines_ext.ets rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/04.coroutines => 17.experimental_features/15.coroutines}/coroutines_ext.params.yaml (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/05.promise => 17.experimental_features/15.coroutines/promise_class}/p.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/05.promise => 17.experimental_features/15.coroutines/promise_class}/p.params.yaml (92%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/afunc.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/afunc.params.yaml (75%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/afunc_n.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/afunc_n.params.yaml (81%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions0.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions10.ets (93%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions11.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions12.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions14.ets (93%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions15.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions16.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions17.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions18.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions19.ets (93%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions2.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions20.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions21.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions22.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions23.ets (91%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions24.ets (87%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions25.ets (93%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions26.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions27.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions28.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions29.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions30.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions31.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions4.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions5.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions6.ets (93%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions7.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions8.ets (90%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api => 17.experimental_features/16.async_functions_and_methods}/01.async_functions/async_functions9.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/ameth.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/ameth.params.yaml (76%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/ameth_n.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/ameth_n.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method0.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method1.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method10.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method11.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method12.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method13.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method14.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method15.ets (92%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method16.ets (88%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method17.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method18.ets (97%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method19.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method2.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method20.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method21.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method22.ets (92%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method23.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method24.ets (92%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method25.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method26.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method27.ets (91%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method28.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method29.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method3.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method30.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method4.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method5.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method6.ets (96%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method7.ets (93%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method8.ets (95%) rename static_core/plugins/ets/tests/ets-templates/{16.concurrency/03.asynchronous_api/03.async_methods => 17.experimental_features/16.async_functions_and_methods/02.async_methods}/async_method9.ets (96%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/16.packages/init_once/test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/16.packages/init_order/test.ets rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/Test/internal_interface_access_in_package.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/Test02/class_c.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/Test02/internal_access_in_package02.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/Test03/internal_access_in_package03.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/internal_constructor_access_in_package.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/internal_member_access_in_package.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/Test/internal_member_access_in_package.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/internal_constructor_access.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/internal_interface_access.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/internal_member_access.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/02.internal_access_modifier => 17.packages/01.internal_access_modifier}/internal_member_access.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p1/init1_1.ets (97%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p2/init2_1.ets (94%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p3/main_test.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p3/packageP3/init3_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p3/packageP3/init3_2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p4/init4_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p4/init4_2.ets (97%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p5/init5_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/{15.semantic_rules/12.static_initialization/package_initializer => 17.experimental_features/17.packages/02.package_initializer}/p6/init6_1.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/bad_package_declarations/bad_package_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/bad_package_declarations/bad_package_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkg_a/pkg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkg_a/pkg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkg_b/pkg.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkg_b/pkg.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_0.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_0.params.yaml (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_a.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_a.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_a2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_a2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_a3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_a3.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_ab.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_ab.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_ab2.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_ab2.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_ab3.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/pkgs_ab3.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/shadow_function_alias.ets (97%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/shadow_function_explicit_name.ets (97%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages/import_and_overloading_of_function_names => 17.packages/03.import_and_overloading_of_function_names}/shadow_function_name.ets (97%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages => 17.packages}/package_declarations.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{16.packages => 17.packages}/package_declarations.params.yaml (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex0.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex1.ets (90%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex2.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex2_1.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex3.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex3_1.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex4.ets (96%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex4_1.ets (93%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/01.non_nullish_type_parameter/ex5.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return0.ets (94%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return00.ets (92%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return1.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return11.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return3.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return5.ets (95%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return7.ets (100%) rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return9.ets (95%) create mode 100644 static_core/plugins/ets/tests/ets-templates/17.experimental_features/18.generics_experimental/generics_nonull_return_ext.ets rename static_core/plugins/ets/tests/ets-templates/17.experimental_features/{17.generics_experimental => 18.generics_experimental}/generics_nonull_return_ext.params.yaml (89%) delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/AnnotationTargets.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/AnnotationTargets.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/Annotations.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/ClassAnnoTest.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/duplicated_target_0.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/duplicated_target_1.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/18.annotations/05.standard_annotations/02.target_annotation/use_annotation_with_type_bad.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/03.getting_type_via_reflection/how_to_get_type_via_reflection_ext.params.yaml rename static_core/plugins/ets/tests/ets-templates/20.implementation_details/{03.getting_type_via_reflection => 03.how_to_get_type_via_reflection}/how_to_get_type_via_reflection_ext.ets (93%) create mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/03.how_to_get_type_via_reflection/how_to_get_type_via_reflection_ext.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/init_module_first.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/init_module_first.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/init_module_second.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/init_module_second.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_cte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_cte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_cte_module.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_rte.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_rte.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_rte.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/negative_test_rte_module.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/positive_test.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/positive_test.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates/20.implementation_details/04.ensuring_module_initialization/shared_vars_module.ets rename static_core/plugins/ets/tests/ets-templates/20.implementation_details/{06.keyword_struct_and_arkui => 05.keyword_struct_and_arkui}/struct_class_test.ets (86%) rename static_core/plugins/ets/tests/ets-templates/20.implementation_details/{06.keyword_struct_and_arkui => 05.keyword_struct_and_arkui}/struct_empty_class.ets (100%) rename static_core/plugins/ets/tests/ets-templates/20.implementation_details/{06.keyword_struct_and_arkui => 05.keyword_struct_and_arkui}/struct_extends_class.ets (82%) rename static_core/plugins/ets/tests/ets-templates/20.implementation_details/{06.keyword_struct_and_arkui => 05.keyword_struct_and_arkui}/struct_implements_interface.ets (74%) rename static_core/plugins/ets/tests/ets-templates/20.implementation_details/{06.keyword_struct_and_arkui => 05.keyword_struct_and_arkui}/struct_simple_class.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/20.implementation_details/07.outofmemoryerror_for_primitive_type_operations => ets-templates/20.implementation_details/06.outofmemoryerror_for_primitive_type_operations}/test.ets (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated/20.implementation_details/07.outofmemoryerror_for_primitive_type_operations => ets-templates/20.implementation_details/06.outofmemoryerror_for_primitive_type_operations}/test.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/contant_and_function.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/contant_and_function.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/cycle_assignment.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/cycle_assignment.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/two_constants.ets (90%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/two_constants.params.yaml (100%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/unique_function.ets (96%) rename static_core/plugins/ets/tests/{ets-templates_deprecated => ets-templates}/20.implementation_details/07.uniqueness_of_functional_objects/unique_function.params.yaml (100%) delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/03.types/06.value_types/01.integer_types_and_operations/conversions/conversions.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts/prim_narrowing.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/02.assignment-like_contexts/prim_wide_narrow.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/04.casting_contexts_and_conversions/01.numeric_casting_conversions/unboxing.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/sample_p.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/04.casting_contexts_and_conversions/04.casting_conversions_from_type_parameter/value_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/04.casting_contexts_and_conversions/identity.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/assn_var/assn-var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_arr/comp-arr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-class-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/comp_obj/comp-intf.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_const/decl-const-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-field-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_field/decl-st-field-n3.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/03.constant_narrowing_integer_conversion/decl_var/decl-var-n3.params.yaml create mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/ase.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/assn_var/assn-var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_cons/call-cons.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_func/call-func.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_lmbd/call-lmbd.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/call_meth/call-meth.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_arr/comp-arr.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-clss.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/comp_obj/comp-intf.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_const/decl-const.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_field/decl-field.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/05.widening_reference_conversions/decl_var/decl-var.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/assn_var/assn-var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_cons/call-cons.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_func/call-func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_lmbd/call-lmbd.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/call_meth/call-meth.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_arr/comp-arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/comp_obj/comp-clss.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_field/decl-field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/08.function_types_conversions/decl_var/decl-var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/assn_var/assn-var.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/assn_var/assn-var_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_cons/call-cons_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_func/call-func_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_lmbd/call-lmbd.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_lmbd/call-lmbd_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/call_meth/call-meth_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_arr/comp-arr.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_arr/comp-arr_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_obj/comp-obj.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/comp_obj/comp-obj_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_field/decl-field.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_field/decl-field_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_var/decl-var.ets delete mode 100755 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/09.tuple_types_conversions/decl_var/decl-var_p.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/assn_var/assn-var.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_cons/call-cons.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_func/call-func.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_lmbd/call-lmbd.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/call_meth/call-meth.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_arr/comp-arr.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-intf.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/comp_obj/comp-obj.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_field/decl-field.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/06.contexts_and_conversions/05.implicit_conversions/12.literal_type_conversions/decl_var/decl-var.ets rename static_core/plugins/ets/tests/ets-templates_deprecated/09.classes/03.class_members/{conn => con}/pkgmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/09.classes/03.class_members/con/pkgmod.params.yaml rename static_core/plugins/ets/tests/ets-templates_deprecated/09.classes/03.class_members/{conn => con}/sepmod.ets (100%) create mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/09.classes/03.class_members/con/sepmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/09.classes/03.class_members/conn/pkgmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/09.classes/03.class_members/conn/sepmod.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/15.semantic_rules/09.overriding/01.overriding_in_classes/different_access_modifiers.ets delete mode 100644 static_core/plugins/ets/tests/ets-templates_deprecated/15.semantic_rules/09.overriding/01.overriding_in_classes/different_access_modifiers.params.yaml delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/ArrayFlatTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/BigIntTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/BuiltinsRegexpTest.ets delete mode 100755 static_core/plugins/ets/tests/ets_func_tests/escompat/DateTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Float32ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Float64ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Int16ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Int32ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Int8ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/JsonStringifyArrayTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/MapForBigIntTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/MapSetBucketTest.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/ReflectGet.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/ReflectGetBadCases.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/ReflectHas.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/ReflectOwnKeys.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/ReflectSet.ets delete mode 100755 static_core/plugins/ets/tests/ets_func_tests/escompat/RegExpDtsTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/RegExpFlagdTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/RegExpTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/TypedArraySetUnsafe.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/TypedUArraySetUnsafe.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Uint16ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Uint32ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Uint8ArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/escompat/Uint8ClampedArrayFromTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/14900.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/15278_2.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/15998_0.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/15998_1.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/16328.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/16364.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/16657.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/17216.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/17497_0.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/17497_1.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/17497_2.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/18581.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/20386_0.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/20386_1.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/20386_2.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/20386_3.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/20944.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/21143.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/21151.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/21379.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/22051/22051.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/22051/other.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/22177.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/22981/22981.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/22981/other.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23383/23383.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23383/other.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23623.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23652.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23654.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23659_0.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23659_1.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23683.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/23735.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/24747.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/25423/25423.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/25423/other.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/25834.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/26215_0.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/26215_1.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/regression/27353.ets delete mode 100644 "static_core/plugins/ets/tests/ets_func_tests/regression/\303\251\303\250\303\240\303\262.ets" delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/spec/03.types/References_Types/Type_undefined/define/define-class-member-as-undefined-in-other-class_1.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/spec/07.expressions/7.32.Lambda_Expressions/correctAsyncLambdaReturnValue.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/spec/07.expressions/7.32.Lambda_Expressions/incorrectAsyncLambdaReturnValue.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/concurrency/eaworker_message.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/concurrency/messageHandler_basic_interface.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/concurrency/message_basic_interface.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/concurrency/workerlocal_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/BlockingQueue/AddAndPollStress.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/TrivialSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_add_and_poll.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_first_end_concurrent.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_first_end_concurrent.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_no_concurrent.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_no_concurrent.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_push_and_pop.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_simple_order.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/blocking_queue/blocking_queue_test_count.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_clear.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_delete.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_get_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_has.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_has2.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_iters.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_remove.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_replace.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_set_get_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_concurrent_set_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_fails.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/containers/concurrency/concurrent_hash_map/concurrent_hash_map_not_concurrent_tests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ArrayTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/CharTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ClassTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ConsoleArrayJoin.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ConsoleArrayJoin.ets.expected rename static_core/plugins/ets/tests/ets_func_tests/std/core/{ConsoleAssertTest.ets.expected.err => ConsoleAssertTest.ets.expected} (100%) create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ConsoleErrorTest.ets.expected delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ConsoleErrorTest.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ConsoleTimeTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/DeepCopyTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/EAWorker_out_of_coro_creation.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ErrorsTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/FieldAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/FunctionTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/InterfaceTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/MethodAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/MethodInvokeUndefinedTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/MirrorClassAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/NullTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/NumericTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/NumericTypeAllTests.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ParameterAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ReflectLambdaTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/SortInternalTest.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/SortInternalTestBoolean.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/SortInternalTestByte.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/SortInternalTestInt.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/SortInternalTestShort.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/StringGetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/StringLengthNaNTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/StringTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/TypeAssignableTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/TypeEqualsTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/TypeOfTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/TypeToStringTests.ets create mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/TypedArrayReflectSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/TypedArrayTransformTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/UndefinedTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/ValueAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/VoidTypeAllTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/json/JsonElementParseTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/json/JsonStringifyBigIntTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/json/JsonStringifyParseBigIntTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/core/json/JsonStringifyTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/debug/CountInstancesOfClass.ets delete mode 100644 static_core/plugins/ets/tests/ets_func_tests/std/math/Log10IntExceptionTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/buffer/BufferCopyWriteConcatTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/url/UrlTestXtsCases.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/CallbackWrapperTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Deque/DequeHasPopTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Deque/DequeInsertTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Deque/DequeTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/GenerateRandomBinaryUUIDTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/HashSet/HashClearValuesForEachTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/HashSet/HashSetEntriesIteratorTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/HashSet/HashSetHasAddRemoveTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/HashSet/HashSetLengthConstructorIsEmptyTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/HashSet/HashSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapClearKeysValuesTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapConstructorSetAllSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapEntriesRemoveGetKeyAtTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapForEachIteratorTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapGetIndexOfKeyValueTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapGetKeysValuesSetValueAtTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapGetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapHasAllHasKeyValueIncreaseCapacityToTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapIsEmptyTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapRemoveAtSetValueAtGetValueAtTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightWeightMapToStringTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightMap/LightweightMapTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetForEachIteratorEntriesTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetGetValueAtToStringTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetHasRemoveClearTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetIncreaseCapacityToRemoveAtToArrayValuesTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetIsEmptyAddAddAllHasAllTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetJsonTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetJsonTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LightWeightSet/LightWeightSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LinkedList/LinkedListAddTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LinkedList/LinkedListClearCloneTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LinkedList/LinkedListForEachTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LinkedList/LinkedListGetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/LinkedList/LinkedListTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/List/ListForEachTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/List/ListGetIndexofTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/List/ListInsertHasTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/List/ListReplaceSortTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/List/ListSetTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/List/ListTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/ParseUUIDTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayCloneAddTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayForEachTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayGetHasTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayGetIndexOfTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayGetSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayRemoveTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PlainArray/PlainArrayToStringClearTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/PromisifyTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Queue/QueueAddPopGetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Queue/QueueForEachTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Queue/QueueTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Stack/StackLocateForEachTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Stack/StackPushPopPeekTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/Stack/StackTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TextDecoder/TextDecoderCreateTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TextDecoder/TextDecoderDecodeToStringTest.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TextDecoderTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TextEncoder/TextEncoderConstructorTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TextEncoder/TextEncoderEncodeIntoTest.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TextEncoderTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapClearKeysValuesEntriesTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapConstructorIsEmptyGetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapGetFirstKeyGetLastKeyRemoveTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapHasKeyHasValueSetTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapReplaceForEachTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapSetAllGetLowerKeyGetHigherKeyTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeMap/TreeMapTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeSet/TreeSetConstructorIsEmptyHasTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeSet/TreeSetForEachEntriesTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeSet/TreeSetGetFirstValuleGetLastValueAddRemoveTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeSet/TreeSetGetLowerValueGetHigherValueClearTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeSet/TreeSetPopFirstPopLastValuesTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/TreeSet/TreeSetTest.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/json/Has.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/json/Parse.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/json/Stringify.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamDuplexTest.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamDuplexTestPart1.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamDuplexTestPart2.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart1.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart2.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart3.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart4.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart5.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart6.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamPipeEnCodingTestPart7.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamReadableTest.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamReadableTestPart1.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamReadableTestPart2.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamReadableTestPart3.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamReadableTestPart4.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamTransformTest.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamTransformTestPart1.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamTransformTestPart2.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTest.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart1.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart2.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart3.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart4.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart5.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart6.ets delete mode 100755 static_core/plugins/ets/tests/ets_sdk/api/@ohos/util/stream/StreamWritableTestPart7.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerAddEmptyElementTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerEndElementTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerErrorTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerSetCdataTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerSetCommentTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerSetDocTypeTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlDynamicSerializer/XmlDynamicSerializerSetTextTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlPullParserTest10.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlPullParserTest11.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlPullParserTest3.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlPullParserTest5.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlPullParserTest7.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlPullParserTest9.ets.expected.err delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlSerializer/XmlSerializerAddEmptyElementTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlSerializer/XmlSerializerSetCDATATest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlSerializer/XmlSerializerSetCommentTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlSerializer/XmlSerializerSetDeclarationTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlSerializer/XmlSerializerSetDocTypeTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/api/@ohos/xml/XmlSerializer/XmlSerializerSetTextTest.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/collections/BitVector/getIndexOfTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/collections/BitVector/getLastIndexOfTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/acosTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/acoshTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/acoshTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/addTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/asinTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/asinhTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/atan2Tests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/atan2TestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/atanTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/atanhTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/cbrtTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/cbrtTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/cbrtTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/cbrtTestsPart4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/cbrtTestsPart5.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/cosTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/coshTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/coshTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/divStaticTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/divTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/dividedToIntegerByTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/dpSdTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/expTests.ets create mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart5.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart6.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/hypotTestsPart7.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/intPowTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart10.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart11.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart12.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart5.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart6.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart7.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart8.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/lnTestsPart9.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/log10TestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/log10TestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/log2TestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart5.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart6.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/logTestsPart7.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/modTests1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/modTests2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/modTests3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/modTests4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/mulTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/powTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/powTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/powTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sinTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sinTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sinTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sinTestsPart4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sinTestsPart5.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sinhTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sqrtStaticTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sqrtTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/sqrtTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/subTests.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanTestsPart2.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanTestsPart4.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanTestsPart5.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanTestsPart6.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/tanhTestsPart1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/toBinaryTestsPart3.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/toFractionTests1.ets delete mode 100644 static_core/plugins/ets/tests/ets_sdk/arkts/@arkts/math/Decimal/toFractionTests2.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/any/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/any/relaxed_any.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/dfx/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/dfx/coroutine_dfx_test.cpp delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/dfx/coroutine_dfx_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/sync_primitives.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/unhandled_rejection_event.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/unhandled_rejection_promise.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/coroutines/worker_group.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/generics/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/intrinsics/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/profiler/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/profiler/profile_saver_test.cpp delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/profiler/profile_saver_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/strings/string_concat.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/tooling/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/tooling/profile_arkapi_test.cpp delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/tooling/profile_arkapi_test.ets delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/correct_union_arg.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/correct_union_arg_2.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/correct_union_arg_redecl.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/correct_union_override.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/correct_union_override_2.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_arg.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_not_in_boot_context.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_override_multi1.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_override_multi2.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_override_multi3.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_override_multi4.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/neg_union_override_multi5.pa delete mode 100644 static_core/plugins/ets/tests/ets_test_suite/unions/unions_general.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/serialize/BUILD.gn delete mode 100644 static_core/plugins/ets/tests/interop_js/serialize/helpers.js delete mode 100644 static_core/plugins/ets/tests/interop_js/serialize/serialize_test.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/serialize/serialize_test.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/serialize/serialize_test.js delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/ani_any/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/ani_any/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/ani_any/ts_to_ets/ts_ani_any.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/ani_any/ts_to_ets/ts_ani_any.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/ani_any/ts_to_ets/ts_ani_any.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/arkts_interop_js/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/arkts_interop_js/ts_to_ets/ts_arkts_interop_js.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/arkts_interop_js/ts_to_ets/ts_arkts_interop_js.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/arkts_interop_js/ts_to_ets/ts_arkts_interop_js.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/array/ts_to_ets/ts_array.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/concurrency/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/concurrency/concurrency_helpers.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/concurrency/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/concurrency/ts_to_ets/eworker_interop_tests.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/concurrency/ts_to_ets/taskpool_interop_tests.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/concurrency/ts_to_ets/test_interop_concurrency.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/export_default/lib6.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/export_default/lib6.expected delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/jsdoc/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/jsdoc/jsdoc.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/jsdoc/lib.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/jsdoc/lib.expected delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/declgen_ets2ts/jsdoc/main.ts rename static_core/plugins/ets/tests/interop_js/tests/{arkts_interop_js => eworker}/CMakeLists.txt (100%) create mode 100644 static_core/plugins/ets/tests/interop_js/tests/eworker/ts_to_ets/CMakeLists.txt create mode 100644 static_core/plugins/ets/tests/interop_js/tests/eworker/ts_to_ets/eworker_helpers.ts create mode 100644 static_core/plugins/ets/tests/interop_js/tests/eworker/ts_to_ets/eworker_interop_tests.ets create mode 100644 static_core/plugins/ets/tests/interop_js/tests/eworker/ts_to_ets/test_interop_eworker.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/for_of/ts_to_sts/objects_with_symbol_iterator/objects_with_symbol_iterator.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/for_of/ts_to_sts/simple_array/simple_array.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/ts_to_ets/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/ts_to_ets/test_sts_function.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/ts_to_ets/ts_function.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/ts_to_ets/ts_function.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/function_with_arguments_test/ts_to_ets/ts_function.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/interop_isa/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/interop_isa/index.js delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/interop_isa/test.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/interop_isa/test.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/interop_isa/test.pa delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/promise/package-lock.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/prototype_static_flag/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/prototype_static_flag/ets_to_ts/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/prototype_static_flag/ets_to_ts/export.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/prototype_static_flag/ets_to_ts/import.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/prototype_static_flag/ets_to_ts/prototype_static_flag.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/strict_equality/strict_equality.d.ets rename static_core/plugins/ets/tests/interop_js/tests/{test_interface_optional_args => taskpool}/CMakeLists.txt (100%) create mode 100644 static_core/plugins/ets/tests/interop_js/tests/taskpool/ts_to_ets/CMakeLists.txt create mode 100644 static_core/plugins/ets/tests/interop_js/tests/taskpool/ts_to_ets/taskpool_helpers.ts create mode 100644 static_core/plugins/ets/tests/interop_js/tests/taskpool/ts_to_ets/taskpool_interop_tests.ets create mode 100644 static_core/plugins/ets/tests/interop_js/tests/taskpool/ts_to_ets/test_interop_taskpool.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_any/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_any/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_any/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_any/test_any.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_any/test_any_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_any/test_any_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_classtype_conversion/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_classtype_conversion/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_classtype_conversion/classtype_conversion.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_classtype_conversion/classtype_conversion.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_classtype_conversion/classtype_conversion.js delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_function/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_function/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_function/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_function/test_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_function/test_interop.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_function/test_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_general_purpose_types/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_general_purpose_types/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_general_purpose_types/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_general_purpose_types/test_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_general_purpose_types/test_interop.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_general_purpose_types/test_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import/test_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import/test_interop.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import/test_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_error/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_error/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_error/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_error/test_import_dynamic_error.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_error/test_import_dynamic_error_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_error/test_import_dynamic_error_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_function/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_function/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_function/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_function/test_import_dynamic_function.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_function/test_import_dynamic_function_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_import_dynamic_function/test_import_dynamic_function_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_incorrect_conversion_types/ts_to_arkts/incorrect_conversion_types.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_init_module/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_init_module/test_init_module.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_init_module/test_init_module_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_init_module/test_init_module_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_interface_optional_args/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_interface_optional_args/ts_to_ets/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_interface_optional_args/ts_to_ets/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_interface_optional_args/ts_to_ets/test_interface_optional_args.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_interface_optional_args/ts_to_ets/test_interface_optional_args_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_interface_optional_args/ts_to_ets/test_interface_optional_args_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_namespaces/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_namespaces/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_namespaces/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_namespaces/test_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_namespaces/test_interop.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_namespaces/test_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_object_literal/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_object_literal/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_object_literal/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_object_literal/test_object_literal.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_object_literal/test_object_literal_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_object_literal/test_object_literal_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_xref_object/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_xref_object/arktsconfig.in.json delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_xref_object/testDecl.d.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_xref_object/test_xref_object.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_xref_object/test_xref_object_dynamic.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/test_xref_object/test_xref_object_static.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ets_to_ts/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ets_to_ts/ets_tuple.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ets_to_ts/test_js_use_ets_tuple.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ets_to_ts/test_js_use_ets_tuple.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ts_to_ets/ets_tuple.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ts_to_ets/test_js_tuple_cannot_assign_to_ets.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple/ts_to_ets/test_js_tuple_cannot_assign_to_ets.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple_mirror_classes/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple_mirror_classes/ets_interop_js_test__tuple_mirror_classes.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/tuple_mirror_classes/ets_interop_js_test__tuple_mirror_classes.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ets_to_ts/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ets_to_ts/ets_readonly.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ets_to_ts/ets_readonly.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ets_to_ts/test_ts_readonly.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ts_to_ets/test_sts_readonly.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ts_to_ets/ts_readonly.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_readonly/ts_to_ets/ts_readonly.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ets_to_ts/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ets_to_ts/ets_required.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ets_to_ts/ets_required.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ets_to_ts/test_ts_required.ts delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ts_to_ets/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ts_to_ets/test_sts_required.ets delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ts_to_ets/ts_required.cpp delete mode 100644 static_core/plugins/ets/tests/interop_js/tests/utilitytype_required/ts_to_ets/ts_required.ts delete mode 100644 static_core/plugins/ets/tests/libani_helpers/tests/async_work/send_event_test.cpp delete mode 100644 static_core/plugins/ets/tests/libani_helpers/tests/async_work/send_event_test_managed.cpp delete mode 100644 static_core/plugins/ets/tests/libani_helpers/tests/async_work/send_event_test_managed.ets create mode 100644 static_core/plugins/ets/tests/mock/AccessingObjectsFieldsTest.ets create mode 100644 static_core/plugins/ets/tests/mock/CallingMethodsTest.ets create mode 100644 static_core/plugins/ets/tests/mock/ClinitNativeTest.ets create mode 100644 static_core/plugins/ets/tests/mock/EffectiveTypesTest.ets create mode 100644 static_core/plugins/ets/tests/mock/FinalFieldNativeTest.ets create mode 100644 static_core/plugins/ets/tests/mock/RegisteringNativeMethodsTest.ets create mode 100644 static_core/plugins/ets/tests/mock/StackReferenceCheckTest.ets delete mode 100644 static_core/plugins/ets/tests/mock/UncaughtErrorHandlerTest.ets delete mode 100644 static_core/plugins/ets/tests/mock/UnhandledRejectionRecursiveTest.ets create mode 100644 static_core/plugins/ets/tests/mock/accessing_objects_fields_test_1.cpp create mode 100644 static_core/plugins/ets/tests/mock/accessing_objects_fields_test_2.cpp create mode 100644 static_core/plugins/ets/tests/mock/accessing_objects_fields_test_3.cpp create mode 100644 static_core/plugins/ets/tests/mock/accessing_objects_fields_test_helper.h create mode 100644 static_core/plugins/ets/tests/mock/array_native_test.cpp create mode 100644 static_core/plugins/ets/tests/mock/array_native_test_2.cpp create mode 100644 static_core/plugins/ets/tests/mock/array_native_test_3.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_1.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_2.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_3.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_4.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_5.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_6.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_7.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_8.cpp create mode 100644 static_core/plugins/ets/tests/mock/calling_methods_test_helper.h create mode 100644 static_core/plugins/ets/tests/mock/clinit_native_test.cpp create mode 100644 static_core/plugins/ets/tests/mock/effective_types_test.cpp create mode 100644 static_core/plugins/ets/tests/mock/final_field_native_test.cpp create mode 100644 static_core/plugins/ets/tests/mock/registering_native_methods_test.cpp create mode 100644 static_core/plugins/ets/tests/mock/stack_reference_check_test.cpp create mode 100644 static_core/plugins/ets/tests/mock/test_exception.cpp delete mode 100644 static_core/plugins/ets/tests/mock/uncaught_error_handler_test.cpp delete mode 100644 static_core/plugins/ets/tests/mock/unhandled_rejection_recursive_test.cpp create mode 100644 static_core/plugins/ets/tests/napi/CMakeLists.txt create mode 100644 static_core/plugins/ets/tests/napi/bridges/CMakeLists.txt create mode 100644 static_core/plugins/ets/tests/napi/bridges/lib/EtsNapiTests.cpp create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-boolean.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-byte.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-char.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-double.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-float.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-int.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-long.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-short.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/arrays-string.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-boolean.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-byte.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-char.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-double.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-float.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-int.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-long.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-short.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/return-string.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/segv-managed-thread.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/segv-native-thread.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-boolean-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-byte-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-char-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-double-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-float-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-int-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-long-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-short-11.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-01.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-02.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-03.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-04.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-05.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-06.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-07.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-08.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-09.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-10.pa create mode 100644 static_core/plugins/ets/tests/napi/bridges/pa/types-string-11.pa create mode 100755 static_core/plugins/ets/tests/napi/bridges/scripts/test.sh create mode 100644 static_core/plugins/ets/tests/napi/ets/EtsnapiNameTest.ets create mode 100644 static_core/plugins/ets/tests/napi/ets/EtsnapiVersionHookTest.ets create mode 100644 static_core/plugins/ets/tests/napi/ets/FakeNativeTest.ets create mode 100644 static_core/plugins/ets/tests/napi/ets/InnerNativeTest.ets create mode 100644 static_core/plugins/ets/tests/napi/ets/InterfaceNativeTest.ets create mode 100644 static_core/plugins/ets/tests/napi/etsnative/CMakeLists.txt rename static_core/plugins/ets/tests/{ani/tests/load_library => napi/etsnative}/etsnative_library_path_test.cpp (78%) create mode 100644 static_core/plugins/ets/tests/napi/etsnative/etsnative_test.cpp create mode 100644 static_core/plugins/ets/tests/napi/lib/EtsnapiNameTest.cpp create mode 100644 static_core/plugins/ets/tests/napi/lib/EtsnapiNameTest.h create mode 100644 static_core/plugins/ets/tests/napi/lib/EtsnapiVersionHookTest.cpp create mode 100644 static_core/plugins/ets/tests/napi/lib/InnerNativeTest.cpp create mode 100644 static_core/plugins/ets/tests/napi/lib/InterfaceNativeTest.cpp delete mode 100644 static_core/plugins/ets/tests/native/atomic_int/CMakeLists.txt delete mode 100644 static_core/plugins/ets/tests/native/atomic_int/atomic_int_test.cpp delete mode 100644 static_core/plugins/ets/tests/native/atomic_int/atomic_int_test.ets create mode 100644 static_core/plugins/ets/tests/native/native_methods/CMakeLists.txt create mode 100644 static_core/plugins/ets/tests/native/native_methods/register_native_methods_test.cpp create mode 100644 static_core/plugins/ets/tests/native/native_methods/register_native_methods_test.ets create mode 100644 static_core/plugins/ets/tests/native/promise/CMakeLists.txt create mode 100644 static_core/plugins/ets/tests/native/promise/promise_test.cpp create mode 100644 static_core/plugins/ets/tests/native/promise/promise_test.ets delete mode 100644 static_core/plugins/ets/tests/runtime/static_object_accessor_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/static_type_converter_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_atomic_flag_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_atomic_int_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_mirror_class_test_base.h delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_stacktrace_element_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_typed_arrays_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_typed_unsigned_arrays_test.cpp delete mode 100644 static_core/plugins/ets/tests/runtime/types/ets_union_test.cpp create mode 100644 static_core/plugins/ets/tests/stdlib-templates/std/containers/list.std_containers_ArrayAsListObject_instance.yaml create mode 100644 static_core/plugins/ets/tests/stdlib-templates/std/containers/std_containers_ArrayAsListObject_instance.ets rename static_core/plugins/ets/tests/test-lists/{declgenets2ts/declgen-ets2ts-sdk/declgen-ets2ts-sdk-excluded.txt => declgenets2ets_isolated/declgen-ets2ets-isolated-excluded.txt} (100%) create mode 100644 static_core/plugins/ets/tests/test-lists/declgenets2ets_isolated/declgen-ets2ets-isolated-ignored.txt delete mode 100644 static_core/plugins/ets/tests/test-lists/declgenets2ts/declgen-ets2ts-sdk/declgen-ets2ts-sdk-ignored.txt delete mode 100644 static_core/plugins/ets/tests/test-lists/ets-cts/ets-cts-ignored-ARM64-JIT-REPEATS.txt delete mode 100644 static_core/plugins/ets/tests/test-lists/system/system-ignored.txt rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-array-structure.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-array-structure.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-array-structure.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-clasases-subtyping-extends.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-clasases-subtyping-extends.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-clasases-subtyping-extends.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-abstract-classes.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-abstract-classes.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-abstract-classes.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-async-static-methods.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-async-static-methods.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-async-static-methods.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-aync-instance-methods.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-aync-instance-methods.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-aync-instance-methods.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-getters-and-setters.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-getters-and-setters.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-getters-and-setters.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-instance-methods-returning-this.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-instance-methods-returning-this.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-instance-methods-returning-this.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-overload-instance-methods.d.ets (83%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-overload-instance-methods.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-overload-instance-methods.ts (68%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-overload-static-methods.d.ets (81%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-overload-static-methods.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-overload-static-methods.ts (67%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-static-method-with-rest-parameters.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-static-method-with-rest-parameters.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-static-method-with-rest-parameters.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-classes-static-methods-with-default-parameters.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-classes-static-methods-with-default-parameters.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-classes-static-methods-with-default-parameters.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-collections.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-collections.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-collections.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-contravariant.d.ets (93%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-contravariant.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-contravariant.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-data-type.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-data-type.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-data-type.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-dataview.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-dataview.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-dataview.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-error.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-error.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-error.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-esobject-is-any.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-esobject-is-any.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-esobject-is-any.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-export-default-abstract-class.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-export-default-abstract-class.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-export-default-abstract-class.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-function-aync-functions.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-function-aync-functions.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-function-aync-functions.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-function-overloaded-functions.d.ets (82%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-function-overloaded-functions.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-function-overloaded-functions.ts (70%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-function-with-arrow-structure.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-function-with-arrow-structure.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-function-with-arrow-structure.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-function-with-callback.d.ets (87%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-function-with-callback.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-function-with-callback.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-function-with-default-parameters.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-function-with-default-parameters.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-function-with-default-parameters.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-function-with-rest-parameters.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-function-with-rest-parameters.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-function-with-rest-parameters.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-general-purpose-types-boxed.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-general-purpose-types-boxed.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-general-purpose-types-boxed.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-general-purpose-types-enumerations.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-general-purpose-types-enumerations.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-general-purpose-types-enumerations.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-general-purpose-types-never-type.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-general-purpose-types-never-type.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-general-purpose-types-never-type.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-general-purpose-types-optional-type.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-general-purpose-types-optional-type.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-general-purpose-types-optional-type.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-general-purpose-types-string-literal.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-general-purpose-types-string-literal.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-general-purpose-types-string-literal.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-general-purpose-types-unions.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-general-purpose-types-unions.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-general-purpose-types-unions.ts (100%) delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/arkts-generic-functiontype.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/arkts-generic-functiontype.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/arkts-generic-functiontype.ts rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-index-signature-interface.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-index-signature-interface.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-index-signature-interface.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-interfaces-overloaded-methods.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-interfaces-overloaded-methods.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-interfaces-overloaded-methods.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-invariant.d.ets (93%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-invariant.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-invariant.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-IndexedAccessTypes.d.ets (71%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-IndexedAccessTypes.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-IndexedAccessTypes.ts (67%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-any.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-any.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-any.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-assignment-constant-bigint.d.ets (99%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-assignment-constant-bigint.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-assignment-constant-bigint.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-assignment-constant-variable.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-assignment-constant-variable.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-assignment-constant-variable.ts (100%) create mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/arkts-no-built-in-types.d.ets rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-built-in-types.json (100%) create mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/arkts-no-built-in-types.ts rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-call-optional-function.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-call-optional-function.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-call-optional-function.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-conditional-types.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-conditional-types.json (100%) mode change 100644 => 100755 rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-conditional-types.ts (100%) mode change 100644 => 100755 rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-declare-class.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-declare-class.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-declare-class.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-declare-function.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-declare-function.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-declare-function.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-declare-interface.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-declare-interface.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-declare-interface.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-duplicate-enum.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-duplicate-enum.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-duplicate-enum.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-duplicate-interfaces-class.d.ets (97%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-duplicate-interfaces-class.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-duplicate-interfaces-class.ts (95%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-enum-with-mixed-type.d.ets (98%) mode change 100644 => 100755 rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-enum-with-mixed-type.json (100%) mode change 100644 => 100755 rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-enum-with-mixed-type.ts (100%) mode change 100644 => 100755 rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-etskeyword.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-etskeyword.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-etskeyword.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-export-keyword.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-export-keyword.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-export-keyword.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-export-namespace.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-export-namespace.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-export-namespace.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-generator-function.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-generator-function.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-generator-function.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-import-keyword.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-import-keyword.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-import-keyword.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-initializer.d.ets (99%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-initializer.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-initializer.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-intersection-type.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-intersection-type.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-intersection-type.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-keyof.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-keyof.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-keyof.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-limit-extends.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-limit-extends.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-limit-extends.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-mappedtype.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-mappedtype.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-mappedtype.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-misplaced-imports.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-misplaced-imports.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-misplaced-imports.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-module.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-module.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-module.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-numeric-literal.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-numeric-literal.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-numeric-literal.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-object-bind-params.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-object-bind-params.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-object-bind-params.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-object-parameters.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-object-parameters.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-object-parameters.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-optional-member-functions.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-optional-member-functions.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-optional-member-functions.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-private-identifiers.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-private-identifiers.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-private-identifiers.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-property-access-expression.d.ets (99%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-property-access-expression.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-property-access-expression.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-symbol.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-symbol.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-symbol.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-type-generic.d.ets (81%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-type-generic.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-type-generic.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-type-literal.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-type-literal.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-type-literal.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-union-literal-generic.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-union-literal-generic.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-union-literal-generic.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-unknow.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-unknow.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-unknow.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-var.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-var.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-var.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-no-wrapper-to-primitive.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-no-wrapper-to-primitive.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-no-wrapper-to-primitive.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-operators-instanceos.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-operators-instanceos.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-operators-instanceos.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-operators-math-calculate.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-operators-math-calculate.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-operators-math-calculate.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-operators-self-inc-dec-operator.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-operators-self-inc-dec-operator.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-operators-self-inc-dec-operator.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-promise.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-promise.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-promise.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-regular-expression.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-regular-expression.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-regular-expression.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-standard-library-object.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-standard-library-object.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-standard-library-object.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-tuple-annotation.d.ets (99%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-tuple-annotation.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-tuple-annotation.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-type-aliases-type.d.ets (86%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-type-aliases-type.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-type-aliases-type.ts (94%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-typed-array.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-typed-array.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-typed-array.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-utility-types-partial.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-utility-types-partial.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-utility-types-partial.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-utility-types-readonly.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-utility-types-readonly.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-utility-types-readonly.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-utility-types-record.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-utility-types-record.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-utility-types-record.ts (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{dets_output => }/arkts-utility-types-required.d.ets (98%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{json_storage => }/arkts-utility-types-required.json (100%) rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/arkts-utility-types-required.ts (100%) delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-classes-export.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-declare-namespace.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-no-built-in-types.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-no-constructor-type.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-no-lazy-import.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-no-template-literal-type.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-no-ts-utility-type.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-reserved-function-parameter-name.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/arkts-rest-parameter-array.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dets_output/include/lib.d.ets delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-array-structure.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-clasases-subtyping-extends.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-abstract-classes.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-async-static-methods.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-aync-instance-methods.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-getters-and-setters.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-instance-methods-returning-this.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-overload-instance-methods.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-overload-static-methods.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-static-method-with-rest-parameters.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-classes-static-methods-with-default-parameters.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-collections.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-contravariant.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-data-type.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-dataview.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-declare-namespace.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-error.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-function-aync-functions.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-function-overloaded-functions.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-function-with-arrow-structure.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-function-with-default-parameters.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-function-with-rest-parameters.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-general-purpose-types-boxed.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-general-purpose-types-enumerations.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-general-purpose-types-never-type.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-general-purpose-types-optional-type.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-general-purpose-types-string-literal.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-general-purpose-types-unions.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-interfaces-overloaded-methods.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-invariant.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-IndexedAccessTypes.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-any.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-assignment-constant-variable.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-built-in-types.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-conditional-types.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-declare-interface.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-duplicate-enum.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-duplicate-interfaces-class.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-enum-with-mixed-type.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-export-namespace.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-generator-function.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-initializer.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-intersection-type.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-keyof.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-limit-extends.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-mappedtype.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-misplaced-imports.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-module.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-numeric-literal.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-object-bind-params.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-object-parameters.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-private-identifiers.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-property-access-expression.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-symbol.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-type-generic.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-type-literal.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-union-literal-generic.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-unknow.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-var.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-no-wrapper-to-primitive.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-promise.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-regular-expression.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-tuple-annotation.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-type-aliases-type.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-typed-array.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-utility-types-partial.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-utility-types-readonly.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-utility-types-record.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/arkts-utility-types-required.d.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/dts_declarations/include/lib.d.ts rename static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/{ts_source => }/include/KeywordClass.ts (100%) create mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/include/lib.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-classes-export.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-declare-namespace.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-no-constructor-type.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-no-lazy-import.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-no-template-literal-type.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-no-ts-utility-type.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-reserved-function-parameter-name.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/json_storage/arkts-rest-parameter-array.json delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-classes-export.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-no-built-in-types.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-no-constructor-type.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-no-lazy-import.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-no-template-literal-type.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-no-ts-utility-type.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-reserved-function-parameter-name.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/arkts-rest-parameter-array.ts delete mode 100644 static_core/plugins/ets/tools/declgen_ts2sts/test/cookbook_tests/ts_source/include/lib.ts delete mode 100644 static_core/plugins/ets/tools/specification_checker.py diff --git a/static_core/plugins/ets/BUILD.gn b/static_core/plugins/ets/BUILD.gn index 94da8b8370..e67d46d715 100644 --- a/static_core/plugins/ets/BUILD.gn +++ b/static_core/plugins/ets/BUILD.gn @@ -36,7 +36,10 @@ foreach(plugin, ark_enabled_plugins) { with_sdk = false group("ark_packages") { - deps = [ "runtime/libani_helpers:ani_helpers" ] + deps = [ + "runtime/libani_helpers:ani_helpers", + "runtime/napi/etsnative:etsnative", + ] if (ark_static_standalone_build) { deps += [ "$ark_es2panda_root/aot:ets2panda" ] @@ -102,6 +105,7 @@ if (!(ark_standalone_build || "./sdk/api/@ohos.util.Deque.ets", "./sdk/api/@ohos.util.HashMap.ets", "./sdk/api/@ohos.util.HashSet.ets", + "./sdk/api/@ohos.util.json.ets", "./sdk/api/@ohos.util.LightWeightMap.ets", "./sdk/api/@ohos.util.LightWeightSet.ets", "./sdk/api/@ohos.util.LinkedList.ets", @@ -142,6 +146,7 @@ if (!(ark_standalone_build || "$ark_root/plugins/ets", "$ark_root/plugins/ets/runtime", "$ark_root/plugins/ets/runtime/ani", + "$ark_root/plugins/ets/runtime/napi", "$ark_root/plugins/ets/sdk", "$ark_root/plugins/ets/sdk/native", ] @@ -151,7 +156,6 @@ if (!(ark_standalone_build || "$ark_root/plugins/ets/sdk/native/api/ani_textdecoder.cpp", "$ark_root/plugins/ets/sdk/native/api/ani_textencoder.cpp", "$ark_root/plugins/ets/sdk/native/api/ani_textencoder_helper.cpp", - "$ark_root/plugins/ets/sdk/native/api/ani_xmlpullparser.cpp", "$ark_root/plugins/ets/sdk/native/main.cpp", "$ark_root/plugins/ets/stdlib/native/core/stdlib_ani_helpers.cpp", ] @@ -216,14 +220,11 @@ ark_gen_file("ark_asm_ets_meta_gen_h") { } config("runtime") { - include_dirs = [ - "$ark_root/plugins/ets/runtime", - "$ark_root/../common_interfaces", - ] + include_dirs = [ "$ark_root/plugins/ets/runtime" ] configs = [ "$ark_es2panda_root:libes2panda_public_config", "$ark_root/assembler:arkassembler_public_config", - "$ark_root/libarkfile:arkfile_public_config", + "$ark_root/libpandafile:arkfile_public_config", ] } @@ -370,7 +371,6 @@ if (with_stdlib) { "$ark_root/tools/ark_js_napi_cli:HybridXGCTests", "tests/interop_js/eacoro:eacoro_tests", "tests/interop_js/taskpool:taskpool_tests", - "tests/interop_js/serialize:serialize_tests", "tests/interop_js/xgc:xgc_tests", ] } diff --git a/static_core/plugins/ets/CMakeLists.txt b/static_core/plugins/ets/CMakeLists.txt index efa6693cec..1f7fffbe8c 100644 --- a/static_core/plugins/ets/CMakeLists.txt +++ b/static_core/plugins/ets/CMakeLists.txt @@ -83,7 +83,7 @@ function(compile_ets_code ETS_SRC OUTPUT_ABC TARGET) # Note(ivan-tyulyandin): -P replaces CMAKE_CURRENT_SOURCE_DIR so using ETS_PLUGIN_SOURCE_DIR add_custom_target(regenerate_and_check_stdlib COMMAND ${CMAKE_COMMAND} -DETS_PLUGIN_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/GenerateStdLib.cmake) - add_dependencies(ets_tests regenerate_and_check_stdlib) + add_dependencies(etsstdlib regenerate_and_check_stdlib) endif() endif() @@ -91,7 +91,7 @@ endfunction() function(compile_ets_sources WORK_DIR ABC_TARGET ABC_FILES ETS_SOURCES) set(oneValueArgs ARKTS_CONFIG ETSPATH OPT_LEVEL) - set(multiValueArgs ARKTS_CONFIGS COMPILER_EXTRA_OPTIONS) + set(multiValueArgs ARKTS_CONFIGS) cmake_parse_arguments(ARG "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) add_custom_target(${ABC_TARGET}) @@ -123,9 +123,7 @@ function(compile_ets_sources WORK_DIR ABC_TARGET ABC_FILES ETS_SOURCES) compile_ets_code(${SOURCE_ETS} ${SOURCE_ABC} ${SOURCE_ABC_TARGET} ARKTS_CONFIG ${ARKTS_CONFIG} ETSPATH ${ARG_ETSPATH} - OPT_LEVEL ${ARG_OPT_LEVEL} - COMPILER_EXTRA_OPTIONS ${ARG_COMPILER_EXTRA_OPTIONS} - ) + OPT_LEVEL ${ARG_OPT_LEVEL}) add_dependencies(${ABC_TARGET} ${SOURCE_ABC_TARGET}) set(RESULT ${RESULT} ${SOURCE_ABC}) endforeach() @@ -161,6 +159,7 @@ add_subdirectory(bytecode_optimizer) add_subdirectory(irtoc_scripts) add_subdirectory(verification) add_subdirectory(tools) +add_subdirectory(arkts_header) # NOTE(nsizov): change this logic when ets compiler moved into ets plugin if(TARGET es2panda) @@ -186,18 +185,9 @@ if(TARGET es2panda) ${RUN_VERIFIER_DST_DIR}/run_verifier.sh COPYONLY ) - add_custom_command(TARGET etsstdlib + add_custom_command(TARGET etsstdlib COMMAND bash -c "${RUN_VERIFIER_DST_DIR}/run_verifier.sh '${verifier_bin}' '${ETS_STD_LIB}'" -P ) - - if (PANDA_TARGET_X86 OR PANDA_TARGET_AMD64) - add_custom_target(run-spec-checker - COMMENT "Running checker for specification code snippets" - COMMAND PANDA_ROOT=${PANDA_BINARY_ROOT} python3 ${CMAKE_SOURCE_DIR}/plugins/ets/tools/specification_checker.py --spec-folder ${CMAKE_SOURCE_DIR}/plugins/ets/doc/concurrency - DEPENDS ark) - add_dependencies(ets_tests run-spec-checker) - endif() - endif() else() message(WARNING "es2panda was not found for etsstdlib and etssdk build") diff --git a/static_core/plugins/ets/GenerateStdLib.cmake b/static_core/plugins/ets/GenerateStdLib.cmake index 3bfde506ac..10cfc9e82e 100644 --- a/static_core/plugins/ets/GenerateStdLib.cmake +++ b/static_core/plugins/ets/GenerateStdLib.cmake @@ -51,7 +51,7 @@ function(regenerate_and_check_stdlib) RESULT_VARIABLE compare_result ) if( NOT compare_result EQUAL 0) - message(FATAL_ERROR "Generate ${file} is not equal to currently used ${file}, fix and rerun generating script. " + message(FATAL_ERROR "Generated ${file} is not equal to currently used ${file}, fix and rerun generating script. " "Checkout the guide: " "https://gitee.com/OpenHarmony/arkcompiler_runtime_core/blob/master/static_core/plugins/ets/stdlib/README.md") endif() diff --git a/static_core/plugins/ets/abc2program/abc2program_ets_plugin.cpp b/static_core/plugins/ets/abc2program/abc2program_ets_plugin.cpp index 9e9b04d1be..ddb9401454 100644 --- a/static_core/plugins/ets/abc2program/abc2program_ets_plugin.cpp +++ b/static_core/plugins/ets/abc2program/abc2program_ets_plugin.cpp @@ -16,8 +16,8 @@ #include "abc_file_processor.h" #include "abc_file_utils.h" #include "abc_method_processor.h" -#include "libarkfile/annotation_data_accessor.h" -#include "libarkfile/class_data_accessor.h" +#include "annotation_data_accessor.h" +#include "class_data_accessor.h" namespace ark::abc2program { void AbcFileProcessor::GetETSMetadata(const std::map &functionTable) diff --git a/static_core/plugins/ets/arkts_header/CMakeLists.txt b/static_core/plugins/ets/arkts_header/CMakeLists.txt new file mode 100644 index 0000000000..058171dd31 --- /dev/null +++ b/static_core/plugins/ets/arkts_header/CMakeLists.txt @@ -0,0 +1,35 @@ +# Copyright (c) 2021-2024 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +cmake_minimum_required(VERSION 3.10) + +project(arkts_header) + +set(HEADER_CREATOR_SOURCES + arkts_header.cpp + header_writer.cpp + ${PANDA_ETS_PLUGIN_SOURCE}/runtime/napi/ets_mangle.cpp +) + +panda_add_executable(arkts_header ${HEADER_CREATOR_SOURCES}) + +panda_target_link_libraries(arkts_header arkbase arkfile) + +panda_target_include_directories(arkts_header + PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} + PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/generated + PUBLIC ${PANDA_ETS_PLUGIN_SOURCE}/runtime/ + PUBLIC ${PANDA_BINARY_ROOT}/ +) + +panda_add_sanitizers(TARGET arkts_header SANITIZERS ${PANDA_SANITIZERS_LIST}) diff --git a/static_core/plugins/ets/arkts_header/arkts_header.cpp b/static_core/plugins/ets/arkts_header/arkts_header.cpp new file mode 100644 index 0000000000..79383c3504 --- /dev/null +++ b/static_core/plugins/ets/arkts_header/arkts_header.cpp @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +#include "libpandafile/file.h" +#include "libpandafile/file_reader.h" +#include "libpandabase/utils/logger.h" +#include "libpandabase/utils/pandargs.h" +#include "libpandafile/file_writer.h" +#include "libpandabase/utils/utf.h" +#include "runtime/include/mem/panda_string.h" +#include "header_writer.h" + +static void PrintHelp(ark::PandArgParser &paParser) +{ + std::cerr << "Usage:" << std::endl; + std::cerr << "arkts_header [options] INPUT_FILE OUTPUT_FILE" << std::endl << std::endl; + std::cerr << "Supported options:" << std::endl << std::endl; + std::cerr << paParser.GetHelpString() << std::endl; +} + +static bool ProcessArgs(ark::PandArgParser &paParser, const ark::PandArg &input, + ark::PandArg &output, const ark::PandArg &help) +{ + if (input.GetValue().empty() || help.GetValue()) { + PrintHelp(paParser); + return false; + } + + if (output.GetValue().empty()) { + std::string outputFilename = input.GetValue().substr(0, input.GetValue().find_last_of('.')) + ".h"; + output.SetValue(outputFilename); + } + + ark::Logger::InitializeStdLogging(ark::Logger::Level::ERROR, + ark::Logger::ComponentMask().set(ark::Logger::Component::ETS_NAPI)); + + return true; +} + +int main(int argc, const char **argv) +{ + ark::PandArg help("help", false, "Print this message and exit"); + ark::PandArg input("INPUT", "", "Input binary file"); + ark::PandArg output("OUTPUT", "", "Output header file"); + + ark::PandArgParser paParser; + + paParser.Add(&help); + paParser.PushBackTail(&input); + paParser.PushBackTail(&output); + paParser.EnableTail(); + + if (!paParser.Parse(argc, argv)) { + PrintHelp(paParser); + return 1; + } + + if (!ProcessArgs(paParser, input, output, help)) { + return 1; + } + + auto inputFile = ark::panda_file::File::Open(input.GetValue()); + if (!inputFile) { + LOG(ERROR, ETS_NAPI) << "Cannot open file '" << input.GetValue() << "'"; + return 1; + } + + ark::ets::header_writer::HeaderWriter writer(std::move(inputFile), output.GetValue()); + + auto createdHeader = writer.PrintFunction(); + if (!createdHeader) { + std::cout << "No native functions found in file '" << input.GetValue() << "', header not created" << std::endl; + } + + return 0; +} diff --git a/static_core/plugins/ets/arkts_header/header_writer.cpp b/static_core/plugins/ets/arkts_header/header_writer.cpp new file mode 100644 index 0000000000..abab24af26 --- /dev/null +++ b/static_core/plugins/ets/arkts_header/header_writer.cpp @@ -0,0 +1,157 @@ +/** + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "header_writer.h" +#include "source_language.h" +#include "libpandafile/file-inl.h" +#include "libpandafile/proto_data_accessor-inl.h" +#include "plugins/ets/runtime/napi/ets_mangle.h" +#include + +namespace ark::ets::header_writer { + +std::string ConvertEtsReferenceToString(const std::string &name) +{ + if (name == "Lstd/core/String;") { + return "ets_string"; + } + if (name == "class") { + return "ets_class"; + } + return "ets_object"; +} + +HeaderWriter::HeaderWriter(std::unique_ptr &&input, std::string output) + : inputFile_(std::move(input)), outputName_(std::move(output)) +{ +} + +void HeaderWriter::OpenOutput() +{ + outputFile_.close(); + outputFile_.clear(); + outputFile_.open(outputName_.c_str()); +} + +bool HeaderWriter::PrintFunction() +{ + auto classesSpan = inputFile_->GetClasses(); + for (auto id : classesSpan) { + if (inputFile_->IsExternal(panda_file::File::EntityId(id))) { + continue; + } + panda_file::ClassDataAccessor cda(*inputFile_, panda_file::File::EntityId(id)); + if (cda.GetSourceLang() != SourceLanguage::ETS) { + continue; + } + std::vector methods; + cda.EnumerateMethods([&](panda_file::MethodDataAccessor &mda) { + if (mda.IsNative()) { + // Founded first native, need to create file and write beginning + if (!needHeader_) { + needHeader_ = true; + CreateHeader(); + } + + std::string className = utf::Mutf8AsCString(cda.GetDescriptor()); + if (className[0] == 'L') { + className = className.substr(1, className.size() - 2U); + } + PrintPrototype(className, mda, CheckOverloading(cda, mda)); + } + }); + } + if (needHeader_) { + PrintEnd(); + } + return needHeader_; +} + +bool HeaderWriter::CheckOverloading(panda_file::ClassDataAccessor &cda, panda_file::MethodDataAccessor &mda) +{ + bool isOverloaded = false; + cda.EnumerateMethods([&mda, &isOverloaded](panda_file::MethodDataAccessor &mda1) { + if ((mda1.GetName().data == mda.GetName().data) && mda1.IsNative() && + !(mda.GetMethodId() == mda1.GetMethodId())) { + isOverloaded = true; + } + }); + return isOverloaded; +} + +void HeaderWriter::ProcessProtoType(panda_file::Type type, panda_file::File::EntityId klass, std::string &sign, + std::string &args) +{ + if (type.IsPrimitive()) { + sign.append(panda_file::Type::GetSignatureByTypeId(type)); + args.append(ConvertEtsPrimitiveTypeToString(ConvertPandaTypeToEtsType(type))); + } else { + std::string name = utf::Mutf8AsCString(inputFile_->GetStringData(klass).data); + sign.append(name); + args.append(ConvertEtsReferenceToString(name)); + } +} + +void HeaderWriter::PrintPrototype(const std::string &className, panda_file::MethodDataAccessor &mda, bool isOverloaded) +{ + std::string methodName = utf::Mutf8AsCString(mda.GetName().data); + std::string secondArg = ConvertEtsReferenceToString("object"); + ; + if (mda.IsStatic()) { + secondArg = ConvertEtsReferenceToString("class"); + } + std::string sign; + std::string args; + std::string returnSign; + std::string returnArg; + + size_t refIdx = 0; + panda_file::ProtoDataAccessor pda(*inputFile_, mda.GetProtoId()); + + auto type = pda.GetReturnType(); + panda_file::File::EntityId classId; + + if (!type.IsPrimitive()) { + classId = pda.GetReferenceType(refIdx++); + } + + ProcessProtoType(type, classId, returnSign, returnArg); + + for (uint32_t idx = 0; idx < pda.GetNumArgs(); ++idx) { + auto argType = pda.GetArgType(idx); + panda_file::File::EntityId klassId; + if (!argType.IsPrimitive()) { + klassId = pda.GetReferenceType(refIdx++); + } + args.append(", "); + ProcessProtoType(argType, klassId, sign, args); + } + + std::string mangledName = MangleMethodName(className, methodName); + if (isOverloaded) { + mangledName = MangleMethodNameWithSignature(mangledName, sign); + } + + sign.append(":"); + sign.append(returnSign); + + outputFile_ << "/*\n Class: " << className << "\n" + << " Method: " << methodName << "\n" + << " Signature: " << sign << "\n */\n" + << "ETS_EXPORT " << returnArg << " ETS_CALL " << mangledName << "(EtsEnv *, " << secondArg << args + << ");\n\n"; +} + +} // namespace ark::ets::header_writer diff --git a/static_core/plugins/ets/arkts_header/header_writer.h b/static_core/plugins/ets/arkts_header/header_writer.h new file mode 100644 index 0000000000..a90d0bb10d --- /dev/null +++ b/static_core/plugins/ets/arkts_header/header_writer.h @@ -0,0 +1,88 @@ +/** + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef PANDA_PLUGINS_ETS_ARKTS_HEADER_HEADER_WRITER_H_ +#define PANDA_PLUGINS_ETS_ARKTS_HEADER_HEADER_WRITER_H_ + +#include +#include +#include + +#include +#include "libpandafile/file.h" +#include "libpandafile/class_data_accessor-inl.h" +#include "plugins/ets/runtime/types/ets_type.h" + +namespace ark::ets::header_writer { + +class HeaderWriter { +public: + explicit HeaderWriter(std::unique_ptr &&input, std::string output); + + void CreateHeader() + { + OpenOutput(); + if (!outputFile_.is_open()) { + LOG(FATAL, ETS_NAPI) << "Cannot create file '" << outputName_ << "'"; + exit(1); + } + PrintBegin(); + } + + void OpenOutput(); + + bool PrintBegin() + { + outputFile_ << "/* DO NOT EDIT, file is autogenerated */\n" + << "#include \n\n" + << "#ifdef __cplusplus\n" + << "extern \"C\" {\n" + << "#endif\n\n"; + return true; + } + + bool PrintFunction(); + + bool CheckOverloading(panda_file::ClassDataAccessor &cda, panda_file::MethodDataAccessor &mda); + + void PrintPrototype(const std::string &className, panda_file::MethodDataAccessor &mda, bool isOverloaded); + + void ProcessProtoType(panda_file::Type type, panda_file::File::EntityId klass, std::string &sign, + std::string &args); + + bool PrintEnd() + { + outputFile_ << "#ifdef __cplusplus\n" + << "}\n" + << "#endif\n"; + return true; + } + + void CloseOutput() + { + if (outputFile_.is_open()) { + outputFile_.close(); + } + } + +private: + std::unique_ptr inputFile_; + std::string outputName_; + std::ofstream outputFile_; + bool needHeader_ = false; +}; + +} // namespace ark::ets::header_writer + +#endif // PANDA_PLUGINS_ETS_ARKTS_HEADER_HEADER_WRITER_H_ diff --git a/static_core/plugins/ets/bytecode_optimizer/templates/ets_codegen_intrinsics_gen.inc.erb b/static_core/plugins/ets/bytecode_optimizer/templates/ets_codegen_intrinsics_gen.inc.erb index c8d7ec906a..de28ebb2ed 100644 --- a/static_core/plugins/ets/bytecode_optimizer/templates/ets_codegen_intrinsics_gen.inc.erb +++ b/static_core/plugins/ets/bytecode_optimizer/templates/ets_codegen_intrinsics_gen.inc.erb @@ -24,8 +24,7 @@ % ["ets.equals", "VisitEtsEquals"], % ["ets.strictequals", "VisitEtsEquals"], % ["ets.typeof", "VisitEtsTypeof"], -% ["ets.istrue", "VisitEtsIstrue"], -% ["ets.nullcheck", "VisitEtsNullcheck"] +% ["ets.istrue", "VisitEtsIstrue"] % ] % instructions.each do |intrinsic_name, group| % inst = group.first diff --git a/static_core/plugins/ets/bytecode_optimizer/visitors/codegen_visitors.inc b/static_core/plugins/ets/bytecode_optimizer/visitors/codegen_visitors.inc index 333606ef81..35cbe4785a 100644 --- a/static_core/plugins/ets/bytecode_optimizer/visitors/codegen_visitors.inc +++ b/static_core/plugins/ets/bytecode_optimizer/visitors/codegen_visitors.inc @@ -101,11 +101,4 @@ static void VisitEtsIstrue(GraphVisitor *visitor, Inst *inst) auto v = inst->GetSrcReg(0); enc->result_.emplace_back(pandasm::Create_ETS_ISTRUE(v)); DoSta(inst->GetDstReg(), enc->result_); -} - -static void VisitEtsNullcheck(GraphVisitor *visitor, Inst *inst) -{ - auto *enc = static_cast(visitor); - DoLdaObj(inst->GetSrcReg(0), enc->result_); - enc->result_.emplace_back(pandasm::Create_ETS_NULLCHECK()); } \ No newline at end of file diff --git a/static_core/plugins/ets/cmake/ani.cmake b/static_core/plugins/ets/cmake/ani.cmake deleted file mode 100644 index 84dfba7133..0000000000 --- a/static_core/plugins/ets/cmake/ani.cmake +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2025 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -panda_add_library(ani_interface INTERFACE) -panda_target_include_directories(ani_interface - SYSTEM INTERFACE ${PANDA_ETS_PLUGIN_SOURCE}/runtime/ani -) diff --git a/static_core/plugins/ets/cmake/ets_package.cmake b/static_core/plugins/ets/cmake/ets_package.cmake index fcba411584..20dc0b8f36 100644 --- a/static_core/plugins/ets/cmake/ets_package.cmake +++ b/static_core/plugins/ets/cmake/ets_package.cmake @@ -124,8 +124,6 @@ function(do_panda_ets_package TARGET) COMMAND ${PANDA_RUN_PREFIX} $ ${VERIFIER_ARGUMENTS} ${OUTPUT_ABC} DEPENDS verifier ${PANDA_BINARY_ROOT}/plugins/ets/etsstdlib.abc ${OUTPUT_ABC} ) - else() - message(STATUS "do_panda_ets_package: Skip verify: ${TARGET}") endif() else() add_custom_command( diff --git a/static_core/plugins/ets/cmake/import.cmake b/static_core/plugins/ets/cmake/import.cmake index 63a2008a67..3dc8579d49 100644 --- a/static_core/plugins/ets/cmake/import.cmake +++ b/static_core/plugins/ets/cmake/import.cmake @@ -12,7 +12,6 @@ # limitations under the License. -include(cmake/ani.cmake) include(cmake/ets_package.cmake) macro(SUBDIRLIST result curdir) diff --git a/static_core/plugins/ets/compiler/CMakeLists.txt b/static_core/plugins/ets/compiler/CMakeLists.txt index 9847147bb0..91ee93f852 100644 --- a/static_core/plugins/ets/compiler/CMakeLists.txt +++ b/static_core/plugins/ets/compiler/CMakeLists.txt @@ -55,7 +55,6 @@ panda_target_sources(arkcompiler PRIVATE ${COMPILER_SOURCES}) panda_target_include_directories(arkcompiler PUBLIC ${GENERATED_DIR} - ${PANDA_ROOT}/../common_interfaces ) add_inst_templates(${CMAKE_CURRENT_SOURCE_DIR}/optimizer/ir_builder/ets_inst_templates.yaml) diff --git a/static_core/plugins/ets/compiler/codegen_intrinsics_ets.cpp b/static_core/plugins/ets/compiler/codegen_intrinsics_ets.cpp index 45df1c04d2..198446c6ef 100644 --- a/static_core/plugins/ets/compiler/codegen_intrinsics_ets.cpp +++ b/static_core/plugins/ets/compiler/codegen_intrinsics_ets.cpp @@ -17,7 +17,6 @@ #include "compiler/optimizer/ir/analysis.h" #include "runtime/include/coretypes/string.h" #include "runtime/include/coretypes/array.h" -#include "utils/regmask.h" namespace ark::compiler { @@ -120,11 +119,6 @@ void Codegen::CreateArrayCopyTo(IntrinsicInst *inst, [[maybe_unused]] Reg dst, S srcEnd); } -void Codegen::CreateEscompatArrayIsPlatformArray(IntrinsicInst *inst, Reg dst, SRCREGS src) -{ - CallFastPath(inst, EntrypointId::ESCOMPAT_ARRAY_IS_PLATFORM_ARRAY_FAST, dst, {}, src[FIRST_OPERAND]); -} - // Generates a call to StringBuilder.append() for values (EtsBool/Char/Bool/Short/Int/Long), // which are translated to array of utf16 chars. static inline void GenerateSbAppendCall(Codegen *cg, IntrinsicInst *inst, SbAppendArgs args, @@ -212,12 +206,7 @@ static void EncodeSbAppendString(Codegen *cg, IntrinsicInst *inst, const SbAppen auto labelFastPathDone = enc->CreateLabel(); auto labelIncIndex = enc->CreateLabel(); // Jump to slowPath if buffer is full and needs to be reallocated - if (cg->GetRuntime()->NeedsPreReadBarrier()) { - cg->CreateReadViaBarrier(inst, args.SbBufferAddr(), reg0, false, - MakeMask(args.SbBufferAddr().GetBase().GetId(), args.Value().GetId())); - } else { - enc->EncodeLdr(reg0, false, args.SbBufferAddr()); - } + enc->EncodeLdr(reg0, false, args.SbBufferAddr()); enc->EncodeLdr(reg1, false, MemRef(reg0, coretypes::Array::GetLengthOffset())); enc->EncodeLdr(reg2, false, args.SbIndexAddr()); enc->EncodeJump(labelSlowPath, reg2, reg1, Condition::HS); @@ -240,7 +229,7 @@ static void EncodeSbAppendString(Codegen *cg, IntrinsicInst *inst, const SbAppen enc->EncodeAdd(reg2, reg2, Imm(1)); enc->EncodeStr(reg2, args.SbIndexAddr()); // Unpack length of string - enc->EncodeShr(reg1, reg1, Imm(ark::coretypes::String::STRING_LENGTH_SHIFT)); + enc->EncodeShr(reg1, reg1, Imm(1)); // Add length of string to the current length of StringBuilder enc->EncodeLdr(reg2, false, args.SbLengthAddr()); enc->EncodeAdd(reg2, reg2, reg1); @@ -413,7 +402,7 @@ void Codegen::CreateStringBuilderToString(IntrinsicInst *inst, Reg dst, SRCREGS CallFastPath(inst, entrypoint, dst, {}, sb, klass); } else { auto klass = - TypedImm(reinterpret_cast(GetRuntime()->GetLineStringClass(GetGraph()->GetMethod(), nullptr))); + TypedImm(reinterpret_cast(GetRuntime()->GetStringClass(GetGraph()->GetMethod(), nullptr))); CallFastPath(inst, entrypoint, dst, {}, sb, klass); } } @@ -572,7 +561,7 @@ void Codegen::CreateStringFromCharCode(IntrinsicInst *inst, Reg dst, SRCREGS src CallFastPath(inst, getEntryId(), dst, RegMask::GetZeroMask(), array, klassReg); } else { auto klassImm = - TypedImm(reinterpret_cast(GetRuntime()->GetLineStringClass(GetGraph()->GetMethod(), nullptr))); + TypedImm(reinterpret_cast(GetRuntime()->GetStringClass(GetGraph()->GetMethod(), nullptr))); CallFastPath(inst, getEntryId(), dst, RegMask::GetZeroMask(), array, klassImm); } } @@ -681,29 +670,29 @@ void Codegen::CreateBigUInt64ArrayFillInternal(IntrinsicInst *inst, Reg dst, SRC } // NOLINTNEXTLINE(cppcoreguidelines-macro-usage) -#define CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(defName, defType) \ - /* CC-OFFNXT(G.PRE.02) name part */ \ - void Codegen::Create##defName##ArraySetValuesFromArray(IntrinsicInst *inst, Reg dst, SRCREGS src) \ - { \ - ASSERT(inst->GetInputsCount() == 3U); \ - auto eid = EntrypointId::defType##_ARRAY_SET_VALUES_FROM_ARRAY; \ - /* CC-OFFNXT(G.PRE.05) function gen */ \ - CallFastPath(inst, eid, dst, {}, src[FIRST_OPERAND], src[SECOND_OPERAND]); \ +#define CODEGEN_TYPED_ARRAY_TO_REVERSED(Name, MacroType) \ + /* CC-OFFNXT(G.PRE.02) name part */ \ + void Codegen::Create##Name##ArrayToReversed(IntrinsicInst *inst, Reg dst, SRCREGS src) \ + { \ + ASSERT(GetArch() != Arch::AARCH32); \ + auto array = src[FIRST_OPERAND]; \ + auto eid = RuntimeInterface::EntrypointId::MacroType##_ARRAY_TO_REVERSED; \ + /* CC-OFFNXT(G.PRE.05) function gen */ \ + CallFastPath(inst, eid, dst, {}, array); \ } -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Int8, INT8) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Int16, INT16) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Int32, INT32) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(BigInt64, BIG_INT64) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Float32, FLOAT32) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Float64, FLOAT64) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Uint8, UINT8) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Uint8Clamped, UINT8_CLAMPED) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Uint16, UINT16) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(Uint32, UINT32) -CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY(BigUint64, BIG_UINT64) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Int8, INT8) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Int16, INT16) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Int32, INT32) +CODEGEN_TYPED_ARRAY_TO_REVERSED(BigInt64, BIG_INT64) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Float32, FLOAT32) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Float64, FLOAT64) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Uint8, UINT8) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Uint16, UINT16) +CODEGEN_TYPED_ARRAY_TO_REVERSED(Uint32, UINT32) +CODEGEN_TYPED_ARRAY_TO_REVERSED(BigUint64, BIG_UINT64) -#undef CODEGEN_TYPED_ARRAY_SET_VALUES_FROM_ARRAY +#undef CODEGEN_TYPED_ARRAY_TO_REVERSED void Codegen::CreateWriteString(IntrinsicInst *inst, Reg dst, SRCREGS src) { @@ -725,38 +714,10 @@ void Codegen::CreateReadString(IntrinsicInst *inst, Reg dst, SRCREGS src) enc->EncodeLdr(klass, false, MemRef(ThreadReg(), offset)); CallFastPath(inst, entrypointId, dst, {}, buf, len, klass); } else { - auto klass = GetRuntime()->GetLineStringClass(GetGraph()->GetMethod(), nullptr); + auto klass = GetRuntime()->GetStringClass(GetGraph()->GetMethod(), nullptr); auto klassImm = TypedImm(reinterpret_cast(klass)); CallFastPath(inst, entrypointId, dst, {}, buf, len, klassImm); } } -void Codegen::CreateMapGet([[maybe_unused]] IntrinsicInst *inst, Reg dst, SRCREGS src) -{ - ASSERT(GetArch() != Arch::AARCH32); - auto entrypointId = EntrypointId::MAP_GET; - CallFastPath(inst, entrypointId, dst, {}, src[FIRST_OPERAND], src[SECOND_OPERAND], src[THIRD_OPERAND]); -} - -void Codegen::CreateMapHas([[maybe_unused]] IntrinsicInst *inst, Reg dst, SRCREGS src) -{ - ASSERT(GetArch() != Arch::AARCH32); - auto entrypointId = EntrypointId::MAP_HAS; - CallFastPath(inst, entrypointId, dst, {}, src[FIRST_OPERAND], src[SECOND_OPERAND], src[THIRD_OPERAND]); -} - -void Codegen::CreateMapDelete([[maybe_unused]] IntrinsicInst *inst, Reg dst, SRCREGS src) -{ - ASSERT(GetArch() != Arch::AARCH32); - auto entrypointId = EntrypointId::MAP_DELETE; - CallFastPath(inst, entrypointId, dst, {}, src[FIRST_OPERAND], src[SECOND_OPERAND], src[THIRD_OPERAND]); -} - -void Codegen::CreateGetHashCodeByValue([[maybe_unused]] IntrinsicInst *inst, Reg dst, SRCREGS src) -{ - ASSERT(GetArch() != Arch::AARCH32); - auto entrypointId = EntrypointId::GET_HASH_CODE_BY_VALUE_FAST_PATH; - CallFastPath(inst, entrypointId, dst, {}, src[FIRST_OPERAND]); -} - } // namespace ark::compiler diff --git a/static_core/plugins/ets/compiler/ets_compiler_interface.h b/static_core/plugins/ets/compiler/ets_compiler_interface.h index 329e9e5213..f94f0d3659 100644 --- a/static_core/plugins/ets/compiler/ets_compiler_interface.h +++ b/static_core/plugins/ets/compiler/ets_compiler_interface.h @@ -30,34 +30,4 @@ virtual FieldPtr GetEscompatArrayActualLength([[maybe_unused]] ClassPtr klass) c return nullptr; } -virtual FieldPtr GetEscompatTypedArrayBuffer([[maybe_unused]] ClassPtr klass) const -{ - return nullptr; -} - -virtual FieldPtr GetEscompatTypedArrayByteOffset([[maybe_unused]] ClassPtr klass) const -{ - return nullptr; -} - -virtual FieldPtr GetEscompatUnsignedTypedArrayByteOffsetInt([[maybe_unused]] ClassPtr klass) const -{ - return nullptr; -} - -virtual FieldPtr GetEscompatTypedArrayLengthInt([[maybe_unused]] ClassPtr klass) const -{ - return nullptr; -} - -virtual ClassPtr GetEscompatArrayBufferClass() const -{ - return nullptr; -} - -virtual FieldPtr GetEscompatArrayBufferDataAddress([[maybe_unused]] ClassPtr klass) const -{ - return nullptr; -} - #endif // PANDA_PLUGINS_ETS_COMPILER_ETS_COMPILER_INTERFACE_H diff --git a/static_core/plugins/ets/compiler/intrinsics_ir_build_ets.inl.h b/static_core/plugins/ets/compiler/intrinsics_ir_build_ets.inl.h index 0d18a6649f..1254787656 100644 --- a/static_core/plugins/ets/compiler/intrinsics_ir_build_ets.inl.h +++ b/static_core/plugins/ets/compiler/intrinsics_ir_build_ets.inl.h @@ -18,9 +18,6 @@ void BuildIsFiniteIntrinsic(const BytecodeInstruction *bcInst, bool accRead); void BuildStdRuntimeEquals(const BytecodeInstruction *bcInst, bool accRead); void BuildSignbitIntrinsic(const BytecodeInstruction *bcInst, bool accRead); -void BuildEscompatArrayGetUnsafeIntrinsic(const BytecodeInstruction *bcInst, bool accRead); -void BuildEscompatArraySetUnsafeIntrinsic(const BytecodeInstruction *bcInst, bool accRead); -void BuildEscompatArrayGetBufferIntrinsic(const BytecodeInstruction *bcInst, bool accRead); void BuildTypedArraySetIntrinsic(const BytecodeInstruction *bcInst, ark::compiler::DataType::Type type, bool accRead); void BuildTypedUnsignedArraySetIntrinsic(const BytecodeInstruction *bcInst, ark::compiler::Inst *value, ark::compiler::DataType::Type type, bool accRead); @@ -57,9 +54,9 @@ std::tuple BuildTypedArrayLoadData // CC-OFFNXT(G.NAM.01,G.NAM.03) false positive std::tuple BuildTypedUnsignedArrayLoadDataAndOffset( const BytecodeInstruction *bcInst, ark::compiler::DataType::Type type, bool accRead, bool needBoundCheck); -void BuildTypedArrayDetachedDataCheck(ark::compiler::Inst **dataInst, size_t bcAddr, - ark::compiler::SaveStateInst *saveState); -void BuildTypedArrayBoundsCheck(ark::compiler::Inst *posInst, ark::compiler::Inst *lengthInst, size_t bcAddr, - ark::compiler::SaveStateInst *saveState); +void BuildTypedArrayDeoptimizeIfExternalData(ark::compiler::Inst *dataInst, size_t bcAddr, + ark::compiler::SaveStateInst *saveState); +void BuildTypedArrayDeoptimizeIfOutOfRange(ark::compiler::Inst *posInst, ark::compiler::Inst *lengthInst, size_t bcAddr, + ark::compiler::SaveStateInst *saveState); #endif // PANDA_PLUGINS_ETS_COMPILER_INTRINSICS_IR_BUILD_ETS_INL_H diff --git a/static_core/plugins/ets/compiler/intrinsics_ir_build_static_call_ets.inl b/static_core/plugins/ets/compiler/intrinsics_ir_build_static_call_ets.inl index 323e0746c3..0e3f060619 100644 --- a/static_core/plugins/ets/compiler/intrinsics_ir_build_static_call_ets.inl +++ b/static_core/plugins/ets/compiler/intrinsics_ir_build_static_call_ets.inl @@ -124,8 +124,3 @@ case RuntimeInterface::IntrinsicId::INTRINSIC_UNSAFE_MEMORY_WRITE_STRING: { } break; } - -case RuntimeInterface::IntrinsicId::INTRINSIC_ESCOMPAT_ARRAY_GET_BUFFER: { - Builder()->BuildEscompatArrayGetBufferIntrinsic(bcInst_, ACC_READ); - break; -} diff --git a/static_core/plugins/ets/compiler/intrinsics_ir_build_virtual_call_ets.inl b/static_core/plugins/ets/compiler/intrinsics_ir_build_virtual_call_ets.inl index 9385845ccc..9298919a73 100644 --- a/static_core/plugins/ets/compiler/intrinsics_ir_build_virtual_call_ets.inl +++ b/static_core/plugins/ets/compiler/intrinsics_ir_build_virtual_call_ets.inl @@ -13,10 +13,7 @@ * limitations under the License. */ -case RuntimeInterface::IntrinsicId::INTRINSIC_STD_CORE_STRING_GET: { - Builder()->BuildStringGetIntrinsic(bcInst_, ACC_READ, intrinsicId); - break; -} +case RuntimeInterface::IntrinsicId::INTRINSIC_STD_CORE_STRING_GET: case RuntimeInterface::IntrinsicId::INTRINSIC_STD_CORE_STRING_CHAR_AT: { if (!Builder()->TryBuildStringCharAtIntrinsic(bcInst_, ACC_READ)) { BuildDefaultVirtualCallIntrinsic(intrinsicId); @@ -29,20 +26,17 @@ case RuntimeInterface::IntrinsicId::INTRINSIC_STD_CORE_STRING_GET_LENGTH: { } case RuntimeInterface::IntrinsicId::INTRINSIC_STD_CORE_STRING_LENGTH: { Builder()->BuildStringLengthIntrinsic(bcInst_, ACC_READ); + auto input = Builder()->GetDefinitionAcc(); + auto inst = GetGraph()->CreateInstCast(DataType::FLOAT64, Builder()->GetPc(bcInst_->GetAddress()), + input, DataType::INT32); + Builder()->UpdateDefinitionAcc(inst); + Builder()->AddInstruction(inst); break; } case RuntimeInterface::IntrinsicId::INTRINSIC_STD_CORE_STRING_IS_EMPTY: { Builder()->BuildStringIsEmptyIntrinsic(bcInst_, ACC_READ); break; } -case RuntimeInterface::IntrinsicId::INTRINSIC_ESCOMPAT_ARRAY_GET_UNSAFE: { - Builder()->BuildEscompatArrayGetUnsafeIntrinsic(bcInst_, ACC_READ); - break; -} -case RuntimeInterface::IntrinsicId::INTRINSIC_ESCOMPAT_ARRAY_SET_UNSAFE: { - Builder()->BuildEscompatArraySetUnsafeIntrinsic(bcInst_, ACC_READ); - break; -} case RuntimeInterface::IntrinsicId::INTRINSIC_INT8_ARRAY_SET_INT: case RuntimeInterface::IntrinsicId::INTRINSIC_INT8_ARRAY_SET_BYTE: { Builder()->BuildTypedArraySetIntrinsic(bcInst_, DataType::INT8, ACC_READ); diff --git a/static_core/plugins/ets/compiler/intrinsics_peephole_ets.inl.h b/static_core/plugins/ets/compiler/intrinsics_peephole_ets.inl.h index 1215a66270..0a19869185 100644 --- a/static_core/plugins/ets/compiler/intrinsics_peephole_ets.inl.h +++ b/static_core/plugins/ets/compiler/intrinsics_peephole_ets.inl.h @@ -24,7 +24,6 @@ static bool PeepholeStrictEquals(GraphVisitor *v, IntrinsicInst *intrinsic); static bool PeepholeTypeof(GraphVisitor *v, IntrinsicInst *intrinsic); static bool PeepholeDoubleToString(GraphVisitor *v, IntrinsicInst *intrinsic); static bool PeepholeGetTypeInfo(GraphVisitor *v, IntrinsicInst *intrinsic); -static bool PeepholeNullcheck(GraphVisitor *v, IntrinsicInst *intrinsic); static bool PeepholeStringFromCharCodeSingle(GraphVisitor *v, IntrinsicInst *intrinsic); #ifdef PANDA_ETS_INTEROP_JS diff --git a/static_core/plugins/ets/compiler/ir_build_intrinsics_ets.cpp b/static_core/plugins/ets/compiler/ir_build_intrinsics_ets.cpp index 9e842f7d9d..2e3ebe38c7 100644 --- a/static_core/plugins/ets/compiler/ir_build_intrinsics_ets.cpp +++ b/static_core/plugins/ets/compiler/ir_build_intrinsics_ets.cpp @@ -15,8 +15,7 @@ #include "optimizer/code_generator/encode.h" #include "optimizer/ir_builder/inst_builder.h" -#include "libarkfile/bytecode_instruction-inl.h" -#include "runtime/include/coretypes/string.h" +#include "bytecode_instruction-inl.h" namespace ark::compiler { /* @@ -74,60 +73,6 @@ void InstBuilder::BuildSignbitIntrinsic(const BytecodeInstruction *bcInst, bool UpdateDefinitionAcc(res); } -void InstBuilder::BuildEscompatArrayGetUnsafeIntrinsic(const BytecodeInstruction *bcInst, bool accRead) -{ - auto bcAddr = GetPc(bcInst->GetAddress()); - auto *obj = GetArgDefinition(bcInst, 0, accRead); - auto *pos = GetArgDefinition(bcInst, 1, accRead); - - auto *runtime = GetGraph()->GetRuntime(); - auto *arrayClass = runtime->GetEscompatArrayClass(); - auto *bufferField = runtime->GetEscompatArrayBuffer(arrayClass); - - auto buffer = GetGraph()->CreateInstLoadObject( - DataType::REFERENCE, bcAddr, obj, TypeIdMixin {runtime->GetFieldId(bufferField), GetGraph()->GetMethod()}, - bufferField, runtime->IsFieldVolatile(bufferField)); - AddInstruction(buffer); - auto *result = GetGraph()->CreateInstLoadArray(DataType::REFERENCE, bcAddr, buffer, pos); - AddInstruction(result); - UpdateDefinitionAcc(result); -} - -void InstBuilder::BuildEscompatArraySetUnsafeIntrinsic(const BytecodeInstruction *bcInst, bool accRead) -{ - auto bcAddr = GetPc(bcInst->GetAddress()); - auto *obj = GetArgDefinition(bcInst, 0, accRead); - auto *pos = GetArgDefinition(bcInst, 1, accRead); - auto *value = GetArgDefinition(bcInst, 2, accRead); - - auto *runtime = GetGraph()->GetRuntime(); - auto *arrayClass = runtime->GetEscompatArrayClass(); - auto *bufferField = runtime->GetEscompatArrayBuffer(arrayClass); - - auto buffer = GetGraph()->CreateInstLoadObject( - DataType::REFERENCE, bcAddr, obj, TypeIdMixin {runtime->GetFieldId(bufferField), GetGraph()->GetMethod()}, - bufferField, runtime->IsFieldVolatile(bufferField)); - AddInstruction(buffer); - auto *result = GetGraph()->CreateInstStoreArray(DataType::REFERENCE, bcAddr, buffer, pos, value, true); - AddInstruction(result); -} - -void InstBuilder::BuildEscompatArrayGetBufferIntrinsic(const BytecodeInstruction *bcInst, bool accRead) -{ - auto bcAddr = GetPc(bcInst->GetAddress()); - auto *obj = GetArgDefinition(bcInst, 0, accRead); - - auto *runtime = GetGraph()->GetRuntime(); - auto *arrayClass = runtime->GetEscompatArrayClass(); - auto *bufferField = runtime->GetEscompatArrayBuffer(arrayClass); - - auto buffer = GetGraph()->CreateInstLoadObject( - DataType::REFERENCE, bcAddr, obj, TypeIdMixin {runtime->GetFieldId(bufferField), GetGraph()->GetMethod()}, - bufferField, runtime->IsFieldVolatile(bufferField)); - AddInstruction(buffer); - UpdateDefinitionAcc(buffer); -} - void InstBuilder::BuildUint8ClampedArraySetIntrinsic(const BytecodeInstruction *bcInst, ark::compiler::DataType::Type type, bool accRead) { @@ -292,18 +237,17 @@ void InstBuilder::BuildBigUint64ArrayGetIntrinsic(const BytecodeInstruction *bcI 1. typedArray 2. pos 3. NullCheck v1 - 5. LoadObject v3, TYPED_ARRAY_BUFFER_OFFSET - 6. LoadObject v5, ARRAY_BUFFER_DATA_OFFSET - 7. ZeroCheck D v6 - 4. Bitcast INT64->POINTER v7 - 9. LoadObject v3, TYPED_ARRAY_BUFFER_BYTE_OFFSET_OFFSET + 5. LoadNative v3, TYPED_ARRAY_BUFFER_OFFSET + 6. LoadNative v5, ARRAY_BUFFER_DATA_OFFSET + 7. DeoptimizeIf v6 == 0 + 9. LoadNative v3, TYPED_ARRAY_BUFFER_BYTE_OFFSET_OFFSET 10. Cast FLOAT64->INT32 v9 - 11. LoadObject v3, TYPED_ARRAY_LENGTH_OFFSET - 12. BoundsCheck v11, v2 - 14. Add v2, v10 - Returns (v4, v14) + 11. LoadNative v3, TYPED_ARRAY_LENGTH_OFFSET + 12. DeoptimizeIf v2 CC_AE v11 + 13. Add v2, ARRAY_DATA_OFFSET + 14. Add v13, v10 + Returns (v6, v14) */ -// CC-OFFNXT(huge_depth[C++]) solid logic std::tuple InstBuilder::BuildTypedArrayLoadDataAndOffset(const BytecodeInstruction *bcInst, DataType::Type type, bool accRead, bool needBoundCheck) @@ -315,96 +259,88 @@ std::tuple InstBuilder::BuildTypedArrayLoadDataAndOffset(const B auto saveState = CreateSaveState(Opcode::SaveState, bcAddr); AddInstruction(saveState); auto *graph = GetGraph(); + auto arch = graph->GetArch(); auto *nullCheck = graph->CreateInstNullCheck(DataType::REFERENCE, bcAddr, obj, saveState); AddInstruction(nullCheck); - auto *runtime = graph->GetRuntime(); - auto calleeMethodId = runtime->ResolveMethodIndex(GetMethod(), bcInst->GetId(0).AsIndex()); - auto *calleeMethod = runtime->GetMethodById(GetMethod(), calleeMethodId); - - auto *typedArrayClass = runtime->GetClass(calleeMethod); - auto *bufferField = runtime->GetEscompatTypedArrayBuffer(typedArrayClass); - auto *byteOffsetField = runtime->GetEscompatTypedArrayByteOffset(typedArrayClass); - auto *lengthIntField = runtime->GetEscompatTypedArrayLengthInt(typedArrayClass); - - auto *arrayBufferClass = runtime->GetEscompatArrayBufferClass(); - auto *dataAddressField = runtime->GetEscompatArrayBufferDataAddress(arrayBufferClass); - - auto *loadBufferInst = graph->CreateInstLoadObject(DataType::REFERENCE, bcAddr, nullCheck, - TypeIdMixin {runtime->GetFieldId(bufferField), calleeMethod}, - bufferField, runtime->IsFieldVolatile(bufferField)); + auto *loadBufferInst = + graph->CreateInstLoadNative(DataType::REFERENCE, bcAddr, nullCheck, + graph->FindOrCreateConstant(ark::cross_values::GetTypedArrayBufferOffset(arch))); AddInstruction(loadBufferInst); - Inst *loadDataInst = graph->CreateInstLoadObject(DataType::INT64, bcAddr, loadBufferInst, - TypeIdMixin {runtime->GetFieldId(dataAddressField), calleeMethod}, - dataAddressField, runtime->IsFieldVolatile(dataAddressField)); + auto *loadDataInst = + graph->CreateInstLoadNative(DataType::REFERENCE, bcAddr, loadBufferInst, + graph->FindOrCreateConstant(ark::cross_values::GetArrayBufferDataOffset(arch))); AddInstruction(loadDataInst); - BuildTypedArrayDetachedDataCheck(&loadDataInst, bcAddr, saveState); - if (!Is64BitsArch(graph->GetArch())) { - loadDataInst = graph->CreateInstCast(DataType::INT32, bcAddr, loadDataInst, loadDataInst->GetType()); - AddInstruction(loadDataInst); - } - loadDataInst = graph->CreateInstBitcast(DataType::POINTER, bcAddr, loadDataInst, loadDataInst->GetType()); - AddInstruction(loadDataInst); + BuildTypedArrayDeoptimizeIfExternalData(loadDataInst, bcAddr, saveState); - auto *loadDataOffsetFloat64Inst = graph->CreateInstLoadObject( - DataType::FLOAT64, bcAddr, nullCheck, TypeIdMixin {runtime->GetFieldId(byteOffsetField), calleeMethod}, - byteOffsetField, runtime->IsFieldVolatile(byteOffsetField)); + auto *loadDataOffsetFloat64Inst = graph->CreateInstLoadNative( + DataType::FLOAT64, bcAddr, nullCheck, + graph->FindOrCreateConstant(ark::cross_values::GetTypedArrayByteOffsetOffset(arch))); AddInstruction(loadDataOffsetFloat64Inst); auto *loadDataOffsetInst = graph->CreateInstCast(DataType::INT32, bcAddr, loadDataOffsetFloat64Inst, loadDataOffsetFloat64Inst->GetType()); AddInstruction(loadDataOffsetInst); if (needBoundCheck) { - auto *loadLengthInst = graph->CreateInstLoadObject( - DataType::INT32, bcAddr, nullCheck, TypeIdMixin {runtime->GetFieldId(lengthIntField), calleeMethod}, - lengthIntField, runtime->IsFieldVolatile(lengthIntField)); + auto *loadLengthInst = graph->CreateInstLoadNative( + DataType::INT32, bcAddr, nullCheck, + graph->FindOrCreateConstant(ark::cross_values::GetTypedArrayLengthOffset(arch))); AddInstruction(loadLengthInst); - BuildTypedArrayBoundsCheck(pos, loadLengthInst, bcAddr, saveState); + BuildTypedArrayDeoptimizeIfOutOfRange(pos, loadLengthInst, bcAddr, saveState); } + auto *arrayDataOffset = graph->FindOrCreateConstant(ark::cross_values::GetCoretypesArrayDataOffset(arch)); auto scale = DataType::ShiftByType(type, graph->GetArch()); auto *scaledPos = graph->CreateInstShl(DataType::INT32, bcAddr, pos, graph->FindOrCreateConstant(scale)); AddInstruction(scaledPos); - auto *dataOffsetInst = graph->CreateInstAdd(DataType::INT32, bcAddr, scaledPos, loadDataOffsetInst); + auto *dataOffsetInst = graph->CreateInstAdd(DataType::INT32, bcAddr, scaledPos, arrayDataOffset); + AddInstruction(dataOffsetInst); + dataOffsetInst = graph->CreateInstAdd(DataType::INT32, bcAddr, dataOffsetInst, loadDataOffsetInst); AddInstruction(dataOffsetInst); return std::make_tuple(loadDataInst, dataOffsetInst); } -void InstBuilder::BuildTypedArrayDetachedDataCheck(Inst **dataInst, size_t bcAddr, SaveStateInst *saveState) +void InstBuilder::BuildTypedArrayDeoptimizeIfExternalData(Inst *dataInst, size_t bcAddr, SaveStateInst *saveState) { auto *graph = GetGraph(); - auto *zeroCheck = graph->CreateInstZeroCheck(DataType::INT64, bcAddr, *dataInst, saveState); - zeroCheck->SetFlag(inst_flags::CAN_DEOPTIMIZE); - AddInstruction(zeroCheck); - *dataInst = zeroCheck; + auto *nullPtrInst = graph->GetOrCreateNullPtr(); + auto *isExternalInst = graph->CreateInstCompare(DataType::BOOL, bcAddr, dataInst, nullPtrInst, DataType::REFERENCE, + ConditionCode::CC_EQ); + AddInstruction(isExternalInst); + auto *deoptIsExternalInst = + graph->CreateInstDeoptimizeIf(bcAddr, isExternalInst, saveState, DeoptimizeType::ZERO_CHECK); + AddInstruction(deoptIsExternalInst); } -void InstBuilder::BuildTypedArrayBoundsCheck(Inst *posInst, Inst *lengthInst, size_t bcAddr, SaveStateInst *saveState) +void InstBuilder::BuildTypedArrayDeoptimizeIfOutOfRange(Inst *posInst, Inst *lengthInst, size_t bcAddr, + SaveStateInst *saveState) { auto *graph = GetGraph(); - auto *boundsCheck = graph->CreateInstBoundsCheck(DataType::INT32, bcAddr, lengthInst, posInst, saveState); - boundsCheck->SetFlag(inst_flags::CAN_DEOPTIMIZE); + auto *boundsCheck = + graph->CreateInstCompare(DataType::BOOL, bcAddr, posInst, lengthInst, DataType::INT32, ConditionCode::CC_AE); AddInstruction(boundsCheck); + + auto *deoptRangeError = graph->CreateInstDeoptimizeIf(bcAddr, boundsCheck, saveState, DeoptimizeType::BOUNDS_CHECK); + AddInstruction(deoptRangeError); } /* 1. typedUArray 2. pos 3. NullCheck v1 - 5. LoadObject v3, TYPED_U_ARRAY_BUFFER_OFFSET - 6. LoadObject v5, ARRAY_BUFFER_DATA_OFFSET - 7. ZeroCheck D v6 - 4. Bitcast INT64->POINTER v7 - 9. LoadObject v3, TYPED_U_ARRAY_BUFFER_BYTE_OFFSET_OFFSET - 11. LoadObject v3, TYPED_U_ARRAY_LENGTH_OFFSET - 12. BoundsCheck v11, v2 - 14. Add v2, v9 - Returns (v4, v14) + 5. LoadNative v3, TYPED_U_ARRAY_BUFFER_OFFSET + 6. LoadNative v5, ARRAY_BUFFER_DATA_OFFSET + 7. DeoptimizeIf v6 == 0 + 9. LoadNative v3, TYPED_U_ARRAY_BUFFER_BYTE_OFFSET_OFFSET + 11. LoadNative v3, TYPED_U_ARRAY_LENGTH_OFFSET + 12. DeoptimizeIf v2 CC_AE v11 + 13. Add v2, ARRAY_DATA_OFFSET + 14. Add v13, v9 + Returns (v6, v14) */ -// CC-OFFNXT(huge_depth[C++]) solid logic std::tuple InstBuilder::BuildTypedUnsignedArrayLoadDataAndOffset(const BytecodeInstruction *bcInst, DataType::Type type, bool accRead, bool needBoundCheck) @@ -415,56 +351,42 @@ std::tuple InstBuilder::BuildTypedUnsignedArrayLoadDataAndOffset auto saveState = CreateSaveState(Opcode::SaveState, bcAddr); AddInstruction(saveState); auto *graph = GetGraph(); + auto arch = graph->GetArch(); auto *nullCheck = graph->CreateInstNullCheck(DataType::REFERENCE, bcAddr, obj, saveState); AddInstruction(nullCheck); - auto *runtime = graph->GetRuntime(); - auto calleeMethodId = runtime->ResolveMethodIndex(GetMethod(), bcInst->GetId(0).AsIndex()); - auto *calleeMethod = runtime->GetMethodById(GetMethod(), calleeMethodId); - - auto *typedArrayClass = runtime->GetClass(calleeMethod); - auto *bufferField = runtime->GetEscompatTypedArrayBuffer(typedArrayClass); - auto *byteOffsetIntField = runtime->GetEscompatUnsignedTypedArrayByteOffsetInt(typedArrayClass); - auto *lengthIntField = runtime->GetEscompatTypedArrayLengthInt(typedArrayClass); - - auto *arrayBufferClass = runtime->GetEscompatArrayBufferClass(); - auto *dataAddressField = runtime->GetEscompatArrayBufferDataAddress(arrayBufferClass); - - auto *loadBufferInst = graph->CreateInstLoadObject(DataType::REFERENCE, bcAddr, nullCheck, - TypeIdMixin {runtime->GetFieldId(bufferField), calleeMethod}, - bufferField, runtime->IsFieldVolatile(bufferField)); + auto *loadBufferInst = graph->CreateInstLoadNative( + DataType::REFERENCE, bcAddr, nullCheck, + graph->FindOrCreateConstant(ark::cross_values::GetTypedUnsignedArrayBufferOffset(arch))); AddInstruction(loadBufferInst); - Inst *loadDataInst = graph->CreateInstLoadObject(DataType::INT64, bcAddr, loadBufferInst, - TypeIdMixin {runtime->GetFieldId(dataAddressField), calleeMethod}, - dataAddressField, runtime->IsFieldVolatile(dataAddressField)); + auto *loadDataInst = + graph->CreateInstLoadNative(DataType::REFERENCE, bcAddr, loadBufferInst, + graph->FindOrCreateConstant(ark::cross_values::GetArrayBufferDataOffset(arch))); AddInstruction(loadDataInst); - BuildTypedArrayDetachedDataCheck(&loadDataInst, bcAddr, saveState); - if (!Is64BitsArch(graph->GetArch())) { - loadDataInst = graph->CreateInstCast(DataType::INT32, bcAddr, loadDataInst, loadDataInst->GetType()); - AddInstruction(loadDataInst); - } - loadDataInst = graph->CreateInstBitcast(DataType::POINTER, bcAddr, loadDataInst, loadDataInst->GetType()); - AddInstruction(loadDataInst); + BuildTypedArrayDeoptimizeIfExternalData(loadDataInst, bcAddr, saveState); - auto *loadDataOffsetInst = graph->CreateInstLoadObject( - DataType::INT32, bcAddr, nullCheck, TypeIdMixin {runtime->GetFieldId(byteOffsetIntField), calleeMethod}, - byteOffsetIntField, runtime->IsFieldVolatile(byteOffsetIntField)); + auto *loadDataOffsetInst = graph->CreateInstLoadNative( + DataType::INT32, bcAddr, nullCheck, + graph->FindOrCreateConstant(ark::cross_values::GetTypedUnsignedArrayByteOffsetOffset(arch))); AddInstruction(loadDataOffsetInst); if (needBoundCheck) { - auto *loadLengthInst = graph->CreateInstLoadObject( - DataType::INT32, bcAddr, nullCheck, TypeIdMixin {runtime->GetFieldId(lengthIntField), calleeMethod}, - lengthIntField, runtime->IsFieldVolatile(lengthIntField)); + auto *loadLengthInst = graph->CreateInstLoadNative( + DataType::INT32, bcAddr, nullCheck, + graph->FindOrCreateConstant(ark::cross_values::GetTypedUnsignedArrayLengthOffset(arch))); AddInstruction(loadLengthInst); - BuildTypedArrayBoundsCheck(pos, loadLengthInst, bcAddr, saveState); + BuildTypedArrayDeoptimizeIfOutOfRange(pos, loadLengthInst, bcAddr, saveState); } + auto *arrayDataOffset = graph->FindOrCreateConstant(ark::cross_values::GetCoretypesArrayDataOffset(arch)); auto scale = DataType::ShiftByType(type, graph->GetArch()); auto *scaledPos = graph->CreateInstShl(DataType::INT32, bcAddr, pos, graph->FindOrCreateConstant(scale)); AddInstruction(scaledPos); - auto *dataOffsetInst = graph->CreateInstAdd(DataType::INT32, bcAddr, scaledPos, loadDataOffsetInst); + auto *dataOffsetInst = graph->CreateInstAdd(DataType::INT32, bcAddr, scaledPos, arrayDataOffset); + AddInstruction(dataOffsetInst); + dataOffsetInst = graph->CreateInstAdd(DataType::INT32, bcAddr, dataOffsetInst, loadDataOffsetInst); AddInstruction(dataOffsetInst); return std::make_tuple(loadDataInst, dataOffsetInst); @@ -527,10 +449,9 @@ void InstBuilder::BuildStringSizeInBytes(const BytecodeInstruction *bcInst, bool auto graph = GetGraph(); auto offset = FindOrCreateConstant(runtime->GetStringLengthOffset(graph->GetArch())); auto one = FindOrCreateConstant(1U); - auto two = FindOrCreateConstant(ark::coretypes::String::STRING_LENGTH_SHIFT); auto len = graph->CreateInstLoadNative(DataType::INT32, bcAddr, str, offset); - auto size = graph->CreateInstShr(DataType::INT32, bcAddr, len, two); + auto size = graph->CreateInstShr(DataType::INT32, bcAddr, len, one); auto shift = graph->CreateInstAnd(DataType::INT32, bcAddr, len, one); auto add = graph->CreateInstAdd(DataType::INT32, bcAddr, size, shift); auto result = graph->CreateInstShl(DataType::INT32, bcAddr, add, shift); diff --git a/static_core/plugins/ets/compiler/optimizer/ets_codegen_extensions.cpp b/static_core/plugins/ets/compiler/optimizer/ets_codegen_extensions.cpp index fe5bc96cf9..eb309f67ac 100644 --- a/static_core/plugins/ets/compiler/optimizer/ets_codegen_extensions.cpp +++ b/static_core/plugins/ets/compiler/optimizer/ets_codegen_extensions.cpp @@ -49,6 +49,15 @@ void Codegen::EtsGetNativeMethod(IntrinsicInst *inst, Reg dst, [[maybe_unused]] encoder->EncodeLdr(tmpReg, false, MemRef(methodReg, GetRuntime()->GetNativePointerOffset(GetArch()))); encoder->EncodeJump(failLabel, tmpReg, Condition::EQ); + // Don't support deprecated Native API and currently Function native mode in new API + // NOTE: add Function mode support + if (GetRuntime()->CanNativeMethodUseObjects(inst->GetCallMethod())) { + tmpReg.ChangeType(INT32_TYPE); + encoder->EncodeLdr(tmpReg, false, MemRef(methodReg, GetRuntime()->GetAccessFlagsOffset(GetArch()))); + auto unsupportedMask = GetRuntime()->GetDeprecatedNativeApiMask(); + encoder->EncodeAnd(tmpReg, tmpReg, Imm(unsupportedMask)); + encoder->EncodeJump(failLabel, tmpReg, Condition::NE); + } encoder->EncodeMov(dst, methodReg); encoder->EncodeJump(successLabel); diff --git a/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_inlining_expansion.cpp b/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_inlining_expansion.cpp index 7d13853da0..26dc483bb4 100644 --- a/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_inlining_expansion.cpp +++ b/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_inlining_expansion.cpp @@ -26,11 +26,10 @@ Returns value */ void Inlining::ExpandIntrinsicEscompatArrayGet(CallInst *callInst) { - int virtualIndex = callInst->GetOpcode() == Opcode::CallResolvedVirtual ? 1 : 0; auto bcAddr = callInst->GetPc(); - auto *obj = callInst->GetInput(0 + virtualIndex).GetInst()->CastToNullCheck(); - auto *index = callInst->GetInput(1 + virtualIndex).GetInst(); - auto *saveState = callInst->GetInput(2 + virtualIndex).GetInst()->CastToSaveState(); + auto *obj = callInst->GetInput(0).GetInst()->CastToNullCheck(); + auto *index = callInst->GetInput(1).GetInst(); + auto *saveState = callInst->GetInput(2).GetInst()->CastToSaveState(); auto *runtime = GetGraph()->GetRuntime(); auto *arrayClass = runtime->GetEscompatArrayClass(); diff --git a/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_peephole.cpp b/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_peephole.cpp index 543c399714..dcee7c4f78 100644 --- a/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_peephole.cpp +++ b/static_core/plugins/ets/compiler/optimizer/ets_intrinsics_peephole.cpp @@ -17,7 +17,6 @@ #include "compiler/optimizer/ir/analysis.h" #include "compiler/optimizer/ir/runtime_interface.h" #include "compiler/optimizer/optimizations/const_folding.h" -#include "runtime/include/coretypes/string.h" namespace ark::compiler { @@ -78,7 +77,7 @@ static bool ReplaceTypeofWithIsInstance(IntrinsicInst *intrinsic) auto *bb = saveState->GetBasicBlock(); bb->InsertAfter(loadClass, saveState); auto isInstance = graph->CreateInstIsInstance(DataType::BOOL, pc, typeOf->GetInput(0).GetInst(), loadClass, - saveState, TypeIdMixin {typeId, method}, ClassType::OTHER_CLASS); + saveState, TypeIdMixin {typeId, method}, ClassType::FINAL_CLASS); intrinsic->ReplaceUsers(isInstance); bb->InsertAfter(isInstance, loadClass); return true; @@ -109,8 +108,7 @@ Inst *GetStringFromLength(Inst *inst) return nullptr; } auto input1 = inst->GetInput(1).GetInst(); - if (!input1->IsConst() || - input1->CastToConstant()->GetRawValue() != ark::coretypes::String::STRING_LENGTH_SHIFT) { + if (!input1->IsConst() || input1->CastToConstant()->GetRawValue() != 1) { return nullptr; } lenArray = inst->GetInput(0).GetInst(); @@ -183,9 +181,6 @@ bool TryInsertFieldInst(IntrinsicInst *intrinsic, RuntimeInterface::ClassPtr kla if (runtime->IsFieldVolatile(field)) { loadField->SetVolatile(true); } - if (type == DataType::REFERENCE && runtime->NeedsPreReadBarrier()) { - loadField->SetNeedBarrier(true); - } memObj = loadField; intrinsic->ReplaceUsers(loadField); } @@ -412,11 +407,7 @@ bool Peepholes::PeepholeGetTypeInfo([[maybe_unused]] GraphVisitor *v, IntrinsicI #endif // COMPILER_DEBUG_CHECKS auto obj = intrinsic->GetInput(0).GetInst(); auto typeInfo = obj->GetObjectTypeInfo(); - // When encoding LoadType, we call resolveType from the method and id, - // but the union class has no methods -- no vtable/itable is built for it, - // so there cannot be an instance of the union class. - // #27093 - if (typeInfo && (graph->GetRuntime()->GetClassType(typeInfo.GetClass()) != ClassType::UNION_CLASS)) { + if (typeInfo) { auto loadType = graph->CreateInstLoadType(DataType::REFERENCE, intrinsic->GetPc()); loadType->SetMethod(graph->GetMethod()); loadType->SetTypeId(graph->GetRuntime()->GetClassIdWithinFile(graph->GetMethod(), typeInfo.GetClass())); @@ -429,17 +420,6 @@ bool Peepholes::PeepholeGetTypeInfo([[maybe_unused]] GraphVisitor *v, IntrinsicI return true; } -bool Peepholes::PeepholeNullcheck([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) -{ - auto input = intrinsic->GetInput(0).GetInst(); - if (IsInstNotNull(input)) { - intrinsic->ReplaceUsers(input); - intrinsic->ClearFlag(inst_flags::NO_DCE); - return true; - } - return false; -} - bool Peepholes::PeepholeStringFromCharCodeSingle([[maybe_unused]] GraphVisitor *v, IntrinsicInst *intrinsic) { ASSERT(intrinsic->GetInputsCount() == 2U); diff --git a/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.cpp b/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.cpp index bc5ce14e79..24fe7f6087 100644 --- a/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.cpp +++ b/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.cpp @@ -21,8 +21,8 @@ #include "optimizer/ir_builder/inst_builder.h" #include "optimizer/ir_builder/ir_builder.h" #include "optimizer/ir/inst.h" -#include "libarkfile/bytecode_instruction.h" -#include "libarkfile/bytecode_instruction-inl.h" +#include "bytecode_instruction.h" +#include "bytecode_instruction-inl.h" namespace ark::compiler { @@ -96,7 +96,7 @@ void InstBuilder::BuildLdObjByName(const BytecodeInstruction *bcInst, compiler:: template void InstBuilder::BuildLdObjByName(const BytecodeInstruction *bcInst, compiler::DataType::Type type); template void InstBuilder::BuildLdObjByName(const BytecodeInstruction *bcInst, compiler::DataType::Type type); -static std::pair ExtractIntrinsicIdByType(DataType::Type type) +std::pair ExtractIntrinsicIdByType(DataType::Type type) { switch (type) { case DataType::REFERENCE: @@ -338,30 +338,4 @@ void InstBuilder::BuildCallByName(const BytecodeInstruction *bcInst) template void InstBuilder::BuildCallByName(const BytecodeInstruction *bcInst); template void InstBuilder::BuildCallByName(const BytecodeInstruction *bcInst); -void InstBuilder::BuildNullcheck(const BytecodeInstruction *bcInst) -{ - auto pc = GetPc(bcInst->GetAddress()); - Inst *obj = GetDefinitionAcc(); - - auto saveState = CreateSaveState(Opcode::SaveState, pc); - AddInstruction(saveState); - - if (GetGraph()->IsBytecodeOptimizer()) { - RuntimeInterface::IntrinsicId intrinsicId = RuntimeInterface::IntrinsicId::INTRINSIC_COMPILER_ETS_NULLCHECK; - auto intrinsic = GetGraph()->CreateInstIntrinsic(DataType::BOOL, pc, intrinsicId); - - intrinsic->AllocateInputTypes(GetGraph()->GetAllocator(), 2_I); - intrinsic->AppendInput(obj); - intrinsic->AddInputType(DataType::REFERENCE); - intrinsic->AppendInput(saveState); - intrinsic->AddInputType(DataType::NO_TYPE); - - AddInstruction(intrinsic); - } else { - auto nullCheck = GetGraph()->CreateInstNullCheck(DataType::REFERENCE, pc, obj, saveState); - AddInstruction(nullCheck); - UpdateDefinitionAcc(nullCheck); - } -} - } // namespace ark::compiler diff --git a/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.h b/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.h index 6e29b9c642..8b8689d50e 100644 --- a/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.h +++ b/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_builder.h @@ -33,6 +33,5 @@ template void BuildEquals(const BytecodeInstruction *bcInst); void BuildTypeof(const BytecodeInstruction *bcInst); void BuildIstrue(const BytecodeInstruction *bcInst); -void BuildNullcheck(const BytecodeInstruction *bcInst); #endif // PLUGINS_ETS_COMPILER_OPTIMIZER_IR_BUILDER_ETS_INST_BUILDER_H diff --git a/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_templates.yaml b/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_templates.yaml index a21ed79984..b6f0d0d0ff 100644 --- a/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_templates.yaml +++ b/static_core/plugins/ets/compiler/optimizer/ir_builder/ets_inst_templates.yaml @@ -43,8 +43,6 @@ BuildTypeof(instruction); % when "ISTRUE" BuildIstrue(instruction); - % when "NULLCHECK" - BuildNullcheck(instruction); % else UNREACHABLE(); % end diff --git a/static_core/plugins/ets/compiler/optimizer/ir_builder/js_interop/js_interop_inst_builder.cpp b/static_core/plugins/ets/compiler/optimizer/ir_builder/js_interop/js_interop_inst_builder.cpp index afade019b4..92e50525ec 100644 --- a/static_core/plugins/ets/compiler/optimizer/ir_builder/js_interop/js_interop_inst_builder.cpp +++ b/static_core/plugins/ets/compiler/optimizer/ir_builder/js_interop/js_interop_inst_builder.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2025 Huawei Device Co., Ltd. + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,8 +16,8 @@ #include "optimizer/ir_builder/inst_builder.h" #include "optimizer/ir_builder/ir_builder.h" #include "optimizer/ir/inst.h" -#include "libarkfile/bytecode_instruction.h" -#include "libarkfile/bytecode_instruction-inl.h" +#include "bytecode_instruction.h" +#include "bytecode_instruction-inl.h" namespace ark::compiler { diff --git a/static_core/plugins/ets/compiler/product_options.h b/static_core/plugins/ets/compiler/product_options.h deleted file mode 100644 index 3758a39c1c..0000000000 --- a/static_core/plugins/ets/compiler/product_options.h +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef PANDA_PLUGINS_ETS_COMPILER_PRODUCT_OPTIONS_H -#define PANDA_PLUGINS_ETS_COMPILER_PRODUCT_OPTIONS_H - -#include - -namespace ark::ets { - -// clang-format off -static constexpr std::array AVAILABLE_COMPILER_OPTIONS_IN_PRODUCT = { - "compiler-inline-external-methods", - "compiler-regex", -}; -// clang-format on - -} // namespace ark::ets - -#endif // PANDA_PLUGINS_ETS_COMPILER_PRODUCT_OPTIONS_H diff --git a/static_core/plugins/ets/dfx/heap_helpers.cpp b/static_core/plugins/ets/dfx/heap_helpers.cpp deleted file mode 100644 index f0f99acbcf..0000000000 --- a/static_core/plugins/ets/dfx/heap_helpers.cpp +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "heap_helpers.h" - -#include "include/object_header.h" -#include "plugins/ets/runtime/ets_platform_types.h" -#include "plugins/ets/runtime/ets_vm.h" - -namespace ark::dfx { - -uint64_t GetHeapTotalSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return static_cast(etsVM->GetHeapManager()->GetTotalMemory()); -} - -uint64_t GetHeapUsedSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return etsVM->GetMemStats()->GetFootprintHeap(); -} - -uint64_t GetArrayBufferSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - auto arrayBufferClass = ark::ets::PlatformTypes()->escompatArrayBuffer->GetRuntimeClass(); - - size_t totalArrayBufferSize = 0; - auto arrayBufferVisitor = [&totalArrayBufferSize, &arrayBufferClass](ark::ObjectHeader *obj) { - if (obj->IsInstanceOf(arrayBufferClass)) { - totalArrayBufferSize += obj->ObjectSize(); - } - }; - - etsVM->GetHeapManager()->IterateOverObjectsWithSuspendAllThread(arrayBufferVisitor); - - return static_cast(totalArrayBufferSize); -} - -uint64_t GetProcessHeapLimitSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return static_cast(etsVM->GetHeapManager()->GetMaxMemory()); -} - -uint64_t GetHeapLimitSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return static_cast(etsVM->GetHeapManager()->GetMaxMemory()); -} - -uint64_t GetFullGCLongTimeCount(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return etsVM->GetFullGCLongTimeCount(); -} - -uint64_t GetAccumulatedFreeSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return etsVM->GetGCStats()->GetMemStats()->GetFreedHeap(); -} - -uint64_t GetAccumulatedAllocateSize(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return etsVM->GetGCStats()->GetMemStats()->GetAllocatedHeap(); -} - -uint64_t GetGCCount(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return static_cast(etsVM->GetGC()->GetCounter()); -} - -uint64_t GetGCDuration(ani_vm *vm) -{ - auto *etsVM = ark::ets::PandaEtsVM::FromAniVM(vm); - return etsVM->GetGCStats()->GetTotalDuration(); -} - -} // namespace ark::dfx diff --git a/static_core/plugins/ets/dfx/heap_helpers.h b/static_core/plugins/ets/dfx/heap_helpers.h deleted file mode 100644 index cecead58f6..0000000000 --- a/static_core/plugins/ets/dfx/heap_helpers.h +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef PANDA_RUNTIME_ETS_DFX_HEAP_HELPERS_H -#define PANDA_RUNTIME_ETS_DFX_HEAP_HELPERS_H - -#include - -namespace ark::dfx { - -__attribute__((visibility("default"))) uint64_t GetHeapTotalSize(ani_vm *vm); // total heap size -__attribute__((visibility("default"))) uint64_t GetHeapUsedSize(ani_vm *vm); // total obj size in heap -__attribute__((visibility("default"))) uint64_t GetArrayBufferSize(ani_vm *vm); // total size of all array buffer obj -__attribute__((visibility("default"))) uint64_t GetProcessHeapLimitSize(ani_vm *vm); // heap config setting -__attribute__((visibility("default"))) uint64_t GetHeapLimitSize(ani_vm *vm); // heap config setting -__attribute__((visibility("default"))) uint64_t GetFullGCLongTimeCount(ani_vm *vm); // long time gc count -__attribute__((visibility("default"))) uint64_t GetAccumulatedFreeSize(ani_vm *vm); // accumulate free size -__attribute__((visibility("default"))) uint64_t GetAccumulatedAllocateSize(ani_vm *vm); // accumulate alloc size -__attribute__((visibility("default"))) uint64_t GetGCCount(ani_vm *vm); // total number of GC cycles triggered -__attribute__((visibility("default"))) uint64_t GetGCDuration(ani_vm *vm); // total time spent in last GC - -} // namespace ark::dfx -#endif // PANDA_RUNTIME_ETS_DFX_HEAP_HELPERS_H diff --git a/static_core/plugins/ets/doc/build-docs.sh b/static_core/plugins/ets/doc/build-docs.sh index 58b15bffdf..02c563605e 100755 --- a/static_core/plugins/ets/doc/build-docs.sh +++ b/static_core/plugins/ets/doc/build-docs.sh @@ -34,8 +34,6 @@ BUILD_SYSTEM_ARKTS=no BUILD_INTEROP_JS=no BUILD_CONCURRENCY=no -CHECK_CODE=no - function print_help() { local help_message=" @@ -64,13 +62,6 @@ OPTIONS * release: Run extra checks and build. Default is ${BUILD_TYPE}. - --check-code If this option is specified, the scipt verifies - correctness of code examples in the specification. - - --panda-path=[PATH] Path to panda binaries needed to verify correctness - of code examples in the specification. - - TARGETS A white-space separated list of documents to build. Supported stable @@ -166,14 +157,6 @@ for i in "$@"; do fi ;; - --check-code) - CHECK_CODE=yes - ;; - --panda-path=*) - PANDA_ROOT="${i//[-a-z]*=/}/bin" - export PANDA_ROOT - ;; - # Main build targets: cookbook) @@ -265,18 +248,6 @@ check_ubuntu_version mkdir -p "${BUILD_DIR}" -if [[ "${CHECK_CODE}" == "yes" ]]; then - echo "Checking code examples validity" - if [[ ! -v PANDA_ROOT ]]; then - echo "Error: Panda directory is not set" - exit 1 - fi - - if [[ "${BUILD_CONCURRENCY}" == "yes" ]]; then - python3 $(dirname "$SCRIPT_DIR")/tools/specification_checker.py --spec-folder "${SCRIPT_DIR}/concurrency" - fi -fi - if [[ "${BUILD_SPEC}" == "yes" ]]; then echo "spec: Validating ${SCRIPT_DIR}/spec" python3 "${SCRIPT_DIR}/validate_spec.py" "${SCRIPT_DIR}/spec" diff --git a/static_core/plugins/ets/doc/build_all.bat b/static_core/plugins/ets/doc/build_all.bat deleted file mode 100644 index 08d8a53623..0000000000 --- a/static_core/plugins/ets/doc/build_all.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -echo Building all ArkTS docs ... -call build_annotations.bat -call build_cookbook.bat -call build_stdlib.bat -call build_tutorial.bat -call build_system.bat -call build_spec.bat -call build_runtime.bat -echo all pdf files are in appropriate 'build' sub-folder for every document diff --git a/static_core/plugins/ets/doc/build_annotations.bat b/static_core/plugins/ets/doc/build_annotations.bat deleted file mode 100644 index 8904b0fd67..0000000000 --- a/static_core/plugins/ets/doc/build_annotations.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd annotations -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\annotations\build -move *.pdf ..\annotations\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/build_cookbook.bat b/static_core/plugins/ets/doc/build_cookbook.bat deleted file mode 100644 index 7f3f2fa3db..0000000000 --- a/static_core/plugins/ets/doc/build_cookbook.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd cookbook -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\cookbook\build -move *.pdf ..\cookbook\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/build_runtime.bat b/static_core/plugins/ets/doc/build_runtime.bat deleted file mode 100644 index 2daa425d8c..0000000000 --- a/static_core/plugins/ets/doc/build_runtime.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd runtime -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\runtime\build -move *.pdf ..\runtime\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/build_spec.bat b/static_core/plugins/ets/doc/build_spec.bat deleted file mode 100644 index e5421e2c87..0000000000 --- a/static_core/plugins/ets/doc/build_spec.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd spec -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\spec\build -move *.pdf ..\spec\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/build_stdlib.bat b/static_core/plugins/ets/doc/build_stdlib.bat deleted file mode 100644 index a927a39463..0000000000 --- a/static_core/plugins/ets/doc/build_stdlib.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd stdlib -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\stdlib\build -move *.pdf ..\stdlib\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/build_system.bat b/static_core/plugins/ets/doc/build_system.bat deleted file mode 100644 index 93e1ae3c09..0000000000 --- a/static_core/plugins/ets/doc/build_system.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd system_arkts -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\system_arkts\build -move *.pdf ..\system_arkts\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/build_tutorial.bat b/static_core/plugins/ets/doc/build_tutorial.bat deleted file mode 100644 index 6136b94f50..0000000000 --- a/static_core/plugins/ets/doc/build_tutorial.bat +++ /dev/null @@ -1,23 +0,0 @@ -@rem Copyright (c) 2021-2024 Huawei Device Co., Ltd. -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. - -@echo off -md __build -cd tutorial -sphinx-build -n -b latex . ..\__build -cd ..\__build -latexmk -f -silent -pdf -dvi- -ps- *.tex -md ..\tutorial\build -move *.pdf ..\tutorial\build -cd .. -rmdir /S /Q __build diff --git a/static_core/plugins/ets/doc/concurrency/02_concurrency_stdlib.rst b/static_core/plugins/ets/doc/concurrency/02_concurrency_stdlib.rst index dd2507f2ea..8a626cb608 100644 --- a/static_core/plugins/ets/doc/concurrency/02_concurrency_stdlib.rst +++ b/static_core/plugins/ets/doc/concurrency/02_concurrency_stdlib.rst @@ -23,7 +23,7 @@ In general we have several directions for concurrency in |LANG| stdlib: - interfaces for coroutines - concurrency/async primitives required for the compatibility with JS/TS - support for the OHOS-specific concurrency features(such as TaskPool, AsyncLock, etc.) -- new concurrent containers/concurrency primitives +- new concurrent containers/concurrency primitives ************************* Interfaces for coroutines @@ -41,12 +41,11 @@ Job object represents the job which will be scheduled and executed. There is no If coroutine completes normally, it puts its return value to the linked Job instance and marks the Job as successfully completed. -If the during execution job function throws error this error will be propagated to the `Await` method and rethrown. +If the during execution job function throws error this error will be propagated to the `Await` method and rethrown. In general Job class have these public API: .. code-block:: typescript - :donotcompile: class Job { constructor(v: T) { @@ -54,7 +53,7 @@ In general Job class have these public API: } // Awaits execution of the job. - // On success return value, on fail the Error will be thrown + // On success return value, on fail the Error will be thrown Await() : T { // ... } @@ -77,7 +76,6 @@ launch For creation of the coroutine you should use standard library function ``launch`` with this signature(Note: final inteface is still will be defined, current is just to demonstrate semantic): .. code-block:: typescript - :donotcompile: function launch>() { coroFun: F, @@ -93,7 +91,7 @@ The created coroutine will be scheduled on the one of the coroutine worker threa Schedule ======== -The `Schedule` is the method of `Coroutine` class which notifies Scheduler that current coroutine could be suspended at this moment, +The `Schedule` is the method of `Coroutine` class which notifies Scheduler that current coroutine could be suspended at this moment, so if it is non-empty execution queue - current coroutine will be suspended and best suspended coroutine will be scheduled on current coroutine worker. *************************************** @@ -109,7 +107,7 @@ Promise The Promise object is introduced for the support asynchronous API. It is the object which represents a proxy for the result of the asynchronous operation. The semantic of the Promise is similar to the semantic of Promise in JS/TS if it used in the context of one coroutine. Promise object represents the values returned by call of async function. -It belongs to the core packages of the standard library, +It belongs to the core packages of the standard library, and thus it is imported by default and may be used without any qualification. @@ -141,21 +139,19 @@ The following methods are used as follows: method .. - Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: Any) => E|PromiseLike throws)|undefined): Promise + Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: NullishType) => E|PromiseLike throws)|undefined): Promise .. code-block:: typescript - :donotcompile: - Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: Any) => E|PromiseLike throws)|undefined): Promise + Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: NullishType) => E|PromiseLike throws)|undefined): Promise - ``catch`` takes one argument(the callback called after promise is rejected) and returns ``Promise`` .. code-block-meta: .. code-block:: typescript - :donotcompile: - Promise::catch(onRejected?: (error: Any) => U|PromiseLike throws): Promise + Promise::catch(onRejected?: (error: NullishType) => U|PromiseLike throws): Promise - ``finally`` takes one argument (the callback called after ``promise`` is either fulfilled or rejected) and returns ``Promise``. @@ -166,9 +162,8 @@ The following methods are used as follows: call .. code-block:: typescript - :donotcompile: - finally(onFinally?: () => void throws): Promise + finally(onFinally?: () => void throws): Promise --------------------------- @@ -182,7 +177,7 @@ either default promise rejection handler will be called upon the whole program c Concurrency extensions **************************** -Besides JS/TS compatible concurrency primitives, there are some extensions in |LANG| which introduce some additional concurrency functionality. +Besides JS/TS compatible concurrency primitives, there are some extensions in |LANG| which introduce some additional concurrency functionality. ======== TaskPool @@ -203,7 +198,7 @@ The unit of execution in TaskPool is concurrent function (function with @Concurr We have some limitations for the TaskPool used in JS context: * functions used as tasks in TaskPool should be defined with @Concurrent decorator -* it is not allowed to use closure variables in @Concurrent function +* it is not allowed to use closure variables in @Concurrent function --------------------------- TaskPool for static context @@ -232,10 +227,9 @@ For this we need introduce special type of lock, which will not block the whole .. uml:: os_based_lock_deadlock_seq.plantuml -In Java language we have `synchronized` methods for guarantee that only one thread executing such method. For |LANG| we can introduce special class `AsyncLock`, which have method `async` for running code +In Java language we have `synchronized` methods for guarantee that only one thread executing such method. For |LANG| we can introduce special class `AsyncLock`, which have method `async` for running code .. code-block:: ts - :donotcompile: :linenos: class AsyncLock { @@ -249,7 +243,6 @@ In Java language we have `synchronized` methods for guarantee that only one thre The semantic of such lock should be something like this: .. code-block:: c++ - :donotcompile: :linenos: void Lock(ObjectHeader* obj) { @@ -260,7 +253,7 @@ The semantic of such lock should be something like this: yield(); // suspend current coroutine } } - + bool try_lock(ObjectHeader* obj) { if (obj.SetState(LOCKED) == SUCCESS) { return SUCCESS; @@ -271,12 +264,11 @@ The semantic of such lock should be something like this: For this it is enough to have special state in `ObjectHeader` and change it atomically. Or we can have just some atomic field `state`. -But `while (1)` can be optimized if we will have explicit scheduler for such tasks. For example we can group locked coroutines by lock object, and have queue for unlock events, when we process something from this queue, we can add next coroutine from this queue to the queue for scheduler. +But `while (1)` can be optimized if we will have explicit scheduler for such tasks. For example we can group locked coroutines by lock object, and have queue for unlock events, when we process something from this queue, we can add next coroutine from this queue to the queue for scheduler. Example with `AsyncLock` usage: .. code-block:: javascript - :donotcompile: :linenos: import {AsyncLock, SyncMode} from '@ohos.sync'; @@ -411,4 +403,4 @@ For VMs without shared memory, however, the implementation of AsyncLock requires AsyncLock Deadlock Detector =========================== -It is possible that the developer make a mistake and create code which lead to the deadlock situation while using AsyncLock. For this it is possible to specify the maximum time which we expect is enough for successful Lock acquirence. In case if we reach the limit - the provided by developer callback will be called. +It is possible that the developer make a mistake and create code which lead to the deadlock situation while using AsyncLock. For this it is possible to specify the maximum time which we expect is enough for successful Lock acquirence. In case if we reach the limit - the provided by developer callback will be called. diff --git a/static_core/plugins/ets/doc/concurrency/conf.py b/static_core/plugins/ets/doc/concurrency/conf.py index 8dfb385652..e4dfc1d297 100644 --- a/static_core/plugins/ets/doc/concurrency/conf.py +++ b/static_core/plugins/ets/doc/concurrency/conf.py @@ -22,17 +22,13 @@ import os import sys - -from sphinx.directives.code import CodeBlock -from docutils import nodes - -sys.path.insert(0, os.path.abspath("..")) +sys.path.insert(0, os.path.abspath('..')) import sphinx_common_conf # -- Project information ----------------------------------------------------- -project = "{p} Concurrency Specification".format(p=sphinx_common_conf.project) +project = u'{p} Concurrency Specification'.format(p=sphinx_common_conf.project) author = sphinx_common_conf.author copyright = sphinx_common_conf.copyright version = sphinx_common_conf.version @@ -47,18 +43,17 @@ today_fmt = sphinx_common_conf.default_today_fmt # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ["sphinx_markdown_builder", "sphinx.ext.todo", "sphinxcontrib.plantuml"] +extensions = ['sphinx_markdown_builder', 'sphinx.ext.todo', 'sphinxcontrib.plantuml'] # Add any paths that contain templates here, relative to this directory. templates_path = [] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: -source_suffix = [".rst"] +source_suffix = ['.rst'] # The master toctree document. -# CC-OFFNXT(G.NAM.01): project code style -master_doc = "index" +master_doc = 'index' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -77,33 +72,8 @@ html_theme = sphinx_common_conf.default_html_theme # -- Options for HTMLHelp output --------------------------------------------- # Output file base name for HTML help builder. -# CC-OFFNXT(G.NAM.01): project code style -htmlhelp_basename = "Documentationdoc" +htmlhelp_basename = 'Documentationdoc' # include refs to todos # CC-OFFNXT(G.NAM.01): project code style todo_include_todos = True - -# -- Directive options extension --------------------------------------------- - - -class CustomCodeBlock(CodeBlock): - option_spec = CodeBlock.option_spec.copy() - option_spec["language-to-compile"] = lambda arg: arg - option_spec["donotcompile"] = lambda arg: True - - def run(self): - language_value = self.options.get("language-to-compile") - no_compile = "donotcompile" in self.options - result = super().run() - - for node in result: - if isinstance(node, nodes.literal_block): - node["language-to-compile"] = language_value - node["donotcompile"] = no_compile - - return result - - -def setup(app): - app.add_directive("code-block", CustomCodeBlock, override=True) diff --git a/static_core/plugins/ets/doc/cookbook/TS_compatibility.rst b/static_core/plugins/ets/doc/cookbook/TS_compatibility.rst index ab0b50e7f6..cffbb8ff79 100644 --- a/static_core/plugins/ets/doc/cookbook/TS_compatibility.rst +++ b/static_core/plugins/ets/doc/cookbook/TS_compatibility.rst @@ -624,28 +624,3 @@ use of the field. */ -| - -.. _Differences in Overriding Properties: - -Differences in Overriding Properties ------------------------------------- - -|LANG| treats fields and properites (i.e., pairs of accessors) differently. -Thus, mixing fields and properties is not allowed in |LANG|, while the object -model is |TS| is different as it allows such a mix. - -.. code-block:: typescript - :linenos: - - class C { - num: number = 1 - } - interface I { - num: number - } - class D extends C implements I { - num: number = 2 // ArkTS compile-time error, conflict in overriding - // Typescript accepts such situation - } - diff --git a/static_core/plugins/ets/doc/cookbook/recipes.rst b/static_core/plugins/ets/doc/cookbook/recipes.rst index e3d5569dea..ca34dd49a1 100644 --- a/static_core/plugins/ets/doc/cookbook/recipes.rst +++ b/static_core/plugins/ets/doc/cookbook/recipes.rst @@ -6189,90 +6189,3 @@ fixed implementation. } -.. _R237: - -|CB_R| Implementation signature must have a predefiend form - -|CB_RULE| ``arkts-no-arbitrary-implementation-signature`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. meta: - :keywords: ImplementationSignatureForm - -|CB_ERROR| - -An implementation signature must have a predefiend form. - -|LANG| enforces any implementation signature to have the most general -form: method_of_function_name (...parameter: Any[]): Any - - -|CB_BAD| -~~~~~~~~ - -.. code-block:: typescript - - interface I { - foo (p: number): void - foo (p: string): void - } - - class C implements I { - foo (p: number|string): void {} - } - -|CB_OK| -~~~~~~~ - -.. code-block:: typescript - - interface I { - foo (p: number): void - foo (p: string): void - } - - class C implements I { - foo (...p: Any[]): Any {} - } - -.. _R238: - -|CB_R| No types based on type '``this``' ----------------------------------------- - -|CB_RULE| ``arkts-no-types-based-on-this-type`` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. meta: - :keywords: NoThisBasedTypes - -|CB_ERROR| - -No this-based types allowed. - -|LANG| enforces that type 'this' can be used only as a function or method -return type. No other types can use 'this' as their parts. - - -|CB_BAD| -~~~~~~~~ - -.. code-block:: typescript - - class C { - f1: this | number = 5 - f2?: this[] - } - const c = new C - c.f2 = [ new C, new C, new C] - -|CB_OK| -~~~~~~~ - -.. code-block:: typescript - - - class C { - foo (): this { return this } - } - diff --git a/static_core/plugins/ets/doc/runtime/04_names.rst b/static_core/plugins/ets/doc/runtime/04_names.rst index f57cf3b6c0..2ed7d603f0 100644 --- a/static_core/plugins/ets/doc/runtime/04_names.rst +++ b/static_core/plugins/ets/doc/runtime/04_names.rst @@ -147,7 +147,7 @@ We use the following easily readable name format to display all the mangled name mangledName: specialCharacter - elementType + '-' elementType ('-' additionalInformation)? ('-' counter)? @@ -161,17 +161,17 @@ where: The following table lists all the currently used **elementType** values: .. table:: - :widths: 30, 30, 30 + :widths: 25, 25, 25, 25 - ==================== ==================== ==================== - ``annotation`` ``lambda_invoke`` ``set`` - -------------------- -------------------- -------------------- - ``async`` ``module_init`` ``union_prop`` - -------------------- -------------------- -------------------- - ``get`` ``partial`` - -------------------- -------------------- -------------------- - ``lambda`` ``property`` - ==================== ==================== ==================== + ==================== ==================== ==================== ==================== + ``annotation`` ``get`` ``lit_array_prop`` ``property`` + -------------------- -------------------- -------------------- -------------------- + ``async`` ``lambda_invoke`` ``local_class`` ``set`` + -------------------- -------------------- -------------------- -------------------- + ``array_type`` ``lambda_obj`` ``module_init`` ``union_prop`` + -------------------- -------------------- -------------------- -------------------- + ``enum`` ``lit_array`` ``partial`` + ==================== ==================== ==================== ==================== All the currently used mangled names in the bytecode can be found in this table: @@ -179,60 +179,76 @@ All the currently used mangled names in the bytecode can be found in this table: .. table:: :widths: 35, 65 - ========================================== ==================================================== + ========================================== ========================================================= **Entity type** **Mangled name** - ========================================== ==================================================== - ``annotation`` ``%%annotation-annotation_name-member_name-counter`` - ------------------------------------------ ---------------------------------------------------- - ``async`` ``%%async-function_name`` - ------------------------------------------ ---------------------------------------------------- - ``get`` ``%%get-member_name`` - ------------------------------------------ ---------------------------------------------------- - ``lambda`` ``%%lambda-lambda_invoke-counter`` - ------------------------------------------ ---------------------------------------------------- - ``lambda_invoke`` ``lambda_invoke-counter`` - ------------------------------------------ ---------------------------------------------------- - ``partial`` ``%%partial-class_name`` - ------------------------------------------ ---------------------------------------------------- - ``property`` ``%%property-member_name`` - ------------------------------------------ ---------------------------------------------------- - ``set`` ``%%set-member_name`` - ------------------------------------------ ---------------------------------------------------- - ``union_prop`` ``%%union_prop-prop_type-prop_name`` - ========================================== ==================================================== + ========================================== ========================================================= + ``annotation`` ``%%-annotation-annotation_name`` + ------------------------------------------ --------------------------------------------------------- + ``async`` ``%%-async-function_name`` + ------------------------------------------ --------------------------------------------------------- + ``array_type`` ``%%-array_type-base_name-classProp_name`` + ------------------------------------------ --------------------------------------------------------- + ``enum`` ``%%-enum-enum_name`` + ------------------------------------------ --------------------------------------------------------- + ``get`` ``%%-get-member_name`` + ------------------------------------------ --------------------------------------------------------- + ``lambda_invoke`` ``%%-lambda_invoke-counter`` + ------------------------------------------ --------------------------------------------------------- + ``lambda_obj`` ``%%-lambda_obj-lambda_invoke-counter`` + ------------------------------------------ --------------------------------------------------------- + ``lit_array`` ``%%-lit_array-base_name`` + ------------------------------------------ --------------------------------------------------------- + ``lit_array_prop`` ``%%-lit_array_prop-base_name-field_name`` + ------------------------------------------ --------------------------------------------------------- + ``local_class`` ``%%-local_class-class_name-counter`` + ------------------------------------------ --------------------------------------------------------- + ``module_init`` ``%%init`` + ------------------------------------------ --------------------------------------------------------- + ``partial`` ``%%-partial-class_name`` + ------------------------------------------ --------------------------------------------------------- + ``property`` ``%%-property-member_name`` + ------------------------------------------ --------------------------------------------------------- + ``set`` ``%%-set-member_name`` + ------------------------------------------ --------------------------------------------------------- + ``union_prop`` ``%%-union_prop-prop_type-prop_name`` + ========================================== ========================================================= Simple examples to show from which STS code what mangled name is created: .. table:: - :widths: 40, 60 + :widths: 45, 55 +----------------------------------------------------+-------------------------------------------------------+ | **Annotation** | **Mangled name** | +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | @interface ExampleAnnotation { | | - | testArr: int[] = [0, 1, 2] | | - | } | | - | | | - | class MyClass { | | - | @ExampleAnnotation() | | - | foo() {} | //The 'foo' method will have the annotation on it.| - | } | %%annotation-ExampleAnnotation-testArr-1 | + | @interface ExampleAnnotation {} | %%-annotation-ExampleAnnotation | +----------------------------------------------------+-------------------------------------------------------+ .. table:: - :widths: 55, 45 + :widths: 60, 40 +----------------------------------------------------+-------------------------------------------------------+ | **Async function** | **Mangled name** | +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | async function exampleFunc() {} | //the original name will not change | + | async function exampleFunc() {} | the original name will not change | + | | | + | //The generated pair of the original. | %%-async-exampleFunc | + | public static %%-async-exampleFunc(): Object {}| | + +----------------------------------------------------+-------------------------------------------------------+ + +.. table:: + :widths: 45, 55 + + +----------------------------------------------------+-------------------------------------------------------+ + | **Enum** | **Mangled name** | + +====================================================+=======================================================+ + | .. code-block:: typescript | .. code-block:: typescript | | | | - | //The generated pair of the original. | %%async-exampleFunc | - | public static %%async-exampleFunc(): Object {} | | + | enum exampleEnum {Red, Blue, Green} | %%-enum-exampleEnum | +----------------------------------------------------+-------------------------------------------------------+ .. table:: @@ -243,7 +259,7 @@ Simple examples to show from which STS code what mangled name is created: +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | interface ExampleInterface { | %%get-testMember | + | interface ExampleInterface { | %%-get-testMember | | get testMember(): String | | | } | | +----------------------------------------------------+-------------------------------------------------------+ @@ -252,11 +268,24 @@ Simple examples to show from which STS code what mangled name is created: :widths: 40, 60 +----------------------------------------------------+-------------------------------------------------------+ - | **Lambda** | **Mangled name** | + | **Lambda object** | **Mangled name** | + +====================================================+=======================================================+ + | .. code-block:: typescript | .. code-block:: typescript | + | | | + | let exampleFunc = (): void => {} | %%-lambda_obj-lambda_invoke-0 | + +----------------------------------------------------+-------------------------------------------------------+ + +.. table:: + :widths: 40, 60 + + +----------------------------------------------------+-------------------------------------------------------+ + | **Local class** | **Mangled name** | +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | let exampleFunc = (): void => {} | %%lambda-lambda_invoke-0 | + | function exampleFunc() { | %%-local_class-LClass-0 | + | class LClass {} | | + | } | | +----------------------------------------------------+-------------------------------------------------------+ .. table:: @@ -267,7 +296,7 @@ Simple examples to show from which STS code what mangled name is created: +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | interface TestType {} | %%partial-TestType | + | interface TestType {} | %%-partial-TestType | | | | | function exampleFunc(a0: Partial) {} | | +----------------------------------------------------+-------------------------------------------------------+ @@ -280,7 +309,7 @@ Simple examples to show from which STS code what mangled name is created: +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | interface TestInterface { | %%property-testMember | + | interface TestInterface { | %%-property-testMember | | testMember: String | | | } | | | | | @@ -297,7 +326,7 @@ Simple examples to show from which STS code what mangled name is created: +====================================================+=======================================================+ | .. code-block:: typescript | .. code-block:: typescript | | | | - | interface ExampleInterface { | %%set-testMember | + | interface ExampleInterface { | %%-set-testMember | | set testMember(a0: String): void | | | } | | +----------------------------------------------------+-------------------------------------------------------+ @@ -312,7 +341,7 @@ Simple examples to show from which STS code what mangled name is created: | | | | class A { | //it will only be generated when accessing | | testMember: Number = 9 | //the 'testMember' member in 'foo' through 'a0' | - | } | %%union_prop-std_core_Double-testMember | + | } | %%-union_prop-std_core_Double-testMember | | | | | class B { | | | testMember: Number = 8 | | diff --git a/static_core/plugins/ets/doc/runtime/05_imports.rst b/static_core/plugins/ets/doc/runtime/05_imports.rst index 3bfb2a22a5..03d65bd3c9 100644 --- a/static_core/plugins/ets/doc/runtime/05_imports.rst +++ b/static_core/plugins/ets/doc/runtime/05_imports.rst @@ -189,10 +189,6 @@ core runtime side. abcFiles: ABCFile[] // formed from the `paths` list and define the load order } - // platform API - export class MemoryRuntimeLinker extends AbcRuntimeLinker { - constructor(parentLinker: RuntimeLinker | undefined, rawAbcFiles: Array>) - } .. code-block:: typescript :linenos: @@ -215,12 +211,6 @@ core runtime side. /* load an isolated resource */ let isolated = new AbcRuntimeLinker(boot, ["dynamics.abc"]) - /* native function to read binary files */ - native function loadRawFiles() : Array> - - /* load abc file from binary */ - let memLinker = new MemoryRuntimeLinker(boot, loadRawFiles()); - Resolution request from runtime has two inputs: - Runtime class descriptor, which is computed from the **runtime name** used by diff --git a/static_core/plugins/ets/doc/spec/0_authors.rst b/static_core/plugins/ets/doc/spec/0_authors.rst index 55242dc189..1bdc1ba2a6 100644 --- a/static_core/plugins/ets/doc/spec/0_authors.rst +++ b/static_core/plugins/ets/doc/spec/0_authors.rst @@ -26,7 +26,6 @@ Contributors: - Huo Qingyi - Kanatov Alexey - Nedoria Aleksei -- Olshevsky Vladimir - Pavlyuk Alexander - Pei Jiajun - Polyakov Alexander diff --git a/static_core/plugins/ets/doc/spec/10_interfaces.rst b/static_core/plugins/ets/doc/spec/10_interfaces.rst index c04de28722..79dedae5b3 100644 --- a/static_core/plugins/ets/doc/spec/10_interfaces.rst +++ b/static_core/plugins/ets/doc/spec/10_interfaces.rst @@ -32,7 +32,6 @@ type that: interface type reference type instance variable - field property method member @@ -43,9 +42,12 @@ type that: Creating an instance of interface type is not possible. An interface can be declared *direct extension* of one or more other -interfaces. If so, the interface inherits all members from the interfaces +interfaces. In that case the interface inherits all members from the interfaces it extends. Inherited members can be optionally overridden or hidden. + + + A class can be declared to *directly implement* one or more interfaces. Any instance of a class implements all methods specified by its interface(s). A class implements all interfaces that its direct superclasses and direct @@ -59,41 +61,31 @@ support common behaviors without sharing a superclass. instantiation direct extension inheritance - inherited member extension superinterface direct implementation superclass object overriding - hiding - overridden member - hidden member shadowing The value of a variable declared *interface type* can be a reference to any -instance of a class that implements the specified interface. However, it is not +instance of class that implements the specified interface. However, it is not enough for a class to implement all methods of an interface. A class or one of its superclasses must be actually declared to implement an interface. Otherwise, the class is not considered to implement the interface. -The rules of subtyping are discussed in detail in -:ref:`Subtyping for Classes and Interfaces`. +Interfaces are assignable to the class +``Object`` (see :ref:`Assignability`). .. index:: - value variable interface type interface - class - superclass - declaration - instance reference method implementation assignability - Object | @@ -113,7 +105,6 @@ The syntax of *interface declarations* is presented below: .. index:: interface declaration reference type - syntax .. code-block:: abnf @@ -146,7 +137,6 @@ The scope of an interface declaration is defined in :ref:`Scopes`. class name generic interface generic declaration - shadowing scope | @@ -173,22 +163,24 @@ the declared interface also implements all interfaces that the interface implementation declared interface interface - inheritance A :index:`compile-time error` occurs if: -- `typeReference`` in the ``extends`` clause refers directly to, or is an - alias of non-interface type. -- Interface type named by ``typeReference`` is not :ref:`Accessible`. +- Interface type named by ``typeReference`` in the ``extends`` clause of an + interface declaration is not accessible (see :ref:`Accessible`). - Type arguments (see :ref:`Type Arguments`) of ``typeReference`` denote a parameterized type that is not well-formed (see :ref:`Generic Instantiations`). - The ``extends`` graph has a cycle. +- At least one ``typeReference`` is an alias of one of primitive, enumeration, + union, or function types. + +Each ``typeReference`` in the ``extends`` clause of an interface declaration +must name an accessible interface type (see :ref:`Accessible`). Otherwise, a +:index:`compile-time error` occurs. .. index:: extends clause - alias - non-interface type interface declaration interface type access @@ -196,9 +188,13 @@ A :index:`compile-time error` occurs if: scope type argument parameterized type - generic instantiation - extends graph + type-parameterized declaration well-formed parameterized type + primitive type + enumeration type + union type + function type + enum type If an interface declaration (possibly generic) ``I`` <``F``:sub:`1` ``,..., F``:sub:`n`> (:math:`n\geq{}0`) contains an ``extends`` clause, then the @@ -222,12 +218,10 @@ All *direct superinterfaces* of the parameterized interface type ``I`` generic generic declaration extends clause - interface type - declaration direct superinterface + compile-time error parameterized interface substitution - superinterface The transitive closure of the direct superinterface relationship results in the *superinterface* relationship. @@ -243,6 +237,7 @@ Interface *K* is a superinterface of *I* if: transitive closure direct superinterface superinterface + compile-time error direct subinterface interface subinterface @@ -256,21 +251,11 @@ If superinterfaces have default implementations (see :ref:`Default Interface Method Declarations`) for some method ``m``, then the following occurs: -.. index:: - interface - extension - Object - class - superinterface - implementation - - Method ``m`` with an override-compatible signature (see - :ref:`Override-Compatible Signatures`) declared within the current interface - overrides all other ``m`` methods inherited from superinterfaces; or -- All methods inherited from superinterfaces refer to the same implementation, - and this default implementation is the current interface method; or -- One method ``m`` in some superinterface overrides all other methods from - other superinterfaces. + :ref:`Override-Compatible Signatures`) must be declared within the current + interface that extends these interfaces; or +- All these methods refer to the same implementation, and this default + implementation is the current class method. Otherwise, a :index:`compile-time error` occurs. @@ -291,18 +276,6 @@ Otherwise, a :index:`compile-time error` occurs. // OK, as foo() from I3 and foo() from I4 refer to the same implementation } - class Base {} - class Derived extends Base {} - - interface II1 { - foo (p: Base) {} - } - interface II2 { - foo (p: Derived) {} - } - interface II3 extends II1, II2 {} - // foo() from II1 overrides foo() from II2 - .. index:: interface object @@ -314,19 +287,19 @@ Otherwise, a :index:`compile-time error` occurs. | -.. _Interface Members: +.. _Interface Body: -Interface Members -***************** +Interface Body +************** .. meta: frontend_status: Done -An *interface declaration* can contain *interface members*, i.e., its +*Interface body* can declare members of an interface, i.e., its properties (see :ref:`Interface Properties`) and methods (see :ref:`Interface Method Declarations`). -The syntax of *interface member* is presented below: +The syntax of *interface body* is presented below: .. code-block:: abnf @@ -334,7 +307,6 @@ The syntax of *interface member* is presented below: : annotationUsage? ( interfaceProperty | interfaceMethodDeclaration - | overloadInterfaceMethodDeclaration ) ; @@ -344,26 +316,39 @@ declares or inherits is specified in :ref:`Scopes`. The usage of annotations is discussed in :ref:`Using Annotations`. .. index:: + interface body interface interface member interface type property method - syntax interface declaration method declaration scope inheritance annotation -*Interface members* include: +| + +.. _Interface Members: + +Interface Members +***************** + +.. meta: + frontend_status: Done + +*Interface type members* are as follows: -- Members declared explicitly in the interface declaration; +- Members declared in the interface body (see :ref:`Interface Body`); - Members inherited from a direct superinterface (see :ref:`Superinterfaces and Subinterfaces`). A :index:`compile-time error` occurs if the method explicitly declared by the -interface has the same name as the ``Object``'s ``public`` method. +interface has the same name as the ``Object``'s ``public`` method, but their +signatures are different or override-compatible (see +:ref:`Override-Compatible Signatures`) with default implementations (see +:ref:`Default Interface Method Declarations`). .. code-block:: typescript :linenos: @@ -375,12 +360,15 @@ interface has the same name as the ``Object``'s ``public`` method. .. index:: interface - interface member + interface body + interface type member inheritance - interface declaration direct superinterface Object public method + signature + override-compatible signature + implementation An interface inherits all members of the interfaces it extends (see :ref:`Interface Inheritance`). @@ -396,8 +384,6 @@ methods of an interface type must not be the same (see method declaration scope interface type - interface declaration - scope | @@ -409,7 +395,7 @@ Interface Properties .. meta: frontend_status: Done -*Interface property* can be defined in the form of a field or an *accessor* +*Interface property* can be defined in the form of a field or an accessor (a getter or a setter). The syntax of *interface property* is presented below: @@ -422,24 +408,6 @@ The syntax of *interface property* is presented below: | 'set' identifier '(' parameter ')' ; -.. index:: - interface - property - field - accessor - getter - setter - interface property - syntax - -An interface property is a *required property* (see -:ref:`Required Interface Properties`) if it is one of the following: - -- Explicit *accessor*, i.e., a getter or a setter; or -- Form of a field that has no '``?``'. - -Otherwise, it is an *optional property* (see :ref:`Optional Interface Properties`). - If '``?``' is used after the name of the property, then the property type is semantically equivalent to ``type | undefined``. @@ -454,54 +422,23 @@ semantically equivalent to ``type | undefined``. property: Type | undefined } -.. index:: - interface property - interface - property - required property - optional property - accessor - getter - setter - field - property type - semantic equivalent - -| - -.. _Required Interface Properties: - -Required Interface Properties -============================= - -.. meta: - frontend_status: Done -A *required property* defined in the form of a field implicitly -defines the following: +A property defined in the form of a field implicitly defines the following: -- Getter, if the property is marked as ``readonly``; +- A getter, if the property is marked as ``readonly``; - Otherwise, both a getter and a setter with the same name. -A type annotation for the field defines return type for the getter -and type of parameter for the setter. - -As a result, the following declarations have the same effect: +As a result, the following definitions have the same effect: .. index:: property interface - required property interface property field accessor readonly getter setter - property - type annotation - parameter - return type .. code-block:: typescript :linenos: @@ -515,92 +452,16 @@ As a result, the following declarations have the same effect: set color(s: string) } -**Note.** A *required property* defined in a form of accessors does not -define any additional entities in the interface. - A class that implements an interface with properties can also use a field or -an accessor notation (see :ref:`Implementing Required Interface Properties`, -:ref:`Implementing Optional Interface Properties`). +an accessor notation (see :ref:`Implementing Interface Properties`). .. index:: - string implementation - required property - accessor interface interface property - optional property field - notation + accessor notation property - entity - class - -| - -.. _Optional Interface Properties: - -Optional Interface Properties -============================= - -.. meta: - frontend_status: Done - -An *optional property* can be defined in two forms: - -- Short form ``identifier '?' ':' T``; or -- Explicit form ``identifier ':' T | undefined``. - - -In both cases, ``identifier`` has effective type ``T | undefined``. - -The *optional property* implicitly defines the following: - -.. index:: - optional property - interface property - identifier - -- A getter (if the property is marked as ``readonly``); -- Otherwise, both a getter and a setter with the same name. - -Accessors have implicitly defined bodies, in this aspect they are similar to -:ref:`Default Interface Method Declarations`. -However, |LANG| does not support explicitly defined accessors with bodies. - -The following declaration: - -.. code-block:: typescript - :linenos: - - interface I { - num?: number - } - --- implicitly declares two accessors: - -.. code-block:: typescript - :linenos: - - interface I { - get num(): number | undefined { return undefined } - set num(x: number | undefined) { throw new InvalidStoreAccessError } - } - -If the default setter is not overridden in a class that implements the interface, -``InvalidStoreAccessError`` is thrown at attempt to set value of an optional -property. See also :ref:`Implementing Optional Interface Properties`. - -.. index:: - getter - setter - implementation - value - optional property - readonly - accessor - body - interface property | @@ -612,8 +473,8 @@ Interface Method Declarations .. meta: frontend_status: Done -An ordinary *interface method declaration* specifies the method name and -signature, and is called *abstract*. Its implicit accessibility is ``public``. +An ordinary *interface method declaration* specifies the method's name and +signature, and is called *abstract*. An interface method can have a body (see :ref:`Default Interface Method Declarations`) as an experimental feature. @@ -628,7 +489,6 @@ as an experimental feature. signature interface method method body - abstract declaration The syntax of *interface method declaration* is presented below: @@ -639,41 +499,41 @@ The syntax of *interface method declaration* is presented below: | interfaceDefaultMethodDeclaration ; +The methods declared within interface bodies are implicitly ``public``. + +A :index:`compile-time error` occurs if the body of an interface declares a +method with a name that is already used for a property in this declaration. .. index:: - interface method declaration + interface body + public method + method + interface + property declaration - syntax | -.. _Interface Method Overload Signatures: +.. _Interface Method Overloading: -Interface Method Overload Signatures -==================================== +Interface Method Overloading +============================ .. meta: - frontend_status: Partly + frontend_status: Done |LANG| allows specifying several interface methods with a single name. -It is a special case of :ref:`Declarations with Overload Signatures`. - -An *implementation body* cannot be defined in the interface, but must -be defined in a class that implements this interface. +A :index:`compile-time error` occurs if signatures of these methods are +overload-equivalent (see :ref:`Overload-Equivalent Signatures`). .. index:: interface method - interface method - overload signature - name - implementation - -The order of textual declarations of overloaded signatures affects the manner -a type check is performed at the call site, starting from the signature declared -first, and then proceeding in the proper sequence. + overloading + method overloading + overload-equivalent method -The use of *overload signatures* is represented by the example below: +Overloading methods used in a class are represented in the example below: .. code-block-meta: @@ -681,25 +541,21 @@ The use of *overload signatures* is represented by the example below: :linenos: interface I { - foo(): number // 1st signature - foo(p: string): string // 2nd signature - foo(p1: string, p2?: number): number // 3rd signature + foo() // 1st method + foo(x: string) // 2st method + } + class C implements I { + foo() {/*1st method body*/} + foo(x: string) {/*2nd method body*/} } function demo(i: I) { - i.foo() // ok, call matches the 1st signature - i.foo("aa") // ok, call matches the 2nd signature - let n: number = i.foo("aa") // compile-time error, as the 2nd signature returns string - n = i.foo("aa", undefined) // ok, call matches the 3rd signature + i.foo() // ok, 1st method is called + i.foo("aa") // ok, 2nd method is called } .. index:: - implementation body - overload signatures - declaration - call site - signature - string + implementation | @@ -711,9 +567,8 @@ Interface Inheritance .. meta: frontend_status: Done -Interface *I* inherits all properties and methods from its direct -superinterfaces. Semantic checks are described in -:ref:`Overriding and Overload Signatures in Interfaces`. +Interface *I* inherits all properties and methods from its direct superinterfaces. +Semantic checks are described in :ref:`Overloading and Overriding in Interfaces`. **Note**. The semantic rules of methods apply to properties because any interface property implicitly defines a getter, a setter, or both. @@ -724,11 +579,7 @@ Private methods defined in superinterfaces are not accessible (see .. index:: inheritance interface - interface inheritance direct superinterface - overriding - overload signature - method superinterface semantic check private method @@ -746,14 +597,11 @@ superinterface of *I*. .. index:: interface - declaration - method private method compatibility instance method override-compatible signature access - access modifier superinterface private method signature diff --git a/static_core/plugins/ets/doc/spec/11_enums.rst b/static_core/plugins/ets/doc/spec/11_enums.rst index 1176543457..031b603dac 100644 --- a/static_core/plugins/ets/doc/spec/11_enums.rst +++ b/static_core/plugins/ets/doc/spec/11_enums.rst @@ -43,15 +43,12 @@ The syntax of *enumeration declaration* is presented below: user-defined type constant named constant - value - enumeration declaration - syntax Type ``const enum`` is supported for source-level compatibility with |TS|. -The modifier ``const`` is skipped as it has no impact on ``enum`` semantics in +Type ``const`` is skipped as it has no impact on ``enum`` semantics in |LANG|. -Enumerations with explicitly specified type values are described in +Enumerations with explicitly specifed type values are described here :ref:`Enumeration with explicit type`. Qualification by type is mandatory to access the enumeration constant, except @@ -76,7 +73,6 @@ are exported along with the mandatory qualification ``Color``. .. index:: source-level compatibility const enum - const modifier semantics qualification access @@ -96,33 +92,29 @@ If constant expression is omitted, then the value of the enum constant is set implicitly to an integer value (see :ref:`Enumeration Integer Values`). A :index:`compile-time error` occurs if integer or ``string`` type enumeration -constants are combined in a single enumeration. +constants are combined in one enumeration. .. index:: enum constant numeric constant expression - expression - value - integer value type int constant expression + numeric value enumeration constant integer type string type enumeration -A type to which all enumeration constant values belong is called *enumeration -base type*. This type is ``int``, ``long``, ``string``, or any explicitly -specified valid type (see :ref:`Enumeration with Explicit Type`). +A type all enumeration constant values belongs is called *enumeration base type*. +It is either ``int``, or ``long``, or ``string``. .. index:: enumeration base type - enumeration constant value - type Any enumeration constant is of type ``enumeration``. Implicit conversion (see :ref:`Enumeration to Constants Type Conversions`) of an enumeration constant -to numeric types or type ``string`` depends on the type of constants. +to integer types or type ``string`` depends on the type of +constants. In addition, all enumeration constant names must be unique. Otherwise, a :index:`compile-time error` occurs. @@ -145,11 +137,6 @@ Empty ``enum`` is supported as a corner case for compatibility with |TS|. .. index:: enumeration constant - conversion - enumeration type - numeric type - string type - constant type enumeration conversion type string @@ -180,12 +167,11 @@ explicitly: enum constant enumeration constant integer type - type value expression constant expression - int type - long type + type int + type long .. code-block:: typescript :linenos: @@ -203,9 +189,10 @@ immediately preceding constant plus one. If some but not all constants have their values set explicitly, then the values of the constants are set by the following rules: -- The constant which is the first and has no explicit value gets zero value. -- Constant with an explicit value has that explicit value. -- Constant that is not the first and has no explicit value takes the value +- The value of the first constant without an explicit value is assigned to + zero. +- A constant with an explicit value has that explicit value. +- A constant that is not the first and has no explicit value takes the value of the immediately preceding constant plus one. In the example below, the value of ``Red`` is 0, of ``Blue``, 5, and of @@ -217,8 +204,8 @@ In the example below, the value of ``Red`` is 0, of ``Blue``, 5, and of enum Color { Red, Blue = 5, Green } .. index:: - int type - long type + type int + type long integer literal assignment constant @@ -263,10 +250,7 @@ using the method ``toString``: .. index:: enumeration constant - value - conversion - type - string type + type string method .. code-block:: typescript @@ -293,7 +277,7 @@ constant has the priority: :linenos: enum E { One = 1, one = 1, oNe = 1 } - console.log(E.fromValue (1)) // prints: oNe + console.log(E[1 as E]) // prints: oNe Additional methods available for enumeration types and constants are discussed @@ -302,10 +286,7 @@ in :ref:`Enumeration Methods` in the chapter Experimental Features. .. index:: method enumeration type - value - name constant - enumeration constant .. raw:: pdf diff --git a/static_core/plugins/ets/doc/spec/12_errors.rst b/static_core/plugins/ets/doc/spec/12_errors.rst index 5a08da5049..87e9daef87 100644 --- a/static_core/plugins/ets/doc/spec/12_errors.rst +++ b/static_core/plugins/ets/doc/spec/12_errors.rst @@ -30,7 +30,7 @@ execution can be interrupted by the occurrence of situations of two kinds: not exist on a specified path, read permissions are not available, or else). -The term *error* in this Specification denotes all kinds of error situations. +The term *error* in this specification denotes all kinds of error situations. .. index:: execution @@ -43,7 +43,6 @@ The term *error* in this Specification denotes all kinds of error situations. completion failure path read permission - error | @@ -57,7 +56,7 @@ Errors *Error* is the base class of all error situations. Defining a new error class is normally not required because essential error classes for -various cases (e.g., ``RangeError``) are defined in the +various cases (e.g., ``ArrayIndexOutOfBoundsError``) are defined in the standard library (see :ref:`Standard Library`). However, a developer can handle a new error situation by using ``Error`` @@ -66,12 +65,9 @@ handling is provided below: .. index:: error - base class class error handling derived class - standard library - | @@ -91,7 +87,7 @@ handling is provided below: return array[index] // access array } catch (error) { - if (error instanceof RangeError) // invalid index detected + if (error instanceof ArrayIndexOutOfBoundsError) // invalid index detected return null throw new UnknownError (error) // Unknown error occurred } @@ -109,14 +105,13 @@ Errors are handled by using ``try`` statements (see :ref:`Try Statements`). .. index:: runtime system - standard library + standard libraty generic class subclass error situation throw statement error try statement - runtime system .. code-block:: typescript :linenos: diff --git a/static_core/plugins/ets/doc/spec/13_modules.rst b/static_core/plugins/ets/doc/spec/13_modules.rst index ae9f9c572d..94ffea9577 100644 --- a/static_core/plugins/ets/doc/spec/13_modules.rst +++ b/static_core/plugins/ets/doc/spec/13_modules.rst @@ -30,11 +30,11 @@ needs to use them. .. Only exported declarations are available for the 3rd party tools and programs written in other programming languages. -Compilation units can be of three kinds: +There are three kinds of compilation units: -- *Modules* (discussed below), -- *Declaration modules* (discussed in detail in :ref:`Declaration Modules`), -- *Libraries* (discussed in detail in :ref:`Libraries`). +- *Separate modules* (discussed below), +- *Declaration modules* (discussed in detail in :ref:`Declaration Modules`), and +- *Packages* (discussed in detail in :ref:`Packages`). The syntax of *compilation units* is presented below: @@ -42,20 +42,22 @@ The syntax of *compilation units* is presented below: .. code-block:: abnf compilationUnit: - moduleDeclaration + separateModuleDeclaration + | packageDeclaration | declarationModule - | libraryDescription ; + packageDeclaration: + packageModule+ + ; -All *compilation units* are stored in a file system or a database (see -:ref:`Compilation Units in Host System`). +All modules (both separate modules and packages) are stored in a file +system or a database (see :ref:`Compilation Units in Host System`). .. index:: compilation unit compilation scope - own scope variable function class @@ -64,24 +66,25 @@ All *compilation units* are stored in a file system or a database (see access accessibility export - module + separate module + package declaration module storage file system database - host system | -.. _Modules: +.. _Separate Modules: -Modules -******* +Separate Modules +**************** .. meta: frontend_status: Done -A *module* can optionally consist of the following four parts: +*Separate module* is a module without a package header. A *separate module* +can optionally consist of the following four parts: #. Import directives that enable referring imported declarations in a module; @@ -92,16 +95,16 @@ A *module* can optionally consist of the following four parts: #. Re-export directives. -The syntax of *module* is presented below: +The syntax of *separate module* is presented below: .. code-block:: abnf - moduleDeclaration: + separateModuleDeclaration: importDirective* (topDeclaration | topLevelStatements | exportDirective)* ; -Every module can directly use all exported entities from the standard library -(see :ref:`Standard Library Usage`). +Every module can directly use all exported entities from the core packages of +the standard library (see :ref:`Standard Library Usage`). .. code-block:: typescript :linenos: @@ -112,19 +115,20 @@ Every module can directly use all exported entities from the standard library } .. index:: - module + separate module + package header import directive imported declaration module entity + package top-level declaration top-level statement re-export directive import console - syntax standard library - console + core package | @@ -156,13 +160,11 @@ An import declaration has the following two parts: entity binding module - directive import declaration import path import binding qualified form unqualified form - syntax The syntax of *import directives* is presented below: @@ -187,7 +189,7 @@ The syntax of *import directives* is presented below: ; defaultBinding: - 'type'? identifier + identifier ; selectiveBindings: @@ -195,7 +197,7 @@ The syntax of *import directives* is presented below: ; nameBinding: - `type`? identifier bindingAlias? + identifier bindingAlias? | 'default' 'as' identifier ; @@ -204,34 +206,49 @@ The syntax of *import directives* is presented below: ; Each binding adds a declaration or declarations to the scope of a module -(see :ref:`Scopes`). Any declaration added so must be distinguishable in the -declaration scope (see :ref:`Declarations`). +or a package (see :ref:`Scopes`). Any declaration added so must be +distinguishable in the declaration scope (see +:ref:`Distinguishable Declarations`). Import with ``type`` modifier is discussed in :ref:`Import Type Directive`. A :index:`compile-time error` occurs if: -- Declaration added to the scope of a module by a binding is not - distinguishable; +- Declaration added to the scope of a module or a package by a binding is + not distinguishable; - Compilation unit imports itself directly: ``importPath`` refers to the - file in which the current module is stored; or -- ``import type`` is used, and one of bindings also uses ``type``. + file in which the current module is stored; +- Import in a package module refers to a file which contains a package + module. + + +.. code-block:: typescript + :linenos: + + // File1 + package X + import * as XX from "File2" /* This is in fact import of the same + compilation unit. Compile-time error! */ + import * as YY from "File3" /* This is import of one package module but not + the entire package. Compile-time error! */ + + // File2 + package X + import * as ZZ fromn "File2" // Import the same file. Compile-time error! + + // File3 + package Y .. index:: binding declaration module + package scope - declaration + distinguishable declaration declaration scope import directive - type - type modifier - modifier - storage - import type - compilation unit | @@ -267,11 +284,11 @@ the name of the imported compilation unit. .. index:: import binding import - binding qualified name entity declaration scope module + entity name access export @@ -325,9 +342,6 @@ There are two forms of *default import binding*: declaration export module - default keyword - identifier - selective import | @@ -350,40 +364,16 @@ the original name. Otherwise, the identifier specified in *binding alias* is used. In the latter case, the bounded entity is no longer accessible (see :ref:`Accessible`) under the original name. -If an *identifier* denotes an *overload alias* (see -:ref:`Function Overload Declarations`), then all its accessible overloaded -functions, either imported or not, are considered in the process of -:ref:`Overload Resolution for Overload Declarations` for call validity. - -.. code-block:: typescript - :linenos: - - // File1 - export function f1(p: number) {} - export function f2(p: string) {} - export overload foo {f1, f2} - - // File2 - import {foo} from "File1" // Note: f1 and f2 are not mandatory imported - foo(5) // f1() is called - foo("a string") // f2() is called - - // File3 - import {foo, f1} from "File1" // Note: f1 is accessible as well - f1(5) // f1() is called - foo(6) // f1() is called - foo("a string") // f2() is called - - -*Selective binding* that uses exported entities is represented in the examples -below: +If the *identifier* denotes several exported overloaded functions (see +:ref:`Function, Method and Constructor Overloading`), then all these functions +are added to the declaration scope. This situation is represented in the +examples below: .. index:: import binding simple name identifier export - call name declaration scope overloaded function @@ -391,9 +381,6 @@ below: access accessibility bound entity - selective binding - overload alias - overload declaration binding .. code-block:: typescript @@ -402,8 +389,7 @@ below: export const PI = 3.14 export function sin(d: number): number {} -**Note**. The import path of the module is irrelevant and replaced for '``...``' -in the examples below: +The import path of the module is now irrelevant: +---------------------------------+--+--------------------------------------+ | Import | | Usage | @@ -424,7 +410,7 @@ in the examples below: | | | is not accessible */ | +---------------------------------+--+--------------------------------------+ -A single import statement can list several names as follows: +A single import statement can list several names: +-------------------------------------+--+---------------------------------+ | Import | | Usage | @@ -450,7 +436,6 @@ below in :ref:`Several Bindings for One Import Path`. import statement import path binding - import | @@ -463,13 +448,13 @@ Import Type Directive frontend_status: Partly todo: no CTE for type import -An import directive can have a ``type`` modifier exclusively for a better -syntactic compatibility with |TS| (also see :ref:`Export Type Directive`). -|LANG| supports no additional semantic checks for entities imported by using -*import type* directives. +An import directive can have ``type`` modifier exclusively to be more +compatibile with |TS| syntactically, see also :ref:`Export Type Directive`. +|LANG| does not support any additional semantic checks for entities +imported using *import type* directives. -The semantic checks performed by the compiler in |TS| but not in |LANG| -are represented by the following code: +The following code illustrates semantic checks done by |TS| +but not by |LANG| compiler: .. code-block:: typescript :linenos: @@ -490,43 +475,11 @@ are represented by the following code: let c1 = new Class1() // OK let c2 = new Class2() // Compile-time error in Typescript, OK in ArkTS -Another form of *type import* is used when ``type`` is attached to a name -binding. This allows mixing general import and ``type`` import. - -.. code-block:: typescript - :linenos: - - // File module.ets - console.log ("Module initialization code") - - class Class1 {/*body*/} - class Class2 {} - export {Class1, type Class2} - - // MainProgram.ets - - import {Class1, type Class2 } from "./module.ets" - - let c1 = new Class1() // OK - let c2 = new Class2() // Compile-time error in Typescript, OK in ArkTS - .. index:: import binding - import directive + export type import import type - import type directive - type modifier - semantic check - syntax - compatibility - name binding - binding - export type - compiler - module - general import - type import | @@ -538,15 +491,9 @@ Import Path .. meta: frontend_status: Done -*Import path* is a string literal that determines how an imported -compilation unit must be placed. - -*Import path* can include the following: - -- Initial dot '``.``' or two dots '``..``' followed by the slash character '``/``'. -- One or more path components (the subset of characters and case sensitivity of - path components must follow the path rules of a host filesystem). -- Slash characters separating components of the path. +*Import path* is a string literal---represented as a combination of the +slash character '``/``' and a sequence alpha-numeric characters---that +determines how an imported compilation unit must be placed. The slash character '``/``' is used in import paths irrespective of the host system. The backslash character is not used in this context. @@ -557,73 +504,52 @@ the import path to a file path of the host system. .. index:: import binding - string literal - compilation unit import path alpha-numeric character import compilation import path context - filesystem + file system relative import path non-relative import path resolution - path component - case sensitivity - subset - file path - path rule - slash character - backslash character The compiler uses the following rule to define the kind of imported compilation units, and the exact placement of the source code: -- If *import path* refers to a file that contains a library description, then - the import directive is resolved by using all exported declarations of that - library. - -- If *import path* refers to the file that stores a declaration module or a - module, then the import directive is resolved by using all exported - declarations of that module. +- If *import path* refers to a folder denoted by the last name in the resolved + file path, then the compiler imports the package that resides in the + folder. The source code of the package is comprised of all the |LANG| source + files in the folder. -- If *import path* refers to both a declaration module and a module - with the same name, then reference to the module prevails. - -- Otherwise (i.e., if the *import path* resolution fails to match any of the - above cases), a :index:`compile-time error` occurs. - - - **Note**. Any reference to a file can be in a form of a filename with its - extension specified explicitly, or simply a filename. In the latter case - the compiler uses its own algorithm and appends different extensions in a - certain order to find the file to process. The order and set of extensions - to append is defined by the compiler implementation. + Otherwise, the compiler imports the module the *import path* refers to. + The source code of the module is the file with the extension provided + within the import path, or---if none is so provided---appended by the + compiler. +- If *import path* refers to both a declaration module and a separate module or + package with the same name, then the reference to the separate module or + package prevails. .. index:: compilation unit - compiler import path file path - storage - declaration module - compiler implementation - implementation import resolution host system source code + package module folder extension resolving filename - module + separate module -A *relative import path* starts with '``./``' or '``../``'. Examples of relative -paths are presented below: +A *relative import path* starts with '``./``' or '``../``' as in the following +examples: .. code-block:: typescript :linenos: @@ -639,7 +565,18 @@ import* is used on compilation units to maintain their relative location. import * as Utils from "./mytreeutils" -Other import paths are *non-relative*. +Other import paths are *non-relative* as in the examples below: + +.. code-block:: typescript + :linenos: + + "/net/http" + "std/components/treemap" + +.. index:: + relative import path + relative import + non-relative import Resolving a *non-relative path* depends on the compilation environment. The definition of the compiler environment can be particularly provided in a @@ -663,22 +600,9 @@ and ``std/components/treemap`` to ``/arkts/stdlib/components/treemap``. File name, placement, and format are implementation-specific. -If the above configuration is in effect, the first path maps directly to -filesystem after applying ``baseUrl``, while ``std`` in the second path is -replaced for ``/arkts/stdlib``. Examples of non-relative paths are presented -below. - -.. code-block:: typescript - :linenos: - - "/net/http" - "std/components/treemap" - .. index:: relative import path - relative path non-relative import path - non-relative path compilation environment compiler environment imported file @@ -691,9 +615,6 @@ below. path mapping resolution implementation - treemap - filesystem - | @@ -739,14 +660,10 @@ applied to a single name: import directive import path import declaration - import import outcome declaration scope - scope entity binding - module - name +-----------------------------+----------------------------+------------------------------+ | Case | Sample | Rule | @@ -799,9 +716,6 @@ applied to a single name: import alias access - binding - qualified name - accessibility | @@ -816,10 +730,11 @@ Standard Library Usage todo: fix stdlib and tests, then import only core by default todo: add escompat to spec and default -All entities exported from the standard library (see :ref:`Standard Library`) -are accessible as simple names (see :ref:`Accessible`) in any compilation unit -across all its scopes. Using these names as programmer-defined entities causes -to a :index:`compile-time error` in accordance to :ref:`Declarations`. +All entities exported from the core packages of the standard library (see +:ref:`Standard Library`) are accessible as simple names (see :ref:`Accessible`) +in any compilation unit across all its scopes. Using these names as +programmer-defined entities causes to a :index:`compile-time error` in +accordance to :ref:`Distinguishable Declarations`. .. code-block:: typescript :linenos: @@ -831,14 +746,13 @@ to a :index:`compile-time error` in accordance to :ref:`Declarations`. compilation unit entity export - scope - name accessibility + package access simple name standard library access - declaration + distinguishable declaration | @@ -871,9 +785,7 @@ The syntax of *declaration module* is presented below: compilation unit import ambient declaration - type alias declaration module - declaration The following example shows how ambient functions can be declared and exported: @@ -891,9 +803,8 @@ and cannot be used by modules that import this declaration module: .. index:: declaration export - export keyword + keyword export declaration module - declaration ambient function .. code-block:: typescript @@ -945,14 +856,8 @@ Top-Level Declarations *Top-level declarations* declare top-level types (``class``, ``interface``, or ``enum`` see :ref:`Type Declarations`), top-level variables (see :ref:`Variable Declarations`), constants (see :ref:`Constant Declarations`), -functions (see :ref:`Function Declarations` and -:ref:`Function with Overload Signatures`), -overloads (see :ref:`Overload Declarations`), -namespaces (see :ref:`Namespace Declarations`), -or other declarations (see :ref:`Ambient Declarations`, :ref:`Annotations`, -:ref:`Accessor Declarations`, :ref:`Functions with Receiver`, -:ref:`Accessors with Receiver`). -Top-level declarations can be exported. +functions (see :ref:`Function Declarations`), or namespaces (see +:ref:`Namespace Declarations`). Top-level declarations can be exported. The syntax of *top-level declarations* is presented below: @@ -965,14 +870,11 @@ The syntax of *top-level declarations* is presented below: | variableDeclarations | constantDeclarations | functionDeclaration - | functionWithOverloadSignatures - | overloadFunctionDeclaration + | functionWithReceiverDeclaration + | accessorWithReceiverDeclaration | namespaceDeclaration | ambientDeclaration | annotationDeclaration - | accessorDeclaration - | functionWithReceiverDeclaration - | accessorWithReceiverDeclaration ) ; @@ -996,19 +898,6 @@ The syntax of *top-level declarations* is presented below: function variable declaration type declaration - function declaration - accessor declaration - function with receiver - accessor with receiver - overload signature - overload - overload declaration - namespace - namespace declaration - declaration - ambient declaration - annotation - syntax The usage of annotations is discussed in :ref:`Using Annotations`. @@ -1042,11 +931,10 @@ used only inside the compilation unit they are declared in. export modifier access accessible declaration - declaration accessibility compilation unit import directive - import + declaration In addition, only one top-level declaration can be exported by using the default export directive. It allows specifying no declared name when importing (see @@ -1064,8 +952,6 @@ occurs if more than one top-level declaration is marked as ``default``. top-level declaration export default export directive - declaration - name import import binding @@ -1098,14 +984,12 @@ constant variable that is exported by using this export directive. Otherwise, a .. index:: exported declaration - expression top-level declaration modifier export constant variable evaluation result export - default target - export target + export default export directive accessibility declaration @@ -1114,7 +998,6 @@ constant variable that is exported by using this export directive. Otherwise, a compilation unit default export directive import - value | @@ -1135,71 +1018,44 @@ The syntax of *namespace declarations* is presented below: namespaceDeclaration: 'namespace' qualifiedName - '{' namespaceMember* staticBlock? namespaceMember* '}' - ; - - namespaceMember: - topDeclaration | exportDirective + '{' topDeclaration* initializerBlock? topDeclaration* '}' ; -Namespace can have an initializer block (*staticBlock* -in *namespace declaration* syntax above). -The initializer block is called only in case when at least one -of exported namespace members is used in the program. It is guaranteed -that its code is called before any use of namespace members (see -:ref:`Static Initialization` for detail). +Namespace can have an initializer block (see :ref:`Static Initialization`). -The usage of a namespace is represented in the example below: +An usage example is presented below: .. code-block:: typescript :linenos: namespace NS1 { - export function foo() { } + export function foo() { ... } export let variable = 1234 export const constant = 1234 - export let someVar: string - - // Will be called before any use of NS1 members + export let someVar: SomeType static { - someVar = "some string" - console.log("Init for NS1 done") + someVar = new SomeType } - export function bar() {} + export bar } - namespace NS2 { - export const constant = 1 - // Will never be called since NS2 members are never used - static { - console.log("Init for NS2 done") - } - export function bar() {} - } - - export function bar() {} // That is a different bar() + function bar() {} if (NS1.variable == NS1.constant) { NS1.variable = 4321 } - NS1.bar() // namespace bar() is called - bar() // top-level bar() is called + NS1.bar() .. index:: namespace namespace declaration - qualified name qualifier access entity - syntax export qualified name initializer block namespace variable - static initialization - call - **Note**. A namespace must be exported to be used in another compilation unit. @@ -1228,12 +1084,6 @@ The usage of a namespace is represented in the example below: .. index:: namespace compilation unit - variable - constant - function - compatibility - string - embedded namespace **Note**. Embedded namespaces are allowed. @@ -1252,6 +1102,8 @@ The usage of a namespace is represented in the example below: ExternalSpace.variable = 4321 } +.. index:: + embedded namespace **Note**. Namespaces with identical namespace names in a single compilation unit merge their exported declarations into a single namespace. A duplication @@ -1261,14 +1113,11 @@ Only one of the merging namespaces can have an initializer. Otherwise, a :index:`compile-time error` occurs. .. index:: - embedded namespace namespace namespace name compilation unit export declaration - exported declaration - non-exported declaration initializer .. code-block:: typescript @@ -1309,12 +1158,15 @@ Only one of the merging namespaces can have an initializer. Otherwise, a A.goo() - // File + // File1 + package P namespace A { export function foo() { ... } export function bar() { ... } } + // File2 + package P namespace A { function goo() { bar() } // exported bar() is accessible in the same namespace export function foo() { ... } // Compile-time error as foo() was already defined @@ -1332,15 +1184,8 @@ embedded namespaces as represented below: .. index:: namespace - export function - qualified name - notation shortcut notation embedded namespace - access - accessibility - export function - initializer .. code-block:: typescript :linenos: @@ -1371,10 +1216,10 @@ This code illustrates the usage of declarations in the following case: A.B.C.foo() // Valid function call, as 'B' and 'C' are implicitly exported -If an ambient namespace (see :ref:`Ambient Namespace Declarations`) defined in -a module (see :ref:`Modules`), then all ambient namespace +If an ambient namespace (see :ref:`Ambient Namespace Declarations`) belongs to +a separate module (see :ref:`Separate Modules`), then all ambient namespace declarations are accessible across all declarations and top-level statements of -the module. +the separate module. .. code-block:: typescript :linenos: @@ -1397,15 +1242,13 @@ the module. .. index:: namespace - export namespace - module + separate module ambient namespace declaration accessible declaration access accessibility top-level statement - module | @@ -1440,12 +1283,10 @@ The syntax of *export directive* is presented below: export directive export declaration - exported declaration renaming re-export re-exporting declaration compilation unit - syntax | @@ -1484,7 +1325,6 @@ module. .. index:: selective export directive - selective export top-level declaration export export directive @@ -1517,7 +1357,7 @@ The syntax of *single export directive* is presented below: singleExportDirective: 'export' - ( `type`? identifier + ( identifier | 'default' (expression | identifier) | '{' identifier 'as' 'default' '}' ) @@ -1526,9 +1366,8 @@ The syntax of *single export directive* is presented below: .. index:: export directive declaration - export - declaration name compilation unit + own name syntax If ``default`` is present, then only one such export directive is possible in @@ -1557,7 +1396,6 @@ export: export directive compilation unit directive - syntax The directive in the example below exports a constant variable anonymously: @@ -1583,7 +1421,6 @@ The directive in the example below exports a constant variable anonymously: constant variable export directive re-export - declaration identifier import @@ -1597,10 +1434,10 @@ Export Type Directive .. meta: frontend_status: Done -An export directive can have a ``type`` modifier exclusively for a better -syntactic compatibility with |TS| (also see :ref:`Import Type Directive`). +An export directive can have ``type`` modifier exclusively to be more +compatibile with |TS| syntactically, see also :ref:`Import Type Directive`. -The *export type directive* syntax is presented below: +The syntax of *export type directive* is presented below: .. code-block:: abnf @@ -1608,21 +1445,15 @@ The *export type directive* syntax is presented below: 'export' 'type' selectiveBindings ; -|LANG| supports no additional semantic checks for entities exported by using -*export type* directives. -If a binding uses ``type``, then a :index:`compile-time error` occurs. +|LANG| does not support any additional semantic checks for entities +exported using *export type* directive. .. index:: export declaration export type export directive - semantic check - entity - directive - binding - type syntax | @@ -1661,17 +1492,12 @@ The syntax of *re-export directive* is presented below: declaration re-export declaration re-export - re-export directive import An ``importPath`` cannot refer to the file the current module is stored in. Otherwise, a :index:`compile-time error` occurs. -If re-exported declarations are not distinguishable (see :ref:`Declarations`) -within the scope of the current module, then a :index:`compile-time error` -occurs. - -The re-exporting practices are represented in the following examples: +The re-exporting practice is represented in the following examples: .. code-block:: typescript :linenos: @@ -1691,9 +1517,6 @@ The re-exporting practices are represented in the following examples: module storage re-export - re-exported declaration - declaration - scope | @@ -1705,7 +1528,7 @@ Top-Level Statements .. meta: frontend_status: Done -A module can contain sequences of statements that logically +A separate module can contain sequences of statements that logically comprise one sequence of statements. The syntax of *top-level statements* is presented below: @@ -1718,9 +1541,9 @@ The syntax of *top-level statements* is presented below: .. index:: top-level statement + separate module module statement - syntax A module can contain any number of top-level statements that logically merge into a single sequence in the textual order: @@ -1744,11 +1567,7 @@ The sequence above is equal to the following: This situation is represented by the example below: .. index:: - module top-level statement - variable declaration - constant declaration - declaration .. code-block:: typescript :linenos: @@ -1776,22 +1595,22 @@ This situation is represented by the example below: .. index:: top-level statement declaration - module + separate module statement -- If a module is imported by some other module, then the semantics of +- If a separate module is imported by some other module, then the semantics of top-level statements is to initialize the imported module. It means that all top-level statements are executed only once before a call to any other - function, or before the access to any top-level variable of the module. -- If a module is used as a program, then top-level statements are used + function, or before the access to any top-level variable of the separate + module. +- If a separate module is used as a program, then top-level statements are used as a program entry point (see :ref:`Program Entry Point`). The set of top-level statements being empty implies that the program entry point is also - empty and does nothing. If a module has the ``main`` function, then + empty and does nothing. If a separate module has the ``main`` function, then it is executed after the execution of the top-level statements. .. index:: - module - imported module + separate module semantics top-level statement initialization @@ -1800,7 +1619,7 @@ This situation is represented by the example below: call access accessibility - program entry point + entry point function .. code-block:: typescript @@ -1842,8 +1661,6 @@ appearance within the module until an error situation is thrown (see .. index:: top-level statement return statement - expression statement - expression statement type declaration module @@ -1859,22 +1676,22 @@ Program Entry Point .. meta: frontend_status: Done -Modules can act as programs (applications). Program execution starts -from the execution of a *program entry point* which can be of the following two -kinds: +Separate modules or packages can act as programs (applications). Program +execution starts from the execution of a *program entry point* which can +be of the following two kinds: -- Top-level statements for modules (see :ref:`Top-Level Statements`); or +- Top-level statements for separate modules (see :ref:`Top-Level Statements`); or - Entry point function (see below). .. index:: - module + separate module + package top-level statement return statement execution - program entry point - entry point function + entry point -A module can have the following forms of entry point: +A separate module can have the following forms of entry point: - Sole entry point function (``main`` or other as described below); - Sole top-level statement (the first statement in the top-level statements @@ -1883,11 +1700,11 @@ A module can have the following forms of entry point: function called after the top-level statement execution is completed). .. index:: - module + separate module entry point - entry point function - top-level statement - statement + +A package can have a sole entry point function (``main`` or other as +described below). Entry point functions have the following features: @@ -1902,21 +1719,18 @@ Entry point functions have the following features: - Entry point function is called ``main`` by default. .. index:: + package entry point - entry point function function - compiler - execution parameter string type access argument return type - void type - int type + type void + type int overloading top-level statements - default The example below represents different forms of valid and invalid entry points: @@ -1957,15 +1771,10 @@ The example below represents different forms of valid and invalid entry points: // Option 5: top-level exported function with command-line arguments export function entry(cmdLine: string[]) {} -.. index:: - entry point - entry point function - command-line argument - signature - function body - inferred type - integer expression - function body + // Package example - outputs "Package init" then "Package main" + package P + function main () { console.log ("Package main")} + static { console.log ("Package init") } | diff --git a/static_core/plugins/ets/doc/spec/14_ambients.rst b/static_core/plugins/ets/doc/spec/14_ambients.rst index bd99521678..f84b4f9aba 100644 --- a/static_core/plugins/ets/doc/spec/14_ambients.rst +++ b/static_core/plugins/ets/doc/spec/14_ambients.rst @@ -18,11 +18,11 @@ Ambient Declarations .. meta: frontend_status: Done -*Ambient declaration* specifies an entity that is declared elsewhere. +*Ambient declaration* specifies an entity that is declared somewhere else. Ambient declarations: -- Provide type information for entities included into a program from external - sources. +- Provide type information for entities included in a program from an external + source. - Introduce no new entities like regular declarations do. - Cannot include executable code, and thus have no initializers. @@ -42,10 +42,6 @@ Ambient functions, methods, and constructors have no bodies. function method constructor - function body - method body - constructor body - The syntax of *ambient declaration* is presented below: @@ -55,12 +51,10 @@ The syntax of *ambient declaration* is presented below: 'declare' ( ambientConstantDeclaration | ambientFunctionDeclaration - | overloadFunctionDeclaration | ambientClassDeclaration | ambientInterfaceDeclaration | ambientNamespaceDeclaration | ambientAnnotationDeclaration - | ambientAccessorDeclaration | 'const'? enumDeclaration | typeAlias ) @@ -80,58 +74,16 @@ context that is already ambient: } .. index:: - syntax ambient declaration - enumeration type declaration + enumeration type context modifier declare declare - declared type prefix - const keyword + keyword const compatibility ambient -A :index:`compile-time error` occurs if an ambient function, constructor, or -method is found within the same compilation unit (see :ref:`Compilation Units`) -as a non-ambient function, constructor, or method: - -.. code-block:: typescript - :linenos: - - // The same module - declare function foo (): void - function bar (): void { foo() } - -It implies that an import (see :ref:`Import Directives`), which is allowed, -can lead to the following situation: - -.. code-block:: typescript - :linenos: - - // DeclarationModule - declare function foo (): void - - // Module - export declare function bar(): void - - // Program - import {foo} from "DeclarationModule" // OK - import {bar} from "Module" // OK - foo() - bar() - -.. index:: - ambient function - ambient constructor - ambient method - compilation unit - non-ambient function - non-ambient constructor - non-ambient method - import - import directive - | .. _Ambient Constant Declarations: @@ -165,8 +117,6 @@ is available. .. index:: ambient constant - constant declaration - syntax declaration type annotation initializer expression @@ -198,12 +148,10 @@ A :index:`compile-time error` occurs if explicit return type for an ambient function declaration is not specified. .. index:: - syntax ambient function declaration type annotation return type function - ambient function declaration function declaration .. code-block:: typescript @@ -230,58 +178,14 @@ Ambient function declarations cannot specify function bodies. ambient function value parameter - optional parameter default value modifier async - async modifier + async function body ambient context | -.. _Ambient Overload Function Declarations: - -Ambient Overload Function Declarations -************************************** - -.. meta: - frontend_status: None - -The syntax of *ambient overload function declaration* is identical to that of -:ref:`Function Overload Declarations`. The semantics of such declarations is -defined by the same rules. - - -.. code-block:: typescript - :linenos: - - // Top-level functions are overloaded - declare function foo1(p: string): void - declare function foo2(p: number): void - declare overload foo {foo1, foo2} - - // Namespace functions are overloaded - declare namespace N { - function foo1(p: string): void - function foo2(p: number): void - overload foo {foo1, foo2} - } - - // All calls are valid - foo("a string") - foo(5) - N.foo("a string") - N.foo(5) - -.. index:: - ambient overload function declaration - ambient overload function - function overload declaration - semantics - syntax - -| - .. _Ambient Class Declarations: Ambient Class Declarations @@ -297,16 +201,15 @@ The syntax of *ambient class declaration* is presented below: ambientClassDeclaration: 'class'|'struct' identifier typeParameters? classExtendsClause? implementsClause? - '{' ambientClassMember* '}' + '{' ambientClassBodyDeclaration* '}' ; - ambientClassMember: + ambientClassBodyDeclaration: ambientAccessModifier? ( ambientFieldDeclaration | ambientConstructorDeclaration | ambientMethodDeclaration - | overloadMethodDeclaration - | ambientClassAccessorDeclaration + | ambientAccessorDeclaration | ambientIndexerDeclaration | ambientCallSignatureDeclaration | ambientIterableDeclaration @@ -321,9 +224,7 @@ Ambient field declarations have no initializers. .. index:: ambient field declaration - ambient class declaration initializer - syntax The syntax of *ambient field declaration* is presented below: @@ -341,16 +242,6 @@ Ambient constructor, method, and accessor declarations have no bodies. Their syntax is presented below: - -.. index:: - ambient field declaration - ambient class declaration - ambient constructor declaration - ambient method declaration - ambient accessor declaration - initializer declaration - syntax - .. code-block:: abnf ambientConstructorDeclaration: @@ -365,41 +256,18 @@ Their syntax is presented below: 'static' ; - ambientClassAccessorDeclaration: + ambientAccessorDeclaration: ambientMethodModifier* ( 'get' identifier '(' ')' returnType | 'set' identifier '(' parameter ')' ) ; -Ambient methods can be overloaded similarly to non-ambient methods with the -same syntax and semantics (see :ref:`Class Method Overload Declarations`). - -.. code-block:: typescript - :linenos: - - - // Class methods are overloaded - declare class A { - foo1(p: string): void - foo2(p: number): void - overload foo {foo1, foo2} - } - - // All methods calls are valid - function demo (a: A) { - a.foo("a string") - a.foo(5) - } - .. index:: - ambient method - overload - non-ambient method - syntax - semantics - method call - class method + constructor + method + accessor + ambient accessor declaration | @@ -419,18 +287,20 @@ The syntax of *ambient indexer declaration* is presented below: .. code-block:: abnf ambientIndexerDeclaration: - 'readonly'? '[' identifier ':' type ']' returnType + 'readonly'? '[' identifier ':' indexType ']' returnType ; + +The following restriction applies: Only one *ambient indexer declaration* is +allowed in an ambient class declaration. + .. index:: - ambient indexer ambient indexer declaration indexing class instance ambient context - syntax compatibility - -The use of *ambient indexer declarations* is represented in the example below: + restriction + ambient class declaration .. code-block:: typescript :linenos: @@ -438,25 +308,13 @@ The use of *ambient indexer declarations* is represented in the example below: declare class C { [index: number]: number } - declare class D { - [index: int]: C - } - declare class E { - [index: string]: string - } -The following restrictions apply: - -- Only one *ambient indexer declaration* is allowed in an ambient class declaration. - -- *Ambient indexer declaration* is supported in ambient contexts only. - If written in |LANG|, ambient class implementation must conform to - :ref:`Indexable Types`. +**Note**. *Ambient indexer declaration* is supported in ambient contexts only. +If written in |LANG|, ambient class implementation must conform to +:ref:`Indexable Types`. .. index:: ambient indexer declaration - restriction - ambient class declaration ambient context ambient class implementation @@ -503,9 +361,7 @@ in an ambient class declaration. callable type ambient context compatibility - syntax restriction - ambient class declaration | @@ -540,7 +396,7 @@ The following restrictions apply: :linenos: declare class C { - [Symbol.iterator] (): CIterator + [Symbol.iterator]: CIterator } **Note**. *Ambient iterable declaration* is supported in ambient contexts only. @@ -548,20 +404,14 @@ If written in |LANG|, ambient class implementation must conform to :ref:`Iterable Types`. .. index:: - ambient iterable ambient iterable declaration class instance - ambient context iterable class instance ambient context compatibility - syntax return type - restriction implementation interface - ambient class - implementation | @@ -585,60 +435,18 @@ The syntax of *ambient interface declaration* is presented below: ambientInterfaceMember : interfaceProperty - | ambientInterfaceMethodDeclaration + | interfaceMethodDeclaration | ambientIndexerDeclaration | ambientIterableDeclaration ; - ambientInterfaceMethodDeclaration: - 'default'? identifier signature - ; - *Ambient interface* can contain additional members in the same manner as an ambient class (see :ref:`Ambient Indexer`, and :ref:`Ambient Iterable`). .. index:: - syntax ambient interface ambient interface declaration ambient class - ambient indexer - ambient iterable - -If an interface method declaration is marked with the keyword ``default``, then -a non-ambient interface must contain the default implementation for the method -as follows: - -.. code-block:: typescript - :linenos: - - declare interface I1 { - default foo (): void // method foo will have the default implementation - } - class C1 implements I1 {} // Class C1 is valid as foo() has the default implemenation - - interface I1 { - // If such interface is used as I1 it will be runtime error as there is - // no default implementation for foo() - foo (): void - } - - declare interface I2 { - foo (): void // method foo has no default implementation - } - class C2 implements I2 {} // Class C2 is invalid as foo() has no implemenation - class C3 implements I2 { foo() {} } // Class C3 is valid as foo() has implemenation - - -.. index:: - interface method - default keyword - non-ambient interface - runtime error - method - ambient interface declaration - ambient class - default implementation | @@ -673,7 +481,6 @@ The syntax of *ambient namespace declaration* is presented below: | ambientClassDeclaration | ambientInterfaceDeclaration | ambientNamespaceDeclaration - | ambientAccessorDeclaration | 'const'? enumDeclaration | typeAlias ) @@ -700,16 +507,14 @@ accessed by using qualified names only. .. index:: namespace ambient namespace - ambient namespace declaration entity compatibility - syntax platform API third-party library API ambient iterable declaration - declared type + qualified name access - const keyword + keyword const enumeration type declaration prefix declared type @@ -741,18 +546,6 @@ all declarations and top-level statements of the current module. } } -A :index:`compile-time error` occurs if an *ambient namespace* declaration -contains an *exportDirective* that refers to a declaration which is not a part -of the namespace. - -.. code-block:: typescript - :linenos: - - export declare namespace A { - export {foo} // compile-time error: no 'foo' in namespace 'A' - } - function foo() {} - .. index:: ambient namespace ambient namespace declaration @@ -788,48 +581,13 @@ declaration module is built (see :ref:`Declaration Modules`). entity implementation namespace declaration - namespace name declaration top-level declaration compilation unit ambient context nested namespace - embedded namespace declaration module -| - -.. _Ambient Accessor Declarations: - -Ambient Accessor Declarations -***************************** - -.. meta: - frontend_status: None - -*Ambient accessor declaration* is the ambient version of :ref:`Accessor Declarations`. - -The syntax of *ambient accessor declarations* is presented below: - -.. code-block:: abnf - - ambientAccessorDeclaration: - ( 'get' identifier '(' ')' returnType - | 'set' identifier '(' parameter ')' - ) - ; - -A compile-time error occurs if explicit return type for an ambient getter -declaration is not specified. - -.. code-block:: typescript - :linenos: - - declare get name(): string // ok - declare get age() // compile-time error, return type must be specified - -See :ref:`Accessor Declarations` for details. - .. raw:: pdf PageBreak diff --git a/static_core/plugins/ets/doc/spec/15_semantics.rst b/static_core/plugins/ets/doc/spec/15_semantics.rst index 45954ab04a..79978451ee 100644 --- a/static_core/plugins/ets/doc/spec/15_semantics.rst +++ b/static_core/plugins/ets/doc/spec/15_semantics.rst @@ -32,16 +32,9 @@ are omitted to simplify the understanding. Semantic Essentials ******************* -.. meta: - frontend_status: Partly - The section gives a brief introduction to the major semantic terms and their usage in several contexts. -.. index:: - semantic term - context - | .. _Type of Standalone Expression: @@ -49,11 +42,8 @@ and their usage in several contexts. Type of Standalone Expression ============================= -.. meta: - frontend_status: Done - *Standalone expression* (see :ref:`Type of Expression`) is an expression for -which there is no target type in the context where the expression is used. +which no target type is expected in its context. The type of a *standalone expression* is determined as follows: @@ -72,23 +62,7 @@ The type of a *standalone expression* is determined as follows: a :index:`compile-time error` occurs if an *object literal* is used as a *standalone expression*. -The situation is represented in the example below: - -.. index:: - standalone expression - type of expression - expression - target type - context - type - integer literal - floating-point literal - constant expression - inferred type - operand type - operand - array literal - object literal +The situation is represented by the example below: .. code-block:: typescript :linenos: @@ -122,15 +96,6 @@ necessarily known in the context as follows: itself, then the :ref:`Assignability` check is performed as in the example below: -.. index:: - assignment-like context - context - assignment - expression - type - assign - assignability - .. code-block:: typescript :linenos: @@ -150,11 +115,6 @@ necessarily known in the context as follows: y = [1, 2] // ok, array literal is evaluated as [1.0, 2.0] } -.. index:: - assignability - expression - type - | .. Specifics of Variable Initialization Context: @@ -176,7 +136,7 @@ as follows: :linenos: function foo(x: int) { - let y = x // type of 'y' is 'int' + let x = y // type of 'x' is 'int' } - Otherwise, the type of ``expr`` is evaluated as type of a standalone @@ -190,20 +150,6 @@ as follows: let y = [1, 2] // x is of type 'number[]' } -.. index:: - variable - initialization - context - constant declaration - assignment-like context - annotation - declaration - type inference - initializer - expression - standalone expression - function - | .. _Specifics of Numeric Operator Contexts: @@ -211,31 +157,11 @@ as follows: Specifics of Numeric Operator Contexts ====================================== -.. meta: - frontend_status: Done - -The ``postfix`` and ``prefix`` ``increment`` and ``decrement`` -operators evaluate ``byte`` and ``short`` operands without -widening. Same is true also for an -``assignment`` operator (considering ``assignment`` as a binary operator). - -For other numeric operators, the operands of unary and binary numeric expressions -are widened to a larger numeric -type. The minimum type is ``int``. None of those operators +Operands of unary and binary numeric expressions are widened to a larger numeric +type. The minimum type is ``int``. Specifically, no arithmetic operator evaluates values of types ``byte`` and ``short`` without widening. Details of specific operators are discussed in corresponding sections of the Specification. -.. index:: - numeric operator - context - numeric operator context - operand - unary numeric expression - binary numeric expression - widening - numeric type - type - | .. _Specifics of String Operator Contexts: @@ -243,24 +169,10 @@ specific operators are discussed in corresponding sections of the Specification. Specifics of String Operator Contexts ===================================== -.. meta: - frontend_status: Done - If one operand of the binary operator ‘`+`’ is of type ``string``, then the string conversion applies to another non-string operand to convert it to string (see :ref:`String Concatenation` and :ref:`String Operator Contexts`). -.. index:: - string operator - string operator context - context - operand - binary operator - string type - string conversion - non-string operand - string concatenation - | .. _Other Contexts: @@ -268,17 +180,8 @@ string conversion applies to another non-string operand to convert it to string Other Contexts ============== -.. meta: - frontend_status: Done - The only semantic rule for all other contexts, and specifically for -:ref:`Overriding`, is to use :ref:`Subtyping`. - -.. index:: - context - semantic rule - overriding - subtyping +:ref:`Overloading and Overriding`, is to use :ref:`Subtyping`. | @@ -287,9 +190,6 @@ The only semantic rule for all other contexts, and specifically for Specifics of Type Parameters ============================ -.. meta: - frontend_status: Done - If the type of a left-hand-side expression in *assignment-like context* is a type parameter, then it provides no additional information for type inference even where a type parameter constraint is set. @@ -297,19 +197,7 @@ even where a type parameter constraint is set. If the *target type* of an expression is a *type parameter*, then the type of the expression is inferred as the type of a *standalone expression*. -The semantics is represented in the example below: - -.. index:: - type parameter - type - assignment-like context - context - type inference - constraint - target type - expression - standalone expression - semantics +The semantics is represented by the example below: .. code-block:: typescript :linenos: @@ -327,16 +215,6 @@ a :index:`compile-time error` because ``int`` is not a subtype of ``number`` Explicit type argument ``new C(1)`` must be used to fix the code. -.. index:: - inferred type - default type - integer literal - expression - subtype - parameter constraint - type - argument - | .. _Semantic Essentials Summary: @@ -353,24 +231,9 @@ Major semantic terms are listed below: - :ref:`String Operator Contexts`; - :ref:`Subtyping`; - :ref:`Assignability`; -- :ref:`Overriding`; -- :ref:`Overloading`; +- :ref:`Overloading and Overriding`; - :ref:`Type Inference`. -.. index:: - semantics - type inference - initializer - string operator - context - subtyping - assignment-like context - expression - assignability - numeric operator - overriding - overloading - | .. _Subtyping: @@ -385,7 +248,7 @@ Subtyping subtype of ``T`` (recorded as ``S<:T``), means that any object of type ``S`` can be safely used in any context to replace an object of type ``T``. The opposite relation (recorded as ``T:>S``) is called *supertype* relationship. -Each type is its own subtype and supertype (``S<:S`` and ``S:>S``). +Each type is its own subtype and supertype (``S<:S``). By the definition of ``S<:T``, type ``T`` belongs to the set of *supertypes* of type ``S``. The set of *supertypes* includes all *direct supertypes* @@ -393,31 +256,14 @@ of type ``S``. The set of *supertypes* includes all *direct supertypes* More formally speaking, the set is obtained by reflexive and transitive closure over the direct supertype relation. -If a relationship of two types is not described in one of the following -sections, then the types are not related to each other. Specifically, two -:ref:`Resizable Array Types` and two :ref:`Tuple Types` are not related to each +If the subtyping relation of two types is not defined in a section below, +then such types are not related to each other. Specifically, two array types +(resizable and fixed-size alike), and two tuple types are not related to each other, except where they are identical (see :ref:`Type Identity`). -.. code-block:: typescript - :linenos: - - class Base {} - class Derived extends Base {} - - function not_a_subtype ( - ab: Array, ad: Array, - tb: [Base, Base], td: [Derived, Derived], - ) { - ab = ad // Compile-time error - tb = td // Compile-time error - } - - .. index:: subtyping subtype - type - object closure supertype direct supertype @@ -428,6 +274,7 @@ other, except where they are identical (see :ref:`Type Identity`). resizable array fixed-size array tuple type + type | @@ -469,8 +316,12 @@ are **all** of the following: non-generic class extension clause implementation clause + superinterface Object + interface type + direct superinterface class extension + subinterface *Direct supertypes* of the generic type ``C`` <``F``:sub:`1` ``,..., F``:sub:`n`> (for a generic class or interface type declaration ``C`` <``F``:sub:`1` ``,..., F``:sub:`n`> @@ -486,19 +337,6 @@ with *n*>0) are **all** of the following: The direct supertype of a type parameter is the type specified as the constraint of that type parameter. -If type parameters of a generic class or an interface have a variance specifed -(see :ref:`Type Parameter Variance`), then the subtyping for instantiations of -the class or interface is determined in accordance with the variance of the -appropriate type parameter: - -.. code-block:: typescript - :linenos: - - class G { } - - // G <: G iff S >: U and T <: V - - .. index:: direct supertype generic type @@ -513,16 +351,12 @@ appropriate type parameter: constraint type parameter superinterface - variance - subtyping - instantiation - class - interface bound Object | + .. _Subtyping for Literal Types: Subtyping for Literal Types @@ -531,7 +365,7 @@ Subtyping for Literal Types .. meta: frontend_status: Done -Any ``string`` literal type (see :ref:`String Literal Types`) is *subtype* of type +Any ``string`` literal type (see :ref:`Literal Types`) is *subtype* of type ``string``. It affects overriding as shown in the example below: .. code-block:: typescript @@ -559,15 +393,13 @@ itself. .. index:: literal type subtype - subtyping - string type + type string overriding supertype string literal - null type - undefined type + null + undefined literal type - supertype | @@ -579,7 +411,7 @@ Subtyping for Union Types .. meta: frontend_status: Done -A union type ``U`` participates in a subtyping relationship +A union type ``U`` participates in subtyping relations (see :ref:`Subtyping`) in the following cases: 1. Union type ``U`` (``U``:sub:`1` ``| ... | U``:sub:`n`) is a subtype of @@ -616,8 +448,6 @@ type ``T`` if each ``U``:sub:`i` is a subtype of ``T``. subtyping subtype type - string - boolean 2. Type ``T`` is a subtype of union type ``U`` (``U``:sub:`1` ``| ... | U``:sub:`n`) if for some ``i`` @@ -634,13 +464,12 @@ type ``T`` if each ``U``:sub:`i` is a subtype of ``T``. **Note**. If union type normalization produces a single type, then this type is used instead of the initial set of union types. This concept is represented -in the example below: +by the example below: .. index:: union type - union type normalization + normalization subtype - number type .. code-block:: typescript :linenos: @@ -660,31 +489,31 @@ Subtyping for Function Types Function type ``F`` with parameters ``FP``:sub:`1` ``, ... , FP``:sub:`m` and return type ``FR`` is a *subtype* of function type ``S`` with parameters ``SP``:sub:`1` ``, ... , SP``:sub:`n` and return type ``SR`` if **all** of the -following conditions are met: +following conditions are met: - ``m <= n`` - for each ``i <= m`` - Parameter type of ``SP``:sub:`i` is a subtype of - parameter type of ``FP``:sub:`i` (contravariance), - - and - - if ``FP``:sub:`i` is a rest parameter then ``SP``:sub:`i` is a rest parameter too. - - if ``FP``:sub:`i` is an optional parameter then ``SP``:sub:`i` is an optional parameter too. + parameter type of ``FP``:sub:`i` (contravariance), and + + - ``FP``:sub:`i` is a rest parameter if ``SP``:sub:`i` is a rest parameter. + - ``FP``:sub:`i` is an optional parameter if ``SP``:sub:`i` is an optional + parameter. -- type ``FR`` is a subtype of ``SR`` (covariance). +- ``FR`` can be any type if ``SR`` is type ``void``. Otherwise, the resultant + type ``FR`` is a subtype of ``SR`` (covariance). .. index:: function type subtype - subtyping parameter type contravariance rest parameter parameter covariance return type - optional parameter .. code-block:: typescript :linenos: @@ -709,19 +538,13 @@ following conditions are met: /* OK: subtype has less parameters */ let g: () => Base = bb - /* Compile-time error: less parameters than expected */ - } + /* Compile-time error: too less parameters */ - let foo: (x?: number, y?: string) => void = (): void => {} // OK: ``m <= n`` - foo = (p?: number): void => {} // OK: ``m <= n`` - foo = (p1?: number, p2?: string): void => {} // OK: Identical types - foo = (p: number): void => {} - // Compile-time error: 1st parameter in type is optional but mandatory in lambda - foo = (p1: number, p2?: string): void => {} - // Compile-time error: 1st parameter in type is optional but mandatory in lambda + let h: (p: Base) => void = bb + /* OK: result type of supertype is void */ + } .. index:: - type parameter type covariance contravariance @@ -729,102 +552,6 @@ following conditions are met: contravariant return type supertype parameter - lambda - -| - -.. _Subtyping for Fixed-Size Array Types: - -Subtyping for Fixed-Size Array Types -==================================== - -Subtyping for fixed-size array types is based on subtyping of their element -types. It is formally defined as follows: - -``FixedSize <: FixedSize`` if ``B <: A``. - -The situation is represented in the following example: - -.. code-block:: typescript - :linenos: - - let x: FixedArray = [1, 2, 3] - let y: FixedArray = x // ok, as number <: Object - x = y // compile-time error - -Such subtyping allows array assignments that can lead to ``ArrayStoreError`` -at runtime if a value of a type which is not a subtype of an element type of -one array is put into that array by using the subtyping of another array -element type. -Type safety is ensured by runtime checks performed by the runtime system as -represented in the example below: - -.. index:: - type - subtype - subtyping - fixed-size array - fixed-size array type - array element - parameter type - runtime check - array - array element type - type safety - runtime system - -.. code-block:: typescript - :linenos: - - class C {} - class D extends C {} - - function foo (ca: FixedArray) { - ca[0] = new C() // ArrayStoreError if ca refers to FixedArray - } - - let da: FixedArray = [new D()] - - foo(da) // leads to runtime error in 'foo' - -| - -.. _Subtyping for Intersection Types: - -Subtyping for Intersection Types -================================ - -Intersecton type ``I`` defined as (``I``:sub:`1` ``& ... | I``:sub:`n`) -is a subtype of type ``T`` if ``I``:sub:`i` is a subtype of ``T`` -for some *i*. - -Type ``T`` is a subtype of intersection type -(``I``:sub:`1` ``& ... | I``:sub:`n`) if ``T`` is a subtype of each -``I``:sub:`i`. - -.. index:: - subtype - subtyping - intersection type - -| - -.. _Subtyping for Difference Types: - -Subtyping for Difference Types -============================== - -Difference type ``A - B`` is a subtype of ``T`` if ``A`` is -a subtype of ``T``. - -Type ``T`` is a subtype of the difference type ``A - B`` if ``T`` is -a subtype of ``A``, and no value belongs both to ``T`` and ``B`` -(i.e., ``T & B = never``). - -.. index:: - subtype - subtyping - difference type | @@ -845,14 +572,14 @@ Identity relation for types ``A`` and ``B`` is defined as follows: - Tuple types ``A`` = [``T``:sub:`1`, ``T``:sub:`2`, ``...``, ``T``:sub:`n`] and ``B`` = [``U``:sub:`1`, ``U``:sub:`2`, ``...``, ``U``:sub:`m`] - are identical on condition that: + are identical if the following conditions are met: - ``n`` is equal to ``m``, i.e., the types have the same number of elements; - Every *T*:sub:`i` is identical to *U*:sub:`i` for any *i* in ``1 .. n``. - Union types ``A`` = ``T``:sub:`1` | ``T``:sub:`2` | ``...`` | ``T``:sub:`n` and ``B`` = ``U``:sub:`1` | ``U``:sub:`2` | ``...`` | ``U``:sub:`m` - are identical on condition that: + are identical if the following conditions are met: - ``n`` is equal to ``m``, i.e., the types have the same number of elements; - *U*:sub:`i` in ``U`` undergoes a permutation after which every *T*:sub:`i` @@ -864,34 +591,16 @@ Identity relation for types ``A`` and ``B`` is defined as follows: **Note.** :ref:`Type Alias Declaration` creates no new type but only a new name for the existing type. An alias is indistinguishable from its base type. -**Note.** If a generic class or an interface has a type parameter ``T`` while -its method has its own type parameter ``T``, then the two types are different -and unrelated. - -.. code-block:: typescript - :linenos: - - class A { - data: T - constructor (p: T) { this.data = p } // OK, as here 'T' is a class type parameter - method (p: T) { - this.data = p // compile-time error as 'T' of the class is different from 'T' of the method - } - } - - .. index:: type identity identity indistinguishable type - permutation array type tuple type union type subtype type type alias - type alias declaration declaration base type @@ -907,7 +616,7 @@ Assignability Type ``T``:sub:`1` is assignable to type ``T``:sub:`2` if: -- ``T``:sub:`1` is type ``never``; +- ``T``:sub:`1` is type ``never`` and ``T``:sub:`2` is any other type; - ``T``:sub:`1` is identical to ``T``:sub:`2` (see :ref:`Type Identity`); @@ -923,14 +632,12 @@ assignable to type ``T``:sub:`1`. .. index:: assignability - assignment type type identity subtyping conversion implicit conversion asymmetric relationship - value | @@ -965,6 +672,7 @@ Variance can be of three kinds: overriding entity override-compatible signature parameter + return type variance invariance covariance @@ -975,25 +683,20 @@ originally specified. .. index:: covariance - type *Contravariance* means it is possible to use a type which is more general than originally specified. .. index:: contravariance - type *Invariance* means it is only possible to use the original type, i.e., there is no subtyping for derived types. .. index:: invariance - type - subtyping - derived type -Valid and invalid usages of variance are represented in the examples below. +The examples below illustrate valid and invalid usages of variance. If class ``Base`` is defined as follows: .. index:: @@ -1027,13 +730,7 @@ If class ``Base`` is defined as follows: .. index:: variance - parameter type - invariance - covariance - contravariance subtype - supertype - override method base overriding method @@ -1071,7 +768,7 @@ the right when checking the validity of any function, method, constructor, or lambda call: **Step 1**: All arguments in the form of spread expression (see -:ref:`spread Expression`) are to be linearized recursively to ensure that +:ref:`spread Expression`) are to be linearized recursively to enusre that no spread expression is left at the call site. **Step 2**: The following checks are performed on all arguments from left to @@ -1106,7 +803,6 @@ right, starting from ``arg_pos`` = 1 and ``par_pos`` = 1: .. index:: assignability - call argument compatibility semantic check function call @@ -1128,16 +824,15 @@ right, starting from ``arg_pos`` = 1 and ``par_pos`` = 1: increment array type rest parameter - check -Checks are represented in the examples below: +The examples below represent the checks: .. code-block:: typescript :linenos: call (...[1, "str", true], ...[ ...123]) // Initial call form - call (1, "str", true, 123) // To be unfolded into the form with no spread expressions + call (1, "str", true, 123) // To be unfoled into the form with no spread expressions @@ -1166,8 +861,9 @@ Checks are represented in the examples below: // p1 becomes 1, p2 becomes array [2, 3] + + .. index:: - check assignable type Object string @@ -1191,7 +887,7 @@ This technique called *type inference* allows keeping type safety and program code readability, doing less typing, and focusing on business logic. Type inference is applied by the compiler in the following contexts: -- :ref:`Type Inference for Numeric Constant Expressions`; +- :ref:`Type Inference for Integer Constant Expressions`; - Variable and constant declarations (see :ref:`Type Inference from Initializer`); - Implicit generic instantiations (see :ref:`Implicit Generic Instantiations`); - Function, method or lambda return type (see :ref:`Return Type Inference`); @@ -1199,23 +895,18 @@ Type inference is applied by the compiler in the following contexts: - Array literal type inference (see :ref:`Array Literal Type Inference from Context`, and :ref:`Array Type Inference from Types of Elements`); - Object literal type inference (see :ref:`Object Literal`); -- Smart casts (see :ref:`Smart Casts and Smart Types`). +- Smart types (see :ref:`Smart Types`). .. index:: strong typing type annotation - annotation smart compiler type inference - inferred type - expression entity surrounding context code readability type safety context - numeric constant expression - initializer variable declaration constant declaration generic instantiation @@ -1223,78 +914,44 @@ Type inference is applied by the compiler in the following contexts: function method return type method - lambda - lambda return type return type lambda expression parameter type array literal Object literal smart type - smart cast | -.. _Type Inference for Numeric Constant Expressions: +.. _Type Inference for Integer Constant Expressions: -Type Inference for Numeric Constant Expressions +Type Inference for Integer Constant Expressions =============================================== -.. meta: - frontend_status: Partly +For :ref:`Constant Expressions` of integer types +the type of expression is first evaluated from the expression +in the following way: -The type of expression of a numeric type for :ref:`Constant Expressions` is -first evaluated from the expression as follows: - -- Type of an integer literal is the default type of the literal: +- For an integer literal the type is the default type of the literal: ``int`` or ``long`` (see :ref:`Integer Literals`); -- Type of a floating-point literal is the default type of the literal: - ``double`` or ``float`` (see :ref:`Floating-Point Literals`); - -- Type of a named constant is specified in the constant declaration; - -- Result type of an operator is evaluated according to the rules of - the operator; - -- Type of a :ref:`Cast expression` is specified in the expression target type. - -.. index:: - type inference - numeric constant expression - numeric constant - expression - constant - type - integer literal - floating-point literal - literal - named constant - constant declaration - operator - operator rule - cast expression - target type - - -The evaluated numeric result type can be inferred to a numeric *target type* -from the context on condition that: +- For a named constant the type is specified in the constant declaration; -#. Last executed operator in the expression is not a cast operator ``as``; +- For an operator the result type is evaluated accoriding rules of + this operator; -#. *Target type* is a numeric type larger then the evaluated result type; - or +- For :ref:`Cast expression` type is specified in the expression + target type. -#. The evaluated result type is an integer type, the *target type* is a smaller - integer type with the value of the expression fitting into its range; or +If the evaluated result type is of an integer type, +it can be inferred to smaller integer *target type* from the context, +if the following conditions are met: -#. The *target type* is ``float``, the evaluated result type is ``double`` and - the value of the expression fits into the range of type ``float``. +#. The top-level expression is not a cast expression; -A :index:`compile-time error` occurs if the context is a union type, and the -evaluated value can be treated as value of several of union component types. +#. The value of the expression fits into the range of the *target type*. -Valid and invalid narrowing is represented in the examples below: +The examples below illustrate valid and invalid narrowing. .. code-block-meta: expect-cte: @@ -1306,982 +963,713 @@ Valid and invalid narrowing is represented in the examples below: b = 64 + 63 // ok, int -> byte narrowing b = 128 // compile-time-error, value is out of range b = 1.0 // compile-time-error, floating-point value cannot be narrowed - b = 1 as short // // compile-time-error, cast expression fixes 'short' type + b = 1 as short // // compile-time-error, cast expresion let s: short = 32768 // compile-time-error, value is out of range - let u: byte | int = 1 // compile-time error, ambiguity - .. index:: - numeric type - inferred type - target type narrowing constant constant expression integer conversion integer type expression - context - cast operator conversion type - union type value | -.. _Return Type Inference: +.. _Smart Types: -Return Type Inference -===================== +Smart Types +=========== .. meta: - frontend_status: Done + frontend_status: Partly + todo: implement a dataflow check for loops and try-catch blocks + +Data entities like local variables (see :ref:`Variable and Constant Declarations`) +and parameters (see :ref:`Parameter List`), if not captured in a lambda body and +modified by the lambda code, are subjected to *smart typing*. + +Every data entity has a static type, which is specified explicitly or +inferred at the point of declaration. This type defines the set of operations +that can be applied to the entity (namely, what methods can be called, and what +other entities can be accessed if the entity acts as a receiver of the +operation): + +.. code-block:: typescript + :linenos: -A missing function, method, getter, or lambda return type can be inferred from -the function, method, getter, or lambda body. A :index:`compile-time error` -occurs if return type is missing from a native function (see -:ref:`Native Functions`). - -The current version of |LANG| allows inferring return types at least under -the following conditions: - -- If there is no return statement, or if all return statements have no - expressions, then the return type is ``void`` (see :ref:`Type void`). It - effectively implies that a call to a function, method, or lambda returns - the value ``undefined``. -- If there are *k* return statements (where *k* is 1 or more) with - the same type expression *R*, then ``R`` is the return type. -- If there are *k* return statements (where *k* is 2 or more) with - expressions of types ``T``:sub:`1`, ``...``, ``T``:sub:`k`, then ``R`` is the - *union type* (see :ref:`Union Types`) of these types (``T``:sub:`1` | ... | - ``T``:sub:`k`), and its normalized version (see :ref:`Union Types Normalization`) - is the return type. If at least one of return statements has no expression, then - type ``undefined`` is added to the return type union. -- If a lambda body contains no return statement but at least one throw statement - (see :ref:`Throw Statements`), then the lambda return type is ``never`` (see - :ref:`Type never`). -- If a function, a method, or a lambda is ``async`` (see - :ref:`Async Functions and Methods`), a return type is inferred by applying - the above rules, and the return type ``T`` is not ``Promise``, then the return - type is assumed to be ``Promise``. - -Return type inference is represented in the example below: + let a = new Object + a.toString() // entity 'a' has method toString() .. index:: - return type + smart type + data entity + variable + parameter + class variable + local variable + smart typing + lambda code function method - getter - lambda - value - getter return type - lambda return type - function return type - method return type - native function - void type - type inference + static type inferred type - method body - void type - return statement - normalization - expression type - expression - function - implementation - compiler - union type - never type - async type - lambda body + receiver + access + declaration + +If an entity is class type (see :ref:`Classes`), interface type (see +:ref:`Interfaces`), or union type (see :ref:`Union Types`), then the compiler +can narrow (smart cast) a static type to a more precise type (smart type), and +allow operations that are specific to the type so narrowed: .. code-block:: typescript :linenos: - // Explicit return type - function foo(): string { return "foo" } - - // Implicit return type inferred as string - function goo() { return "goo" } - - class Base {} - class Derived1 extends Base {} - class Derived2 extends Base {} - - function bar (condition: boolean) { - if (condition) - return new Derived1() - else - return new Derived2() + function boo() { + let a: number | string = 42 + a++ /* Here we know for sure that type of 'a' is number and number-specific + operations are type-safe */ } - // Return type of bar will be Derived1|Derived2 union type - function boo (condition: boolean) { - if (condition) return 1 + class Base {} + class Derived extends Base { method () {} } + function goo() { + let b: Base = new Derived + b.method () /* Here we know for sure that type of 'b' is Derived and Derived-specific + operations can be applied in type-safe way */ } - // That is a compile-time error as there is an execution path with no return -*Smart types* can appear in the process of return type inference -(see :ref:`Smart Casts and Smart Types`). -A :index:`compile-time error` occurs if an inferred return type is a :ref:`Type Expression` -that can not be expressed in |LANG|: +Other examples are explicit calls to ``instanceof`` +(see :ref:`InstanceOf Expression`) or checks against ``null`` +(see :ref:`Reference Equality`) as part of ``if`` statements +(see :ref:`if Statements`) or conditional expressions +(see :ref:`Conditional Expressions`): .. code-block:: typescript :linenos: - class C{} - interface I {} - class D extends C implements I {} - - function foo(c: C) { - return c instanceof I ? c : new D() // compile-time error: inferred type is C & I + function foo (b: Base, d: Derived|null) { + if (b instanceof Derived) { + b.method() + } + if (d != null) { + d.method() + } } .. index:: + type + entity + local variable + interface type + class type union type - type inference - inferred type - smart type - function - return type - execution path - smart cast - -| - -.. _Smart Casts and Smart Types: - -Smart Casts and Smart Types -*************************** - -.. meta: - frontend_status: Partly - todo: implement a dataflow check for loops and try-catch blocks - -|LANG| uses the concept of *smart casts*, meaning that -in some cases the compiler can implicitly cast -a value of a variable to a type which is more specific than -the declared type of the variable. -The more specific type is called *smart type*. -*Smart casts* allow keeping type safety, require less typing from -programmer and improve performance. - -Smart casts are applied to local variables -(see :ref:`Variable and Constant Declarations`) and parameters -(see :ref:`Parameter List`), except those that are captured and -modified in lambdas. -Furter in the text term *variable* is used for both local variables -and parameters. - -.. index:: + context + compiler + narrowing smart cast smart type - cast - value - variable - type - declared type - type safety - performance - local variable - parameter - lambda - -**Note.** Smart casts are not apppiled to global variabes and class fields, -as it is hard to track their values. - -A variable has a single declared type, and can have different *smart -types* in different contexts. A *smart type* of variable is always -a subtype of its declared type. + if statement + conditional expression + entity + class type + static type + narrowed type + instanceof + null + semantic check + reference equality -*Smart type* is used by the compiler each time the value of a variable is read. -It is never used when a variable value is changed. +In like cases, a smart compiler can deduce the smart type of an entity without +requiring unnecessary casting conversions (see :ref:`Cast Expression`). -The usage and benefits of a *smart type* are represented in the example below: +Overloading (see :ref:`Function, Method and Constructor Overloading`) can cause +tricky situations when a smart type leads to the call of a function or a method +(see :ref:`Overload Resolution`) that suits smart rather than static type of an +argument: .. code-block:: typescript :linenos: - class C {} - class D extends C { - foo() {} - } + function foo (p: Base) {} + function foo (p: Derived) {} - function bar(c: C) { - if (c instanceof D) { - c.foo() // ok, here smart type of 'c' is 'D', 'foo' is safely called - } - c.foo() // compile-time error, 'c' does not have method 'foo' - (c as D).foo() // no compile-time error, can throw runtime error + function too() { + let b: Base = new Derived + foo (b) // potential ambiguity in case of smart type, foo(p:Base) is to be called + foo (b as Derived) // no ambiguity, foo(p:Derived) is to be called } -.. index:: - smart cast - smart type - global variable - variable - value - declared type - context - subtype - runtime - call - -The compiler uses data-flow analysis based on :ref:`Control-flow Graph` to -compute *smart types* (see :ref:`Computing Smart Types`). The following -language features influence the computation: - -- Variable declarations; -- Variable assignments (a variable initialization is handled as a variable - declaration combined with an assignment); -- :ref:`InstanceOf Expression` with variables; -- Conditional statements and conditional expressions that include: - - - :ref:`Equality Expressions` of a variable and an expression that - process string literals, ``null`` value, and ``undefined`` value in - a specific way. - - - :ref:`Equality Expressions` of ``typeof v`` and a string literal, where - ``v`` is a variable. - - - :ref:`Extended Conditional Expressions`. - -- :ref:`Loop Statements`. - -A *smart type* usually takes the form of a :ref:`Type Expression` that can -contain types not otherwise represented in |LANG|, namely: - -- :ref:`Intersection Types`; -- :ref:`Difference Types`. +Particular cases supported by the compiler are determined by the compiler +implementation. .. index:: + compiler smart type - data-flow analysis - control-flow graph - variable - variable declaration - variable assignment - variable initialization - assignment - conditional statement - conditional expression - equality expression - null - expression - undefined - string literal - loop statement - extended conditional expression - intersection type - difference type + smart compiler + entity + casting conversion + overloading + conversion + function + method + conversion overloading + function overloading + method overloading + static type + argument + implementation + compiler | -.. _Type Expression: - -Type Expression -=============== - -The *type* of an entity is conventionally defined as the set of values -an entity (e.g., a variable) can take, and the set of operators -applicable to that entity. Two types with equal sets of values -and operators are considered equal irrespective of a syntatic form used to -denote the types. - -However, in some cases it is useful to distinguish between equal types with -different representation or syntactic form. For example, types ``Object`` and -``Object|C`` are equal but they behave in different ways as a context of -an :ref:`Object Literal`: +.. _Overloading and Overriding: -.. code-block:: typescript - :linenos: +Overloading and Overriding +************************** - class C { - num = 1 - } - function foo(x: Object|C) {} - function bar(x: Object) {} +Two important concepts apply to different contexts and entities throughout +this specification as follows: - foo({num: 42}} // ok, object literal is of type 'C' - bar({num: 42}} // compile-time error, Object does not have field 'num' +#. *Overloading* allows defining and using functions (in general sense, + including methods and constructors) with the same name but different + signatures. The actual function to be called is determined at compile + time. Thus, *overloading* is related to compile-time polymorphism. -.. index:: - type expression - type - entity - value - variable - operator - set of values - syntactic form - equal type - context - object - object literal - field +#. *Overriding* is closely connected with inheritance. It is used on methods + but not on functions. Overriding allows a subclass to offer a specific + implementation of a method already defined in its parent class. + The actual method to be called is determined at runtime based on object type. + Thus, overriding is related to runtime polymorphism. -The term *type expression* is used below as notation that consists of type -names and operators on types, namely: +|LANG| uses two semantic rules related to these concepts: -- ``'|'`` for union operator; -- ``'&'`` for intersection operator (see :ref:`Intersection Types`); -- ``'-'`` for difference operator (see :ref:`Difference Types`). +- *Overload-equivalence* rule: the *overloading* of two entities is + correct if their signatures are **not** *overload-equivalent* (see + :ref:`Overload-Equivalent Signatures`). -Computing *smart types* is the process of creating, evaluating, and simplifying -*type expressions*. +- *Override-compatibility* rule: the *overriding* of two entities is + correct if their signatures are *override-compatible* (see + :ref:`Override-Compatible Signatures`). -**Note.** *Intersection types* and *difference types* are semantic (not -syntactic notions) that cannot be represented in |LANG|. +See :ref:`Overloading for Functions`, +:ref:`Overloading and Overriding in Classes`, and +:ref:`Overloading and Overriding in Interfaces` for details. .. index:: - type expression - entity - value - variable - operator - syntax + overloading + overriding context - object literal - field - type expression - notation - type name - operator - type - intersection type - difference type - union operator - intersection operator - difference operator - semantic notion - syntactic notion + entity + function + constructor + method + signature + compile-time polymorphism + subclass + runtime polymorphism + inheritance + parent class + object type + runtime + overload-equivalence + override-compatibility + overload-equivalent signature + overriding + overloading | -.. _Intersection Types: - -Intersection Types -================== - -An *intersection type* is a type created from other types by using the -intersection operator ``'&'``. -The values of intersection type ``A & B`` are all values that belong -to both ``A`` and ``B``. The same applies to the set of operations. - -Intersection types cannot be expressed directly in |LANG|. Instead, they appear -as *smart types* of variables in the process of :ref:`Computing Smart Types` as -represented below: +.. _Overload-Equivalent Signatures: -.. code-block:: typescript - :linenos: - - class C { - foo() {} - } - interface I { - bar(): void - } +Overload-Equivalent Signatures +============================== - function test(i: I) { - if (i instanceof C) { - // smart type of 'i' here is of some subtype of 'C' that implements 'I' - // type expression for this type is I & subtype of C - i.foo() // ok - i.bar() // ok - } - } +.. meta: + frontend_status: Partly -See also :ref:`Subtyping for Intersection Types`. +Signatures *S1* with parameters *S1P*:sub:`1`, ... , *S1P*:sub:`n`, and *S2* with +the same number of parameters *S2P*:sub:`1`, ... , *S2P*:sub:`n` +are *overload-equivalent* if the *effective types* of parameters (see +:ref:`Type Erasure`) *S1P*:sub:`i` and *S2P*:sub:`i` for each *i* are +*overload-equavalent*. -.. index:: - intersection type - intersection operator - value - set of operators - operation - variable - type - subtype - implementation - subtyping +**Notes:** -| +- For an optional parameter (see :ref:`Optional Parameters`) in the form + ``ident?: T``, the actual parameter type is considered, i.e., union type + ``T | undefined``. -.. _Difference Types: +- Type parameter constraint ``Object|null|undefined`` (see + :ref:`Type Parameter Constraint`) is condidered for a type parameter if + no constraint is set explicitly. -Difference Types -================ +Parameters *S1P*:sub:`i` and *S2P*:sub:`i` are *overload-equavalent*, if +the are simultaneously ``rest`` or not ``rest`` parameters and if: -A *difference type* is a type created from two other types by a subtraction -operation, i.e., by using the operator ``'-'``. -The values of the difference type ``A - B`` are all values that belong to type -``A`` but not to type ``B``. The same applies to the set of operations. +#. Type of *S1P*:sub:`i` is a *type parameter* and type of *S2P*:sub:`i` + is a subtype of *type parameter constraint* or a *type parameter*; -Difference types in |LANG| cannot be expressed directly. They appear as -*smart types* of variables in the process of :ref:`Computing Smart Types`: +#. Type of *S1P*:sub:`i` is *generic type* + ``G`` <``T``:sub:`1`, ``...``, ``T``:sub:`n`>, where at least one + ``T``:sub:`i` is a type parameter, and a + type of *S2P*:sub:`i` is also ``G`` with any + list of :ref:`Type Arguments` or a *union type* that contains ``G``; -.. code-block:: typescript - :linenos: +#. Types of *S1P*:sub:`i` and *S2P*:sub:`i` are + *union types* containing types that fall into either provision above; - function foo(x: string | undefined): number { - if (x == undefined) { - return 0 - } else { - // smart type of 'x' here is (string | undefined - undefined) = string, - // hence, string property can be applied to 'x' - return x.length - } - } +#. Types of *S1P*:sub:`i` and *S2P*:sub:`i` are identical (see + :ref:`Type Identity`). -This is discussed in detail in :ref:`Subtyping for Difference Types`. +Parameter names and return types do not influence *overload equivalence*. +Signatures are *overload-equivalent* in the following examples: .. index:: - difference type - difference operator - subtraction operation - operator - value - set of operators - smart type - variable - type - string - property - -| - -.. _Computing Smart Types: - -Computing Smart Types -===================== + overload-equivalent signature + signature + parameter + type parameter + parameter type + non-generic reference type + union type + reference type + generic type + type argument + overriding + parameter name + return type + overload equivalence + type identity + overload equivalence -Computing smart types is based on *locations*. A *location* is a set of -variables known to have the same value in a given context. +.. code-block-meta: -Two maps are used to specify a context *(l, s)*, where: +.. code-block:: typescript + :linenos: -- *l: V* :math:`\rightarrow` *L*, map from variables *V* to locations *L*; + (x: number): void + (y: number): void -- *s: L* :math:`\rightarrow` *T*, map from locations to smart types *T* - ascribed to those locations. +.. code-block-meta: -Contexts are computed in relation to nodes of :ref:`Control-flow Graph`. -Control-flow graph (CFG) contains the following kinds of nodes: +.. code-block:: typescript + :linenos: -- Nodes for expressions that have results assigned to variables, - including temporary variables; + (x: number): void + (y: number): number -- *Branching nodes* that have true and false branches; +.. code-block-meta: -- *Assuming nodes* that have an assumed condition specified; +.. code-block:: typescript + :linenos: -- *Backedge nodes* that mark the transfer of control from the end - point of a loop to its start point. + class G + (y: number): void + (x: T): void -.. index:: - smart type - location - set of variables - context - value - map - variable - node - control-flow graph (CFG) - expression - branching node - assuming node - backedge node - control - control transfer - loop - start point - branch - true branch - false branch +.. code-block-meta: -The way maps *(l, s*) are changed when processing specific nodes is described -below. -The notation :math:`x'` is used to denote a map that replaces any previous map -during node evaluation. +.. code-block:: typescript + :linenos: -At a **variable declaration** ``let v``: + class G + (y: G): void + (x: G): void -- ``l(v):={v}``. -At an **assignment to the variable** ``v``: ``v = e``: +.. code-block-meta: -- If *e* is a variable, and no implicit conversions are performed: - ``l'(v):=l'(e):={v}`` :math:`\cup` ``l(e)``. +.. code-block:: typescript + :linenos: -- Otherwise, ``s'(l(v)):=s(N(T((e)))``, where ``T(e)`` is the smart type of *e*, - and *N(x)* adds to type *x* all types to which type *x* can be converted, - namely: + class G + (y: T): void + (x: S): void - - If *x* is a numeric type, then a larger numeric type; - - If *x* is an enumeration type, then the *enumeration base type*. -The following table summarises the contexts for map evaluation at an -*assumption node*: +Signatures are not *overload-equivalent* in the following examples: .. index:: - map - node - notation - node evaluation - conversion - variable - smart type - type - numeric type - enumeration base type - context - assumption node + overload-equivalent signature -.. list-table:: - :width: 100% - :widths: 30 35 35 - :header-rows: 1 +.. code-block-meta: - * - Branching on - - On the positive branch - - On the negative branch - * - *v* ``instanceof`` ``A`` - - assuming *v* ``instanceof`` ``A``: +.. code-block:: typescript + :linenos: - ``s'(l(v)):=s(l(v))&A`` + (x: number): void + (y: string): void - - assuming !(*v* ``instanceof`` ``A``): +.. code-block-meta: - ``s'(l(v)):=s(l(v))-A``, +.. code-block:: typescript + :linenos: - * - *v* ``===`` *str* (string literal) - - ``s'(l(v)):=str`` - - ``s'(l(v)):=s(l(v))-str`` + class A { /*body*/} + class B extends A { /*body*/} + (x: A): void + (y: B): void - * - *v* ``===`` ``undefined`` - - ``s'(l(v)):=undefined`` +.. code-block-meta: - - ``s'(l(v)):=s(l(v))-undefined`` +.. code-block:: typescript + :linenos: - * - *v* ``===`` ``null`` - - ``s'(l(v)):=null`` + class A { + (p: T) + (p: T[]) - - ``s'(l(v)):=s(l(v))-null`` +.. code-block-meta: - * - *v* ``==`` ``undefined`` - - ``s'(l(v)):=undefined`` +.. code-block:: typescript + :linenos: - - ``s'(l(v)):= s(l(v))-undefined-null`` + class Base {} + class Derived1 extends Base {} + class Derived2 extends Base {} + (p: Derived1 | Derived2 ): void + (p: Base): void - * - *v* ``==`` ``null`` - - ``s'(l(v)):=null`` +.. code-block-meta: - - ``s'(l(v)):= s(l(v))-undefined-null`` +.. code-block:: typescript + :linenos: - * - *v* ``===`` *ec*, where *ec* is an ``enum`` constant - - ``s'(l(v)):=ec`` - - ``s'(l(v)):=s(l(v))-ec`` - * - ``typeof`` *v* ``===`` *str* + class G + (x: G): void + (y: G): void - See **Note 2** below for evalution of type *T*. +.. code-block-meta: - - ``s'(l(v)):= s(l(v))&T`` - - ``s'(l(v)) := s(l(v))-T`` +.. code-block:: typescript + :linenos: - * - *v* ``===`` *e*, where *e* is any expression - - if *e* is a variable *w*, no implicit conversion occurs, - and no ``null == undefined`` consideration is involved, then: + class G + (x: T): void + (y: string): void - ``l'(v):=l'(w):=l(v)``:math:`\cup` ``l(w)`` +| - otherwise: +.. _Override-Compatible Signatures: - ``s'(l'(v))=s(l(v))&N(T(e))`` +Override-Compatible Signatures +============================== - The definitions of ``T`` and ``N`` are as in the assignment clause. +.. meta: + frontend_status: Partly - - No change - - * - *v* (truthiness check) - - ``s'(l(v)):=s(l(v)) - (null|undefined|"")`` - - ``s'(l(v)):=s(l(v))&T``, - - where T is union of all types the contain at least one value considered as ``false`` - in :ref:`Extended Conditional Expressions`. +If there are two classes ``Base`` and ``Derived``, and class ``Derived`` +overrides the method ``foo()`` of ``Base``, then ``foo()`` in ``Base`` has +signature ``S``:sub:`1` <``V``:sub:`1` ``, ... V``:sub:`k`> +(``U``:sub:`1` ``, ..., U``:sub:`n`) ``:U``:sub:`n+1`, and ``foo()`` in +``Derived`` has signature ``S``:sub:`2` <``W``:sub:`1` ``, ... W``:sub:`l`> +(``T``:sub:`1` ``, ..., T``:sub:`m`) ``:T``:sub:`m+1` as in the example below: .. index:: - positive branch - negative branch - string literal - branching - conversion - expression - value - truthiness check - union - type - -**Notes**: - -#. In the table above the operator ``'==='`` can be replaced for ``'=='`` except - where ``'=='`` is used explicitly. - -#. For branching on ``typeof`` *v* ``===`` *str*, type *T* is - evaluated in accordance with the value of *str*: - - - If ``"boolean"``, then *T* is ``boolean``; - - - If ``"string"``, then *T* is ``string | char``; - - - If ``"undefined"``, then *T* is ``undefined``; - - - If a name of a numeric type, then *T* is this numeric type; - - - If ``object``, then *T* is ``Object - boolean - string - all numeric types``. - + override-compatible signature + class + base class + derived class + signature -At a node that joins two CFG branches, namely ``C``:sub:`1` :math:`\leq` :sub:`1`, ``s``:sub:`1` ``>``, -and ``C``:sub:`2` :math:`\leq` ``l``:sub:`2`, ``s``:sub:`2` ``>``, for each variable *v*: +.. code-block:: typescript + :linenos: -- ``l'(v):=l``:sub:`1` ``(v)``:math:`\cap` ``l``:sub:`2` ``(v)``; and + class Base { + foo (p1: U1, ... pn: Un): Un+1 + } + class Derived extends Base { + override foo (p1: T1, ... pm: Tm): Tm+1 + } -- ``s'(l'(v)):=s``:sub:`1` ``(l'``:sub:`1` ``(v))|s``:sub:`2` ``(l'``:sub:`2` ``(v))``. +The signature ``S``:sub:`2` is override-compatible with ``S``:sub:`1` only +if **all** of the following conditions are met: -At each *backedge node*, smart type of each variable attached to the node is set -to its declared type. +1. Number of parameters of both methods is the same, i.e., ``n = m``. +2. Each parameter type ``T``:sub:`i` is a supertype of ``U``:sub:`i` + for ``i`` in ``1..n`` (contravariance). +3. If return type ``T``:sub:`m+1` is ``this``, then ``U``:sub:`n+1` is ``this``, + or any of superinterfaces or superclass of the current type. Otherwise, + return type ``T``:sub:`m+1` is a subtype of ``U``:sub:`n+1` (covariance). +4. Number of type parameters of either method is the same, i.e., ``k = l``. +5. Constraints of ``W``:sub:`1`, ... ``W``:sub:`l` are to be contravariant + (see :ref:`Invariance, Covariance and Contravariance`) to the appropriate + constraints of ``V``:sub:`1`, ... ``V``:sub:`k`. .. index:: - operator - branching - value - boolean - string - char - numeric type - node - branch - variable - declared type - control-flow graph (CFG) - -| - -.. _Control-flow Graph: - -Control-flow Graph -================== - -Computing smart types based on *control-flow graph* that describes -the possible evaluation paths of a function body -(graphs are intraprocedural). + signature + override-compatible signature + override compatibility + class + signature + method + parameter + type + contravariant + covariance + invariance + constraint + type parameter -See :ref:`Computing Smart Types` for a list of CFG nodes that influences -computation. +The following rule applies to generics: -TBD: Describe how each language construct is translated to a CFG fragment. + - Derived class must have type parameter constraints to be subtype + (see :ref:`Subtyping`) of the respective type parameter + constraint in the base type; + - Otherwise, a :index:`compile-time error` occurs. .. index:: - control-flow graph (CFG) - smart type - evaluation path - function body + generic + derived class + subtyping + subtype + type parameter + base type -| +.. code-block:: typescript + :linenos: -.. _Type Expression Simplification: + class Base {} + class Derived extends Base {} + class A1 {} + class B1 extends A1 {} + // OK, derived class may have type compatible constraint of type parameters -Type Expression Simplification -============================== + class A2 {} + class B2 extends A2 {} + // Compile-time error, derived class cannot have non-compatible constraints of type parameters -The following table summarises the contexts for *type expression simplification* -transformations to be performed at each node of the CFG: +The semantics is illustrated by the examples below: -.. list-table:: - :width: 100% - :widths: 40 30 30 - :header-rows: 1 +1. **Class/Interface Types** - * - Transformation - - Initial expression - - Simplified expression - * - Associativity of '``&``' - - ``(A&B)&C`` - - ``A&(B&C)`` - * - Commutativity of '``&``' - - ``A&B`` - - ``B&A`` - * - In case of subtyping ``A<:B`` and '``&``' - - ``A&B`` - - ``A`` - * - - - ``A&never`` - - ``never`` - * - - - ``A&Any`` - - ``A`` - - * - Associativity of '``|``' - - ``(A|B)C`` - - ``A|(B|C)`` - * - Commutativity of '``|``' - - ``A|B`` - - ``B|A`` - * - In case of subtyping ``A<:B`` and '``|``' - - ``A|B`` - - ``B`` - * - - - ``A|never`` - - ``A`` - * - - - ``A|Any`` - - ``Any`` - * - Difference with ``never`` - - ``A-never`` - - ``A`` - * - In case of subtyping ``A<:B`` and '``-``' - - ``A-B`` - - ``never`` - * - - - ``A-Any`` - - ``never`` - * - - - ``(B-A)|A`` - - ``B`` - * - - - ``(A-B)&B`` - - ``never`` - * - Other transformations - - ``(A&B)-C`` - - ``(A-C)&(B-C)`` - * - - - ``(A|B)&C`` - - ``(A&C)|(B&C)`` - * - - - ``(A|B)-C`` - - ``(A-C)|(B-C)`` - * - - - ``(A-B)-C`` - - ``(A-(B|C)`` +.. code-block:: typescript + :linenos: + interface Base { + param(p: Derived): void + ret(): Base + } -.. index:: - control-flow graph (CFG) - type expression - type - expression - node - commutativity - associativity - subtyping - simplification transformation + interface Derived extends Base { + param(p: Base): void // Contravariant parameter + ret(): Derived // Covariant return type + } -The following simplifications for object types are also taken into account: +.. index:: + class type + interface type + contravariant parameter + covariant return type -#. If ``A`` and ``B`` are classes and neither transitively extends the other, - then ``A&B = never``, ``A-B = A``. -#. If ``A`` is a final class that does not implement the interface *I*, then - ``A&I = never``, ``A-I = A``. -#. If ``A`` is a class or interface, and *U* is ``never`` or ``undefined``, then - ``A&U = never``, ``A-U = A``. -#. If ``E`` is enum with cases ``E``:sub:`1` ``, ... , E``:sub:`n`, then - ``E = E``:sub:`1` ``| ... |E``:sub:`n`. +2. **Function Types** -The following normalization procedure is performed for every *smart type* at -every node of CFG where possible: +.. code-block:: typescript + :linenos: -#. Push *difference types* inside *intersection types* and unions, and - simplify the the difference. -#. Push *intersection types* inside unions, and simplify the intersections. -#. Simplify the resultant union types. + interface Base { + param(p: (q: Base)=>Derived): void + ret(): (q: Derived)=> Base + } -After a simplification, *smart types* undergo approximation with *difference -types* ``A-B`` recursively replaced by ``A``. + interface Derived extends Base { + param(p: (q: Derived)=>Base): void // Covariant parameter type, contravariant return type + ret(): (q: Base)=> Derived // Contravariant parameter type, covariant return type + } .. index:: - control-flow graph (CFG) - intersection type - smart type - difference type - union - union type - implementation - -| - -.. _Smart Cast Examples: - -Smart Cast Examples -=================== + function type + covariant parameter type + contravariant return type + contravariant parameter type + covariant return type -By using variable initializers or an assignment the compiler can narrow -(smart cast) a declared type to a more precise subtype (smart type). It -allows operations that are specific to the subtype: +3. **Union Types** .. code-block:: typescript :linenos: - function boo() { - let a: number | string = 42 - a++ /* Smart type of 'a' is number and number-specific - operations are type-safe */ + interface BaseSuperType {} + interface Base extends BaseSuperType { + // Overriding for parameters + param(p: T | U): void + + // Overriding for return type + ret(): T | U } - class Base {} - class Derived extends Base { method () {} } - function goo() { - let b: Base = new Derived - b.method () /* Smart type of 'b' is Derived and Derived-specific - operations can be applied in type-safe way */ + interface Derived extends Base { + // Overriding kinds for parameters, Derived <: Base + param( + p: Base | BaseSuperType // contravariant parameter type: Derived | Base <: Base | BaseSuperType + ): void + // Overriding kinds for return type + ret(): T | U } .. index:: - assignment - compiler - subtype - type safety - interface type + union type + return type -Other examples are explicit calls to ``instanceof`` -(see :ref:`InstanceOf Expression`) or checks against ``null`` -(see :ref:`Equality Expressions`) as parts of ``if`` statements -(see :ref:`if Statements`) or conditional expressions -(see :ref:`Conditional Expressions`): +4. **Type Parameter Constraint** .. code-block:: typescript - :linenos: + :linenos: - function foo (b: Base, d: Derived|null) { - if (b instanceof Derived) { - b.method() - } - if (d != null) { - d.method() - } + interface Base { + param(p: T): void + ret(): T } -.. index:: - call - instanceof - null - if statement - conditional expression - expression - method + interface Derived extends Base { + param(p: T): void // Contravariance for constraints of type parameters + ret(): T // Contravariance for constraints of the return type + } -In like cases, a smart compiler requires no additional checks or casts (see -:ref:`Cast Expression`) to deduce a smart type of an entity. -Overloading (see :ref:`Overload Declarations`) can cause tricky situations -when a smart type results in calling an entity that suits the smart type -rather than a declared type of an argument (see -:ref:`Overload Resolution for Overload Declarations`): +The example below illustrates override compatibility with ``Object``: + +.. index:: + contravariance + constraint + return type + type parameter + override compatibility .. code-block:: typescript :linenos: - class Base {b = 1} - class Derived extends Base{d = 2} - - function fooBase (p: Base) {} - function fooDerived (p: Derived) {} - - overload foo { fooDerived, fooBase } + interface Base { + kinds_of_parameters( // It represents all possible kinds of parameter type + p01: Derived, + p02: (q: Base)=>Derived, + p03: number, + p04: Number, + p05: T | U, + p06: E1, + p07: Base[], + p08: [Base, Base] + ): void + kinds_of_return_type(): Object // It can be overridden by all subtypes except primitive ones + } + interface Derived extends Base { + kinds_of_parameters( // Object is a supertype for all types except primitive ones + p1: Object, + p2: Object, + p3: Object, // Compile-time error: number and Object are not override-compatible + p4: Object, + p5: Object, + p6: Object, + p7: Object, + p8: Object + ): void + } - function too() { - let a: Base = new Base - foo (a) // fooBase will be called - let b: Base = new Derived - foo (b) // as smart type of 'b' is Derived, fooDerived will be called + interface Derived1 extends Base { + kinds_of_return_type(): Base // Valid overriding + } + interface Derived2 extends Base { + kinds_of_return_type(): (q: Derived)=> Base // Valid overriding + } + interface Derived3 extends Base { + kinds_of_return_type(): number // Valid overriding + } + interface Derived4 extends Base { + kinds_of_return_type(): number | string // Valid overriding + } + interface Derived5 extends Base { + kinds_of_return_type(): E1 // Valid overriding + } + interface Derived6 extends Base { + kinds_of_return_type(): Base[] // Valid overriding + } + interface Derived7 extends Base { + kinds_of_return_type(): [Base, Base] // Valid overriding } .. index:: - smart compiler - check - smart type - entity - cast expression - check - overloading - overload declaration - type - type argument - function - overload resolution - compiler + parameter type + overriding + subtype + supertype + overriding + compatibility | -.. _Overriding: +.. _Overloading for Functions: + +Overloading for Functions +========================= + +.. meta: + frontend_status: Partly + +*Overloading* must only be considered for functions because inheritance for +functions is not defined. + +The correctness check for functions overloading is performed if two or more +functions with the same name are accessible (see :ref:`Accessible`) in a scope +(see :ref:`Scopes`). -Overriding -********** +A function can be declared in, or imported to a scope. -*Method overriding* is the language feature closely connected with inheritance. -It allows a subclass or a subinterface to offer a specific -implementation of a method already defined in its supertype optionally -with modified signature. +The semantic check for overloading functions is as follows: -The actual method to be called is determined at runtime based on object type. -Thus, overriding is related to *runtime polymorphism*. +- If function signatures are *overload-equivalent*, then + a :index:`compile-time error` occurs. -|LANG| uses the *override-compatibility* rule to check the correctness of -overriding. The *overriding* is correct if method signature in a subtype -(subclass or subinterface) is *override-compatible* with the method defined -in a supertype (see :ref:`Override-Compatible Signatures`). +- Otherwise, *overloading* is valid. -An implementation is forced to :ref:`Make a Bridge Method for Overriding Method` -in some cases of *method overriding*. +It is discussed in detail in :ref:`Function Overloading` and +:ref:`Import and Overloading of Function Names`. .. index:: - overriding - method overriding - subclass - subinterface - supertype - signature - method signature - runtime polymorphism + overloading + function inheritance - parent class - object type - runtime - override-compatibility - override-compatible signature - implementation - bridge method - method overriding + correctness check + semantic check + accessibility + access + scope + import + compilation unit + overload-equivalent signature | -.. _Overriding in Classes: +.. _Overloading and Overriding in Classes: -Overriding in Classes -===================== +Overloading and Overriding in Classes +===================================== .. meta: frontend_status: Partly +Both *overloading* and *overriding* must be considered in case of classes for +methods and partly for constructors. + **Note**. Only accessible (see :ref:`Accessible`) methods are subjected to -overriding. The same rule applies to accessors in case of overriding. +overloading and overriding. The same rules also apply to accessors in case of +overriding. An overriding member can keep or extend an access modifier (see :ref:`Access Modifiers`) of a member that is inherited or implemented. Otherwise, a :index:`compile-time error` occurs. -A :index:`compile-time error` occurs if an attempt is made to do the following: - -- Override a private method of a superclass; or -- Declare a method with the same name as that of a private method with default - implementation from any superinterface. - +An attempt to override a private method of a superclass, or to declare a method +with the same name as the private method with default implementation from any +superinterface causes a :index:`compile-time error`. .. index:: overloading - class inheritance overriding class @@ -2303,6 +1691,7 @@ A :index:`compile-time error` occurs if an attempt is made to do the following: class Base { public public_member() {} protected protected_member() {} + internal internal_member() {} private private_member() {} } @@ -2316,6 +1705,8 @@ A :index:`compile-time error` occurs if an attempt is made to do the following: // Public member can be overridden and/or implemented by the public one public override protected_member() {} // Protected member can be overridden by the protected or public one + internal internal_member() {} + // Internal member can be overridden by the internal one only override private_member() {} // A compile-time error occurs if an attempt is made to override private member // or implement the private methods with default implementation @@ -2323,12 +1714,6 @@ A :index:`compile-time error` occurs if an attempt is made to do the following: The table below represents semantic rules that apply in various contexts: -.. index:: - interface - public - implementation - private method - .. list-table:: :width: 100% :widths: 50 50 @@ -2336,35 +1721,112 @@ The table below represents semantic rules that apply in various contexts: * - Context - Semantic Check + * - Two *instance methods*, two *static methods* with the same name, or two + *constructors* are defined in the same class. + - If signatures are *overload-equivalent*, (see :ref:`Overload-Equivalent + Signatures`), then a :index:`compile-time error` occurs. Otherwise, + *overloading* is used. + + +.. index:: + semantic check + instance method + method + static method + constructor + overload equivalence + overloading + overload-equivalent signature + overriding + implementation + public + internal + private + +.. code-block:: typescript + :linenos: + + class aClass { + + instance_method_1() {} + instance_method_1() {} // compile-time error: instance method duplication + + static static_method_1() {} + static static_method_1() {} // compile-time error: static method duplication + + instance_method_2() {} + instance_method_2(p: number) {} // valid overloading + + static static_method_2() {} + static static_method_2(p: string) {} // valid overloading + + constructor() {} + constructor() {} // compile-time error: constructor duplication + + constructor(p: number) {} + constructor(p: string) {} // valid overloading + + } + +.. list-table:: + :width: 100% + :widths: 50 50 + :header-rows: 0 + * - An *instance method* is defined in a subclass with the same name as the *instance method* in a superclass. - If signatures are *override-compatible* (see :ref:`Override-Compatible Signatures`), then *overriding* is used. - Otherwise, a :index:`compile-time error` occurs. + Otherwise, *overloading* is used. + + +.. code-block:: typescript + :linenos: + + class Base { + method_1() {} + method_2(p: number) {} + } + class Derived extends Base { + override method_1() {} // overriding + method_2(p: string) {} // overloading + } + +.. list-table:: + :width: 100% + :widths: 50 50 + :header-rows: 0 + + * - A *static method* is defined in a subclass with the same name as the + *static method* in a superclass. + - If signatures are *overload-equivalent* (see + :ref:`Overload-Equivalent Signatures`), then the static method in the + subclass *hides* the previous static method.Otherwise, *overloading* is + used. .. index:: - context - semantic check instance method + static method subclass superclass override-compatible signature - overriding override-compatibility + overloading + hiding + overriding .. code-block:: typescript :linenos: class Base { - method_1() {} - method_2(p: number) {} + static method_1() {} + static method_2(p: number) {} } class Derived extends Base { - override method_1() {} // overriding - method_2(p: string) {} // compile-time error + static method_1() {} // hiding + static method_2(p: string) {} // overloading } - .. list-table:: :width: 100% :widths: 50 50 @@ -2372,16 +1834,19 @@ The table below represents semantic rules that apply in various contexts: * - A *constructor* is defined in a subclass. - All base class constructors are available for call in all derived class - constructors via ``super`` call (see :ref:`Explicit Constructor Call`). + constructors. + .. code-block:: typescript :linenos: class Base { + constructor() {} constructor(p: number) {} } class Derived extends Base { constructor(p: string) { + super() super(5) } } @@ -2390,16 +1855,14 @@ The table below represents semantic rules that apply in various contexts: constructor subclass class constructor - super call - constructor call derived class constructor | -.. _Overriding and Overload Signatures in Interfaces: +.. _Overloading and Overriding in Interfaces: -Overriding and Overload Signatures in Interfaces -================================================ +Overloading and Overriding in Interfaces +======================================== .. meta: frontend_status: Done @@ -2411,30 +1874,11 @@ Overriding and Overload Signatures in Interfaces * - Context - Semantic Check - * - A method is defined in a subinterface with the same name as the - method in the superinterface. + * - A method is defined in a subinterface with the same name as the method + in the superinterface. - If signatures are *override-compatible* (see :ref:`Override-Compatible Signatures`), then *overriding* is used. - Otherwise, a :index:`compile-time error` occurs. - * - A method is defined in a subinterface with the same name as the - private method in the superinterface. - - A :index:`compile-time error` occurs. - -.. index:: - overriding - overload signature - interface - semantic check - subinterface - name - method - superinterface - signature - override-compatible signature - override-compatibility - overriding - subinterface - private method + Otherwise, *overloading* is used. .. code-block:: typescript :linenos: @@ -2442,12 +1886,10 @@ Overriding and Overload Signatures in Interfaces interface Base { method_1() method_2(p: number) - private foo() {} // private method with implementation body } interface Derived extends Base { method_1() // overriding - method_2(p: string) // compile-time error: non-compatible signature - foo(p: number): void // compile-time error: the same name as private method + method_2(p: string) // overloading } @@ -2456,8 +1898,10 @@ Overriding and Overload Signatures in Interfaces :widths: 50 50 :header-rows: 0 - * - Two or more methods with the same name are defined in the same interface. - - :ref:`Interface Method Overload Signatures` is used. + * - Two methods with the same name are defined in the same interface. + - *Overloading* is used. A :index:`compile-time error` occurs if signatures + are *overload-equivalent*. + .. index:: method @@ -2465,594 +1909,325 @@ Overriding and Overload Signatures in Interfaces superinterface semantic check override-compatible - override-compatible signature - signature - method overload signature - non-compatible signature + overload-equivalent interface - private method + overloading .. code-block:: typescript :linenos: interface anInterface { - instance_method() // 1st signature - instance_method(p: number) // 2nd signature - } - -| - -.. _Override-Compatible Signatures: - -Override-Compatible Signatures -============================== - -.. meta: - frontend_status: Partly - -If there are two classes ``Base`` and ``Derived``, and class ``Derived`` -overrides the method ``foo()`` of ``Base``, then ``foo()`` in ``Base`` has -signature ``S``:sub:`1` <``V``:sub:`1` ``, ... V``:sub:`k`> -(``U``:sub:`1` ``, ..., U``:sub:`n`) ``:U``:sub:`n+1`, and ``foo()`` in -``Derived`` has signature ``S``:sub:`2` <``W``:sub:`1` ``, ... W``:sub:`l`> -(``T``:sub:`1` ``, ..., T``:sub:`m`) ``:T``:sub:`m+1` as in the example below: - -.. index:: - override-compatible signature - override-compatibility - class - base class - derived class - signature - -.. code-block:: typescript - :linenos: - - class Base { - foo (p1: U1, ... pn: Un): Un+1 - } - class Derived extends Base { - override foo (p1: T1, ... pm: Tm): Tm+1 - } - -The signature ``S``:sub:`2` is override-compatible with ``S``:sub:`1` only -if **all** of the following conditions are met: - -1. Number of parameters of both methods is the same, i.e., ``n = m``. -2. Each parameter type ``T``:sub:`i` is a supertype of ``U``:sub:`i` - for ``i`` in ``1..n`` (contravariance). -3. If return type ``T``:sub:`m+1` is ``this``, then ``U``:sub:`n+1` is ``this``, - or any of superinterfaces or superclass of the current type. Otherwise, - return type ``T``:sub:`m+1` is a subtype of ``U``:sub:`n+1` (covariance). -4. Number of type parameters of either method is the same, i.e., ``k = l``. -5. Constraints of ``W``:sub:`1`, ... ``W``:sub:`l` are to be contravariant - (see :ref:`Invariance, Covariance and Contravariance`) to the appropriate - constraints of ``V``:sub:`1`, ... ``V``:sub:`k`. - -.. index:: - signature - override-compatible signature - override compatibility - class - signature - method - parameter - superinterface - superclass - return type - type - contravariant - covariance - invariance - constraint - type parameter - -The following rule applies to generics: - - - Derived class must have type parameter constraints to be subtype - (see :ref:`Subtyping`) of the respective type parameter - constraint in the base type; - - Otherwise, a :index:`compile-time error` occurs. - -.. index:: - generic - derived class - subtyping - subtype - type parameter - base type - -.. code-block:: typescript - :linenos: - - class Base {} - class Derived extends Base {} - class A1 {} - class B1 extends A1 {} - // OK, derived class may have type compatible constraint of type parameters - - class A2 {} - class B2 extends A2 {} - // Compile-time error, derived class cannot have non-compatible constraints of type parameters - -The semantics is represented in the examples below: - -1. **Class/Interface Types** - -.. code-block:: typescript - :linenos: - - interface Base { - param(p: Derived): void - ret(): Base - } + instance_method_1() + instance_method_1() // Compile-time error: instance method duplication - interface Derived extends Base { - param(p: Base): void // Contravariant parameter - ret(): Derived // Covariant return type - } - -.. index:: - class type - semantics - interface type - contravariant parameter - covariant return type - -2. **Function Types** - -.. code-block:: typescript - :linenos: - - interface Base { - param(p: (q: Base)=>Derived): void - ret(): (q: Derived)=> Base - } - - interface Derived extends Base { - param(p: (q: Derived)=>Base): void // Covariant parameter type, contravariant return type - ret(): (q: Base)=> Derived // Contravariant parameter type, covariant return type - } - -.. index:: - function type - covariant parameter type - contravariant return type - contravariant parameter type - covariant return type - -3. **Union Types** - -.. code-block:: typescript - :linenos: - - interface BaseSuperType {} - interface Base extends BaseSuperType { - // Overriding for parameters - param(p: T | U): void - - // Overriding for return type - ret(): T | U - } - - interface Derived extends Base { - // Overriding kinds for parameters, Derived <: Base - param( - p: Base | BaseSuperType // contravariant parameter type: Derived | Base <: Base | BaseSuperType - ): void - // Overriding kinds for return type - ret(): T | U - } - -.. index:: - union type - return type - parameter - overriding - -4. **Type Parameter Constraint** + instance_method_2() + instance_method_2(p: number) // Valid overloading + } -.. code-block:: typescript - :linenos: +| - interface Base { - param(p: T): void - ret(): T - } +.. _Overload Resolution: - interface Derived extends Base { - param(p: T): void // Contravariance for constraints of type parameters - ret(): T // Contravariance for constraints of the return type - } +Overload Resolution +******************* -Override compatibility with ``Object`` is represented in the example below: +.. meta: + frontend_status: Done -.. index:: - contravariance - constraint - return type - type parameter - override compatibility +*Overload resolution* is used to select one entity to call from a set of +*potentially applicable candidates* in a function, method, or constructor call. +Overload resolution is performed in two steps as follows: -.. code-block:: typescript - :linenos: +#. Select *applicable candidates* from *potentially applicable candidates*; - interface Base { - kinds_of_parameters( // It represents all possible kinds of parameter type - p01: Derived, - p02: (q: Base)=>Derived, - p03: number, - p04: T | U, - p05: E1, - p06: Base[], - p07: [Base, Base] - ): void - kinds_of_return_type(): Object // It can be overridden by all subtypes of Object - } - interface Derived extends Base { - kinds_of_parameters( // Object is a supertype for all class types - p1: Object, - p2: Object, - p3: Object, - p4: Object, - p5: Object, - p6: Object, - p7: Object - ): void - } +#. If there is more than one *applicable candidate*, then select the *best + candidate*. - interface Derived1 extends Base { - kinds_of_return_type(): Base // Valid overriding - } - interface Derived2 extends Base { - kinds_of_return_type(): (q: Derived)=> Base // Valid overriding - } - interface Derived3 extends Base { - kinds_of_return_type(): number // Valid overriding - } - interface Derived4 extends Base { - kinds_of_return_type(): number | string // Valid overriding - } - interface Derived5 extends Base { - kinds_of_return_type(): E1 // Valid overriding - } - interface Derived6 extends Base { - kinds_of_return_type(): Base[] // Valid overriding - } - interface Derived7 extends Base { - kinds_of_return_type(): [Base, Base] // Valid overriding - } +**Note**. The first step is performed in all cases, even if there is +only one *applicable candidate* to check *call signature compatibility*. .. index:: - parameter type - overriding - subtype - supertype - overriding - compatibility + overload resolution + entity + applicable candidate + call signature compatibility + constructor call + constructor + potentially applicable candidate + best candidate | -.. _Overriding and Implementing Methods with Overload Signatures: +.. _Selection of Applicable Candidates: -Overriding and Implementing Methods with Overload Signatures -============================================================ +Selection of Applicable Candidates +================================== .. meta: - frontend_status: None + frontend_status: Partly + todo: adapt the implementation to the latest specification (handle rest, union, functional types properly) + todo: make the ISA/assembler/runtime handle union types without collision - eg foo(arg: A|B) and foo(arg: C|D) -If an interface (*derived interface*) extends another interface (*base -interface*), and the base interface has a set of overload signatures, then the -derived interface must provide a valid overriding overload signature (or -signatures) for all overload signatures of the base interface. The derived -interface can introduce additional overload signatures. The situation is -represented in the example below: +The selection of *applicable candidates* is the process of checking +:ref:`Compatibility of Call Arguments` for all entities from the set of +*potentially applicable candidates*. If any argument is not compatible with +the corresponding parameter type, then the entity is deleted from the set. +**Note**. Compile-time errors are not reported at this stage. -.. code-block:: typescript - :linenos: +After processing all entities, one of the following results is achieved: - interface Interface { - foo (p: number): void // 1st overload signature - foo (p: string): void // 2nd overload signature - } +- Set is empty (all entities are deleted). A compile-time error occurs, + and the *overload resolution* is completed. - interface Interface1 extends Interface { - foo (p: number|string): void // 1st overload signature overrides both foo from Interface - foo (p: boolean): void // 2nd overload signature - } +- Only one entity is left in the set. This is the entity to call, and + the *overload resolution* is completed. - function demo (p1: Interface1) { - p1.foo (5) // fits 1st signature of Interface1 - p1.foo ("5 true") // fits 1st signature of Interface1 - p1.foo (true) // fits 2nd signature of Interface1 - } +- More than one entity is left in the set. The next step of the + *overload resolution* is to be performed. .. index:: - interface - derived interface - base interface - overload signature - signature - overriding - -If a class (*derived class*) implements an interface (*base interface*), and -the base interface has a set of overload signatures, then the derived class -can provide a valid overriding overload signature (or signatures) for all -overload signatures of the base interface. The derived class can introduce -additional overload signatures. The implementation body must have -the signature ``(...p: Any[]): Any`` (see -:ref:`Overload Signatures Implementation Body`). This signature is a valid -overriding for any overloaded signature. The same works if one class extends -another class. The situation is represented in the example below: + applicable candidate + potentially applicable candidate + semantic check + compatibility + call argument + entity + parameter type + overload resolution + overloaded function + call -.. index:: - derived class - class - implementation - interface - base interface - overload signature - signature - implementation body +Two overloaded functions are considered in the following example: .. code-block:: typescript :linenos: - class Class1 implements Interface { - foo (p: number): void // 1st overload signature - foo (p: string): void // 2nd overload signature - foo (...p: Any[]): Any {} // implementation signature + body - } + class Base { } + class Derived extends Base { } - class Class2 implements Interface { - foo (...p: Any[]): Any {} // implementation signature only + body - } + function foo(p: Base) { ... } // #1 + function foo(p: Derived) { ... } // #2 - class Class3 extends Class1 { - override foo (p: number): void // 1st overload signature - override foo (p: string): void // 2nd overload signature - override foo (...p: Any[]): Any {} // implementation signature + body - } + foo(new Derived) // two applicable candidates for this call + // next step of overload resolution is required - class Class4 extends Class3 { - override foo (...p: Any[]): Any {} // implementation signature only + body - } + foo(new Base) // one applicable candidate + // overload resolution is completed + // #1 will be called + + foo(new Base, 5) // no candidates, compile-time error - new Class1().foo(5) // OK - new Class1().foo("555") // OK - new Class1().foo(true) // compile-time error - no boolean parameter +| - new Class2().foo(5) // OK - new Class2().foo("555") // OK +.. _Selection of Best Candidate: - function test (p: Interface) { - p.foo (5) - p.foo ("5555") - } +Selection of Best Candidate +=========================== - test(new Class1) - test(new Class2) - test(new Class3) - test(new Class4) +.. meta: + frontend_status: Partly -| +If the set of *applicable candidates* has two or more candidates, then the +best candidate for the given list of arguments is to be identified, if possible. -.. _Overloading: +The selection of the best candidate is based on the following: -Overloading -*********** +- There are no candidates with the same list of parameters, as this situation + is already forbidden by the compiler (at the place of declaration or import) + (see :ref:`Overload-Equivalent Signatures`); -*Overloading* is the language feature that allows to use the same name to -call several functions, or methods, or constructors with different signatures. +- If several candidates can be called correctly by using the same argument list, + then at least one implicit argument transformation must be applied to make + the call. -The actual function, method, or constructor to be called is determined at -compile time. Thus, *overloading* is compile-time *polymorphism by name*. +Possible argument transformations are listed below: -|LANG| supports the following two *overloading* mechanisms: +- Passing default values to fill any missing arguments + (:ref:`Optional Parameters`); -- |TS|-compatible feature: :ref:`Declarations with Overload Signatures` - mainly used to improve type checking; and +- Passing the empty array to replace a ``rest`` parameter that has no argument; -- Innovative *managed overloading* (see :ref:`Overload Declarations`). +- Folding several arguments to the array for a ``rest`` parameter. .. index:: - overloading - name - context - entity - function - constructor - method - signature - compile type - compile-time polymorphism - polymorphism by name - overload signature - overload declaration - managed overloading - type checking - compatibility + applicable candidate + best candidate + parameter + compiler + import site + argument transformation + value + overload-equivalent signature + rest parameter + conversion + array + rest parameter -*Signature resolution* is used to select one entity to call from a set of -candidates if the name to call refers to a *declaration with overload signatures* -(see :ref:`Signature Resolution for Overload Signatures`). +The examples of transformations are presented below: -*Overload resolution* is used to select one entity to call from a set of -candidates if the name to call refers to an *overload declaration* (see -:ref:`Overload Resolution for Overload Declarations`). +.. code-block:: typescript + :linenos: + + function foo1(x?: string) {} + foo1() // passing default value -> foo(undefined) -Both mechanisms of resolution use the first-match textual order to streamline -the resolution process. + function foo2(...x: int[]) {} + foo2() // passing empty array -> foo([]) + foo2(1, 2) // folding to array -> foo(...[1, 2]) -TBD: A :index:`compile-time warning` is issued if the order of entities in an -*overload declaration* implies that some overloaded entities can never be -selected for a call. +The *best candidate* is the candidate that requires no transformation for all +arguments. If there is such a single candidate, then other candidates are not +considered. Such *best candidate* is represented +in the example below: .. code-block:: typescript :linenos: - function f1 (p: number) {} - function f2 (p: string) {} - function f3 (p: number|string) {} - overload foo {f1, f2, f3} // f3 will never be called as foo() + function max(a: number, b: number) // #1 + function max(...args: number[]) // #2 - foo (5) // f1() is called - foo ("5") // f2() is called + max(1, 2) // #1 - is the best candidate, no transformation .. index:: - signature resolution - entity - call - candidate - signature resolution - overload signature - signature - overload declaration - resolution process - call + best candidate + transformation + argument -| +If there is no *best candidate* at this step, then each candidate +is compared to other candidates. +The following sequence of checks is used to calculate a partially *better* +relation based on the comparison of candidates *C1* and *C2*: -.. _Signature Resolution for Overload Signatures: -Signature Resolution for Overload Signatures -============================================ +**Check 1**. If *C1* has fewer parameters, i.e., default values or an empty +``rest`` argument are used instead of the absent arguments in the *C2* call, +then *C1* is *better*. -.. meta: - frontend_status: None +.. code-block:: typescript + :linenos: + + function foo(n: number, s?: string) // #1 + function foo(n: number) // #2 -*Overload signature* allows specifying a function, method, or constructor that -can have multiple signatures and a single *implementation body* with its own -fixed *implementation siganture* (see -:ref:`Overload Signatures Implementation Body`). -Call arguments are checked at the call site against such multiple signatures in -their declaration order: the call is considered valid as soon as the first -signature is found appropriate for the arguments given. -A :index:`compile-time error` occurs if no appropriate signature is found. + foo(1) // #2 is better, less parameters + + function bar(...args: number[]) // #1 + function bar() // #2 + + bar() // #2 is better, less parameters + + function goo(...args: number[]) // #1 + function goo(n?: number) // #2 + + goo() // none is better + +.. index:: + best candidate + better candidate + partially better candidate + rest argument + +**Check 2**. If *C1* has a non-``rest`` parameter(s) for a non-empty list of +arguments, and *C2* has a ``rest`` parameter, then *C1* is *better*. .. code-block:: typescript :linenos: - function foo(s: string) // signature #1 - function foo(s: string, n: number) // signature #2 - function foo(...x: Any[]): Any {} // implementation signature + function foo(sum: number, a: number, b: number) // #1 + function foo(sum: number, ...x: number[]) // #2 - foo("1") // call fits signature #1 - foo("1", 5) // call fits signature #2 - foo(1, 2, 3) // compile-time error - no appropriate signature for the call - // implementation signature is not accessible at call sites + foo(1, 2, 3) // #1 is better, non-rest parameters .. index:: - signature resolution - overload signature - function - method - constructor - signature - implementation body - implementation signature argument - call - declaration - string - accessibility - call site + better candidate + rest argument -| +**Check 3**. If an argument type is a subtype of parameter type for *C1* and +not for *C2*, then *C1* is *better* for this argument. -.. _Overload Resolution for Overload Declarations: +.. code-block:: typescript + :linenos: -Overload Resolution for Overload Declarations -============================================= + function foo(n: int) // #1 + function foo(n: long) // #2 -.. meta: - frontend_status: None + foo(1) // #1 is better, argument type is subtype of parameter type + foo(1 as long) // #2 is better + +.. index:: + argument + better candidate + argument transformation -*Overload declaration* defines an ordered set of entities, and the first entity -from this set that is *accessible* and has an appropriate signature is used to -call at the call site. -This approach is called *managed overloading* because the *first-match* -algorithm provides full control for a developer to select a specific entity -to call. This developer control over calls is represented in the following -example: +**Check 4**. If an argument type is a subtype of parameter type for both *C1* +and *C2*, but type of *C1* is identical for the argument type and type of *C2* +is not, then *C1* is *better* for this argument. .. code-block:: typescript :linenos: - function max2i(a: int, b: int): int - return a > b ? a : b - } - function max2d(a: double, b: double): double { - return a > b ? a : b - } - function maxN(...a: double[]): double { - // returns max element in array 'a' - } - overload max {max2i, max2d, maxN} + class C {} + class D extends C {} - let i = 1 - let j = 2 - let pi = 3.14 + function foo(x: C) {} // #1 + function foo(x: D) {} // #2 - max(i, j) // max2i is used - max(i, pi) // max2d is used - max(i, pi, 4) // maxN is used - max(1) // maxN is used - max(false, true) // compile-time error, no appropriate signature + foo(new C) // #1 is better -.. index:: - overload declaration - signature - entity - set - access - accessible - call site - managed overloading - first-match algorithm - function - control - call +**Check 5**. Otherwise, none is better for this argument, including cases: + +- An argument type is a subtype of parameter type for both *C1* + and *C2*, but neither is identical; -Overload resolution for an instance method overload (see -:ref:`Class Method Overload Declarations`) always uses the type of the -*object reference* known at compile time. It can be either the type used -in a declaration, or a *smart type* (see :ref:`Smart Casts and Smart Types`) -as illustrated by the example below: +- An argument type is not a subtype for both *C1* and *C2*. .. code-block:: typescript :linenos: - class A { - foo1(x: A) { console.log("A.foo") } - overload foo {foo1} - } - class B extends A { - foo2(x: B) { console.log("B.foo") } - overload foo {foo2, foo1} - } + function foo(x: number | boolean) // #1 + function foo(x: number | string) // #2 - function test(a: A) { - a.foo(new B()) // 'foo1' is called as overload from 'A' is used - } + foo(1.) // both subtype, none identical: none is better - test(new B()) // output: A.foo + function negate(x: long) // #1 + function negate(x: double) // #2 - let b = new B() - b.foo(b) // output: B.foo, as overload from 'B' is used + negate(1) // none subtype: none is better .. index:: - overload resolution - method overload - class method - overload declaration - type - object reference - compile time - smart type - smart cast - signature + best candidate + better candidate + argument transformation + numeric type + conversion + parameter + +A :index:`compile-time error` occurs if +*C1* is *better* for one argument, and *C2* is *better* for another argument +as represented in the example below: + +.. code-block:: typescript + :linenos: + + function goo(a: int; b: int | string) // #1 + function goo(a: int | string, b: int) // #2 + + goo(1, 1) // compile-time error, as + // #1 is better for 1st argument, + // #2 is better for 2nd argument. + +.. index:: + best candidate + argument + better candidate + + +If exactly one candidate is *better* than others, +then it is the *best candidate*. +Otherwise, if no single candidate is *better*, +:index:`compile-time error` occurs. | @@ -3061,21 +2236,19 @@ as illustrated by the example below: Type Erasure ************* -.. meta: - frontend_status: Done - -*Type erasure* is the concept that denotes a special handling of certain -language *types*, primarily :ref:`Generics`, in the semantics of the following -language operations that require the type to be preserved for execution: +*Type erasure* is the concept that denotes a special handling of some language +*types*, primarily :ref:`Generics`, in the semantics of the following language +operations that require the type to be preserved for execution: - :ref:`InstanceOf Expression`; -- :ref:`Cast Expression`. +- :ref:`Cast Expression`; +- :ref:`Overload-Equivalent Signatures`. -In these operations certain *types* are handled as their corresponding -*effective types*, while the *effective type* is defined as type mapping. -The *effective type* of a specific type ``T`` is always a supertype of ``T``. -As a result, the following two kinds of relationship are possible between an -original type and an *effective type*: +In these operations some *types* are handled as their corresponding *effective +types*, while the *effective type* is defined as type mapping. The *effective +type* of a specific type ``T`` is always a supertype of ``T``. As a result, +two kinds of relationship are possible between an original type and an +*effective type*: - *Effective type* of ``T`` is identical to ``T``, and *type erasure* has no effect. @@ -3087,11 +2260,9 @@ original type and an *effective type*: type erasure instanceof expression cast expression - execution + overload-equivalent signature operation type - generic - semantics effective type type mapping supertype @@ -3099,7 +2270,7 @@ original type and an *effective type*: In addition, accessing a value of type ``T``, including by :ref:`Field Access Expression`, :ref:`Method Call Expression`, or :ref:`Function Call Expression` can cause ``ClassCastError`` thrown if -type ``T`` and the ``target`` type are both affected by *type erasure*, and the +type ``T``and the ``target`` type are both affected by *type erasure*, and the value is produced by :ref:`Cast Expression`. .. code-block:: typescript @@ -3124,10 +2295,8 @@ value is produced by :ref:`Cast Expression`. } .. index:: - access type erasure field access - function call method call target type cast expression @@ -3144,9 +2313,8 @@ Type mapping determines the *effective types* as follows: - *Covariant* type parameters are instantiated with the constraint type; - *Contravariant* type parameters are instantiated with the type ``never``; - - - *Invariant* type parameters are instantiated with no type argument, i.e., - ``Array`` is instantiated as ``Array<>``. + + - *Invariant* type parameters have no corresponding type argument, **TBD** - Union type constructed from the effective types of types ``T1 | T2 ... Tn`` within the original union type for :ref:`Union Types` in the form @@ -3160,14 +2328,14 @@ Type mapping determines the *effective types* as follows: - Instantiation of an internal generic function type with respect to the number of parameter types *n* for :ref:`Function Types` in the form ``(P1, P2 ..., Pn) => R``. Parameter types ``P1, P2 ... Pn`` are - instantiated with ``Any``, and the return type ``R`` + instantiated with ``object | null | undefined``, and the return type ``R`` is instantiated with type ``never``. - Instantiation of an internal generic tuple type with respect to the number of element types *n* for :ref:`Tuple Types` in the form - ``[T1, T2 ..., Tn]``. + ``[T1, T2 ..., Tn]``. **TBD** -- String for :ref:`String Literal Types`. +- String for *string literal types* (see :ref:`Literal Types`). - Enumeration base type of the same const enum type for *const enum* types (see :ref:`Enumerations`). @@ -3178,24 +2346,15 @@ Type mapping determines the *effective types* as follows: type erasure type mapping generic type - type parameter - constraint effective type instantiation type argument covariant type parameter type parameter contravariant type parameter - type - generic tuple - tuple type - string - literal type - enumeration base type - const enum type - enumeration invariant type parameter parameter type + type argument type preservation | @@ -3205,83 +2364,46 @@ Type mapping determines the *effective types* as follows: Static Initialization ********************* -.. meta: - frontend_status: Done - -*Static initialization* is a routine performed once for each class (see -:ref:`Classes`), namespace (see :ref:`Namespace Declarations`), or -module (see :ref:`Modules`). - -*Static initialization* execution involves the execution of the following: +*Static initialization* is a routine performed once for each class +(see :ref:`Classes`), namespace (see :ref:`Namespace Declarations`), +separate module (see :ref:`Separate Modules`) or package module (see :ref:`Packages`). -- *Initializers* of *variables* or *static fields*; +*Static initialization* execution involves execution of: -- *Top-level statements*; +- *Initializers* of *variables* or *static fields* -- Code inside a *static block*. - -.. index:: - static initialization - routine - class - namespace - namespace declaration - module - initializer - variable - static field - top-level statement - static block +- *Top-level statements* -*Static initialization* is performed before the first execution of one of the -following operations: +- Code inside *Static block* -- Invocation of a static method or function of an entity scope; -- Access to a static field or variable of an entity scope; +*Static initialization* is performed before one of the following operations is first excecuted: -- Instantiation of an entity that is an interface or class; +- a static method or function of entity's scope is invoked -- *Static initialization* of a direct subclass of an entity that is a class. +- a static field or variable of entity's scope is accessed -**Note**. None of the operations above invokes a *static initialization* -recursively if the *static initialization* of the same entity is not complete. +- entity, which is an interface or class, is instantiated -**Note**. For namespaces, the code in a static block is executed only when -namespace members are used in the program (an example is provided in -:ref:`Namespace Declarations`). +- entity is a class, and its direct subclass is *statically initialized* -If *static initialization* routine execution is terminated due to an -exception thrown, then the initialization is not complete. Repeating an attempt -to execute a *static initialization* produces an exception again. +Note: Any of the enlisted operations does not invoke *static initialization* +recursively if the *static initializaton* of the same entity is not complete. -*Static initialization* routine invocation of a concurrent execution (see -:ref:`Coroutines (Experimental)`) involves synchronization of all *coroutines* -that try to invoke it. The synchronization is to ensure that the initialization -is performed only once, and the operations that require the *static -initialization* to be performed are executed after the initialization completes. +If *static initialization* routine execution is terminated due to the +exception thrown, then the initialization is not complete, +and any attempt to execute its *static initialization* once again will +produce an exception. -If *static initialization* routines of two concurrently initialized classes are -circularly dependent, then a deadlock can occur. +For the concurrent execution (see :ref:`Coroutines (Experimental)`) +*static initialization* routine invokation involves synchronization +between all *coroutines* that try to invoke it to ensure that +initialization is performed only once and the operations +that require *static initialization* to be performed are executed after +the initialization completes. -.. index:: - static initialization - entity - scope - static field - variable - access - direct subclass - subclass - class - interface - operation - exception - invocation - concurrent execution - coroutine - synchronization - deadlock +If *static initialization* routines of two concurrently initialized classes +has a circular dependence, it may lead to deadlock. | @@ -3290,42 +2412,22 @@ circularly dependent, then a deadlock can occur. Static Initialization Safety ============================ -.. meta: - frontend_status: Done - -A compile-time error occurs if a *named reference* refers to a not yet -initialized *entity*, including one of the following: +If a *named reference* refers to a not yet initialized *entity*, including -- Variable (see :ref:`Variable and Constant Declarations`) of a module or - namespace (see :ref:`Namespace Declarations`); +- variable (see :ref:`Variable and Constant Declarations`) of a separate module + package (see :ref:`Packages`), or namespace (see :ref:`Namespace Declarations`) -- Static field of a class (see :ref:`Static and Instance Fields`). +- a static field of the class (see :ref:`Static Fields`) -If detecting an access to a not yet initialized *entity* is not possible, then -runtime evaluation is performed as follows: +then a compile-time error is produced. -- Default value is produced if the type of an entity has a default value; +If it is not possible to detect an access to a not yet initalized *entity*, +then the runtime evaluation is performed as follows: -- Otherwise, ``NullPointerError`` is thrown. +- If type of the entity has a default value, then a default value is produced -.. index:: - static initialization - safety - named reference - initialization - entity - variable - module - namespace - static field - class - access - runtime evaluation - default value - value - type +- Otherwise, ``NullPointerError`` is thrown -| .. _Dispatch: @@ -3367,10 +2469,9 @@ program code execution. Compilation tools can optimize dynamic to static dispatc inferred type point of declaration dynamic dispatch - object-oriented programming (OOP) + OOP (object-oriented programming) static dispatch compile time - compilation tool | @@ -3379,9 +2480,6 @@ program code execution. Compilation tools can optimize dynamic to static dispatc Compatibility Features ********************** -.. meta: - frontend_status: Done - Some features are added to |LANG| in order to support smooth |TS| compatibility. Using these features while doing the |LANG| programming is not recommended in most cases. @@ -3425,12 +2523,10 @@ below: .. index:: extended conditional expression conditional expression - expression alignment semantics conditional-and expression conditional-or expression - logical complement while statement do statement for statement @@ -3438,10 +2534,7 @@ below: truthiness non-boolean type expression type - extended semantics - boolean logic - boolean type - non-boolean type + .. list-table:: :width: 100% @@ -3486,24 +2579,13 @@ below: - When value is ``false`` according to this column - When value is ``true`` according to this column - ``x != null`` or - + ``x != undefined`` for union types with nullish types * - Any other nonNullish type - ``never`` - ``always`` - ``new SomeType != null`` -.. index:: - value type - integer type - union type - nullish type - empty string - non-empty string - string - number - nonzero - Extended semantics of :ref:`Conditional-And Expression` and :ref:`Conditional-Or Expression` affects the resultant type of expressions @@ -3515,9 +2597,9 @@ as follows: - A *conditional-or* expression ``A || B`` is of type ``B`` if the result of ``A`` is handled as ``false``. Otherwise, it is of type ``A``. -The way this approach works in practice is represented in the example below. -Any ``nonzero`` number is handled as ``true``. The loop continues until it -becomes ``zero`` that is handled as ``false``: +The example below illustrates the way this approach works in practice. Any +``nonzero`` number is handled as ``true``. The loop continues until it becomes +``zero`` that is handled as ``false``: .. code-block-meta: @@ -3544,10 +2626,14 @@ becomes ``zero`` that is handled as ``false``: NaN nullish expression numeric expression - semantics conditional-and expression conditional-or expression loop + string + integer type + union type + nullish type + nonzero .. raw:: pdf diff --git a/static_core/plugins/ets/doc/spec/16_concurrency.rst b/static_core/plugins/ets/doc/spec/16_concurrency.rst index e6e867a03a..666b099a28 100644 --- a/static_core/plugins/ets/doc/spec/16_concurrency.rst +++ b/static_core/plugins/ets/doc/spec/16_concurrency.rst @@ -17,9 +17,6 @@ Concurrency ########### -.. meta: - frontend_status: Done - | .. _Introductory Note: @@ -28,9 +25,6 @@ Concurrency Introductory Note ***************** -.. meta: - frontend_status: Done - Most modern hardware has multiple cores. To achieve maximum performance, the software must be capable of using more than one core in some scenarios (e.g., multimedia processing, data analysis, simulation, modelling, databases etc.). @@ -38,16 +32,6 @@ multimedia processing, data analysis, simulation, modelling, databases etc.). Providing support to a number of asynchronous APIs at different levels is also crucial. -.. index:: - hardware - core - performance - data analysis - multimedia processing - simulation - modelling - database - | .. _Concurrency Subsystem Overview: @@ -56,9 +40,6 @@ is also crucial. Concurrency Subsystem Overview ****************************** -.. meta: - frontend_status: Done - | .. _Major Concurrency Features: @@ -66,9 +47,6 @@ Concurrency Subsystem Overview Major Concurrency Features ========================== -.. meta: - frontend_status: Done - |LANG| has APIs for asynchronous programming that enables tasks to be suspended and resumed later, and supports coroutines that can run in parallel (implicitly or explicitly). Since the |LANG| coroutines share memory, a developer must be @@ -85,15 +63,6 @@ following: 4. Synchronization primitives and "thread"-safe containers in :ref:`Standard Library`. -.. index:: - concurrency - asynchronous programming - coroutine - shared memory - functionality - parallel-run coroutine - structured concurrency - synchronization | @@ -115,18 +84,13 @@ Asynchronous API .. meta: frontend_status: Done -``Async`` functions are coroutines (functions which can be suspended and then -resumed) that can be called as regular functions. - -A :index:`compile-time error` occurs if - -- ``Async`` functions are called in static initializers, including module - scope; -- ``Async`` functions have ``abstract`` or ``native`` modifier; -- The return type of an ``async`` function is different from ``Promise``. +``Async`` functions are implicit coroutines that can be called as regular +functions. ``Async`` functions cannot be called in static initializers, +including top-scope. ``Async`` functions can be neither ``abstract`` nor +``native``. -Type ``Promise`` a library type discussed in detail in the |LANG| Concurrency -Specification. +The return type of an ``async`` function must be ``Promise``. It is +a library type discussed in detail in the |LANG| Concurrency Specification. The returning values of both type ``Promise`` and type ``T`` are allowed inside the ``async`` function body (see :ref:`Return Type Inference`). @@ -141,12 +105,9 @@ with the return ``Promise``. supported for the sake of backward |TS| compatibility only. .. index:: - async function + function async coroutine return type - static initializer - abstract function - native function function body backward compatibility annotation @@ -172,9 +133,6 @@ is an implicit coroutine that can be called as a regular lambda. .. index:: async lambda - async modifier - lambda expression - coroutine | @@ -193,50 +151,24 @@ is an implicit coroutine that can be called as a regular method. .. index:: async method - class method - async modifier - method declaration - coroutine | -.. _await Expression: - -``await`` -========= - -.. meta: - frontend_status: Done - -The syntax of *await expression* is presented below: - -.. code-block:: abnf - - awaitExpression: - 'await' expression - ; +.. _await: -The expression is a subtype of :ref:`Promise`. -If expression is `Promise`, then type of *awaitExpression* is `Awaited`. +await +===== ``await`` is used to wait for :ref:`Promise` If ``Promise`` not resolved, then the current coroutine is suspended until it is resolved. -If :ref:`Promise` is rejected, then the reason of +If :ref:'Promise' is rejected, then the reason of the rejection is thrown. Using ``await`` outside of :ref:`async functions` is forbidden. -.. index:: - syntax - await expression - subtype - expression - resolution - async function - | .. _Concurrency Promise Class: @@ -244,34 +176,19 @@ Using ``await`` outside of :ref:`async functions` is forbidden. Promise ======= -.. meta: - frontend_status: Done - The ``Promise object`` is introduced to support asynchronous API. It is the object that represents a proxy for the result of an asynchronous operation. The semantics of ``Promise`` is similar to the semantics of ``Promise`` in |JS|/|TS| if it is used in the context of a single coroutine. ``Promise object`` represents the values returned by the call of an ``async`` -function. ``Promise object`` can be used without any qualification as it is -defined in the :ref:`Standard Library`. +function. ``Promise object`` belongs to core packages of the +:ref:`Standard Library`. Thus it is imported by default, and can be used +without any qualification. The ``Promise`` lifetime is not limited to the lifetime of the root coroutine as it is created. -.. index:: - promise object - asynchronous API - asynchronous operation - API - semantics - proxy - coroutine - context - async function - qualification - root coroutine - ``Promise`` is not in general designed to be used concurrently and simultaneously from multiple coroutines. However, it is safe to do the following: @@ -296,62 +213,54 @@ The methods are used as follows: The callback is called on the coroutine when ``then`` called, and if ``Promise`` is passed from one coroutine to another and called ``then`` in both, then they are called in different coroutines (possibly concurrently). - The developer must consider a possible data race and take appropriate care. + The developer must take care of possible data races. .. index:: - coroutine - custom synchronization - method + class + value + launch argument callback - concurrency - data race + package + standard library + method .. - Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: Any) => E|PromiseLike throws)|undefined): Promise + Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: NullishType) => E|PromiseLike throws)|undefined): Promise .. code-block:: typescript - Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: Any) => E|PromiseLike throws)|undefined): Promise> + Promise::then(onFulfilled: ((value: T) => U|PromiseLike throws)|undefined, onRejected: ((error: NullishType) => E|PromiseLike throws)|undefined): Promise -- ``catch`` takes one argument (the callback called after promise is rejected) and returns ``Promise>`` +- ``catch`` takes one argument(the callback called after promise is rejected) and returns ``Promise`` .. code-block-meta: .. code-block:: typescript - Promise::catch(onRejected?: (error: Any) => U|PromiseLike throws): Promise> + Promise::catch(onRejected?: (error: NullishType) => U|PromiseLike throws): Promise - ``finally`` takes one argument (the callback called after ``promise`` is - either fulfilled or rejected) and returns ``Promise>``. + either fulfilled or rejected) and returns ``Promise``. +.. index:: + alias + callback + call .. code-block:: typescript - finally(onFinally?: () => void throws): Promise> - -| + finally(onFinally?: () => void throws): Promise .. _Unhandled Rejected Promises: Unhandled Rejected Promises =========================== -.. meta: - frontend_status: Done - In case of an unhandled rejection of ``Promise``, either the custom handler provided for ``Promise`` rejection is called, or the default ``Promise`` rejection handler is called upon the entire program completion. -.. index:: - unhandled promise - rejected promise - unhandled rejection - rejection handler - call - program completion - | .. _Coroutines (Experimental): @@ -361,23 +270,16 @@ Coroutines (Experimental) ************************* .. meta: - frontend_status: Done + frontend_status: Partly -A function or lambda can be a *coroutine*. |LANG| supports *basic coroutines* -and *structured coroutines*. -*Basic coroutines* are used to create and launch a coroutine. The result is then +A function or lambda can be a *coroutine*. |LANG| supports *basic coroutines*, +*structured coroutines*. +Basic coroutines are used to create and launch a coroutine. The result is then to be awaited. Details are provided in :ref:`Standard Library`. .. index:: - function - lambda structured coroutine basic coroutine coroutine | - - -.. raw:: pdf - - PageBreak diff --git a/static_core/plugins/ets/doc/spec/17_experimental.rst b/static_core/plugins/ets/doc/spec/17_experimental.rst index 5941a490ee..f7c74fc4d4 100644 --- a/static_core/plugins/ets/doc/spec/17_experimental.rst +++ b/static_core/plugins/ets/doc/spec/17_experimental.rst @@ -34,10 +34,11 @@ expressions that provide the array size. This addition is useful to other array-related features of the language, such as array literals. This feature can also be used to create multidimensional arrays. -Overloading functions, methods, or constructors is a practical and convenient -way to write program actions that are similar in logic but different in -implementation. |LANG| uses :ref:`Overload Declarations` as an innovative -form of *managed overloading*. +The feature *function and method overloading* is supported in many +(if not all) modern programming languages. Overloading functions/methods +is a practical and convenient way to write program actions that are similar +in logic but different in implementation. It is discussed in detail in section +:ref:`Function, Method and Constructor Overloading`. .. index:: implementation @@ -61,8 +62,7 @@ Section :ref:`Native Functions and Methods` introduces practically important and useful mechanisms for the inclusion of components written in other languages into a program written in |LANG|. -Sections :ref:`Final Classes` and :ref:`Final Methods` -discuss the well-known feature that +Section :ref:`Final Classes and Methods` discusses the well-known feature that in many OOP languages provides a way to restrict class inheritance and method overriding. Making a class *final* prohibits defining classes derived from it, whereas making a method *final* prevents it from overriding in derived classes. @@ -100,7 +100,7 @@ functions concurrently. There is a basic set of language constructs that support concurrency. A function to be launched asynchronously is marked by adding the modifier ``async`` -to its declaration. In addition, any function or lambda expression can be +to its declaration. In addition, any function---or lambda expression---can be launched as a separate thread explicitly by using the launch function from the standard library. @@ -113,17 +113,47 @@ the standard library. launch function asynchronous launch -| +Section :ref:`Packages` discusses a well-known and proven language feature +intended to organize large pieces of software that typically consist of many +components. *Packages* allow developers to construct a software product +as a composition of subsystems, and organize the development process in a way +that is appropriate for independent teams to work in parallel. -.. _Type char: +*Package* is the language construct that combines a number of declarations, +and makes them parts of an independent compilation unit. -Type ``char`` -************* +The *export* and *import* features are used to organize communication between +*packages*. An entity exported from one package becomes known to and +accessible (see :ref:`Accessible`) in another package which imports that +feature. Various options are provided to simplify export/import, e.g., by +defining non-exported, i.e., ``internal`` declarations that are not accessible +(see :ref:`Accessible`) from the outside of the package. -.. meta: - frontend_status: Partly +In addition, |LANG| supports the *package* initialization semantics that +makes a *package* even more independent from its environment. + +.. index:: + package + construct + declaration + compilation unit + export + import + internal declaration + non-exported declaration + access + accessibility + initialization + semantics + +| + +.. _Character Type and Literals: -Values of ``char`` type are Unicode code points. +Character Type and Literals +*************************** + +Value of ``char`` type are Unicode code points. .. list-table:: :width: 100% @@ -133,19 +163,11 @@ Values of ``char`` type are Unicode code points. * - Type - Type's Set of Values * - ``char`` (32-bits) - - Symbols with codes from \U+0000 to \U+10FFFF (maximum valid Unicode code + - Symbols with codes from \U+0000 to \U+10FFFF (maximum valid unicode code point) inclusive -Predefined constructors, methods, and constants for ``char`` type are -parts of the |LANG| :ref:`Standard Library`. - -.. index:: - char type - Unicode code point - set of values - predefined constructor - predefined method - predefined constant +Predefined constructors, methods, and constants for ``char`` type are +parts of the ArkTS standard library (see :ref:`Standard Library`). | @@ -191,9 +213,6 @@ The examples are presented below: .. index:: char literal character literal - value - character - syntax escape sequence single quote type char @@ -210,17 +229,13 @@ Character Equality Operators frontend_status: Partly todo: need to adapt the implementation to the latest specification -*Value equality* is used for operands of type ``char``. +*Character equality* is used for operands of type ``boolean``. -If both operands represent the same Unicode code point, +If both operands represent the same Unicode code point, then the result of ':math:`==`' or ':math:`===`' is ``true``. Otherwise, the result is ``false``. .. index:: - character - value - char type - Unicode code point equality operator value equality operator operand @@ -238,14 +253,14 @@ Fixed-Size Array Types *Fixed-size array type*, written as ``FixedArray``, is the built-in type characterized by the following: -- Any instance of array type contains elements. The number of elements is known - as *array length*, and can be accessed by using the ``length`` property. +- Any object of array type contains elements, and the number of such elements + is known as *array length*. - Array length is a non-negative integer number. - Array length is set once at runtime and cannot be changed after that. - Array element is accessed by its index. *Index* is an integer number starting from *0* to *array length minus 1*. - Accessing an element by its index is a constant-time operation. -- If passed to a non-|LANG| environment, an array is represented as a contiguous +- If passed to non-|LANG| environment, an array is represented as a contiguous memory location. - Type of each array element is assignable to the element's type specified in the array declaration (see :ref:`Assignability`). @@ -254,12 +269,12 @@ characterized by the following: - Fixed-size array length is set once to achieve better performance; - Fixed-size arrays have no methods defined; -- Fixed-size arrays have several constructors (see - :ref:`Fixed-Size Array Creation`); +- Fixed-size arrays have several constructors, + see :ref:`Fixed-Size Array Creation`; - Fixed-size arrays are not compatible with *resizable arrays*. -Incompatibility between a resizable array and a fixed-size array is represented -by the example below: +The example below represents incompatibility between a resizable array and a +fixed-size array: .. code-block:: typescript :linenos: @@ -272,24 +287,6 @@ by the example below: .. index:: resizable array fixed-size array - fixed-size array type - built-in type - instance - array type - length property - array length - runtime - access - index - integer number - constant-time operation - memory location - assignability - array declaration - compatibility - incompatibility - -| .. _Fixed-Size Array Creation: @@ -300,9 +297,9 @@ Fixed-Size Array Creation frontend_status: Partly *Fixed-size array* can be created by using :ref:`Array Literal` or -the constructors defined for type ``FixedArray``. +using constructors defined for ``FixedArray`` type. -Using *array literal* to create an array is represented by the example below: +The example of creating using *array literal* is presented below: .. code-block:: typescript :linenos: @@ -317,22 +314,22 @@ Using *array literal* to create an array is represented by the example below: .. index:: fixed-size array type array length - array literal - constructor + non-negative integer number fixed-size array + constant-time operation + integer number + contiguous memory location integer array element access assignability resizable array - runtime error -Several constructors can be called to create a ``FixedArray`` instance as -follows: +There are several constructors that can be used to create ``FixedArray`` instance: -- ``constructor(len: int)``, if type ``T`` has either a default value (see - :ref:`Default Values for Types`) or a constructor that can be called with - no argument provided: +- ``constructor(len: int)`` can be used if type ``T`` has a default value + (see :ref:`Default Values for Types`) or has a contructor that can be called + with no arguments provided: .. code-block:: typescript :linenos: @@ -345,17 +342,17 @@ follows: } let b = new FixedArray(2) // creates array [new C(), new C()] -- ``constructor(len: int, elem: T)`` for any ``T``. The constructor creates an - array instance filled with a single value ``elem``: +- ``constructor(len: int, elem: T)`` can be called for any ``T``. + It creates an array instance filled with a single value ``elem``: .. code-block:: typescript :linenos: let a = new FixedArray(3, "a") // creates array ["a", "a", "a"] -- ``constructor(len: int, elems: (inx: int) => T)`` for any ``T``. The - constructor creates an array instance where each *i* element is evaluated - as a result of the ``elems`` call with argument *i*: +- ``constructor(len: int, elems: (inx: int) => T)`` can be called for any ``T``. + It creates an array instance where each *i* element is evaluated as result of + the ``elems`` call with argument *i*: .. code-block:: typescript :linenos: @@ -363,16 +360,6 @@ follows: let a = new FixedArray(3, (inx: int) => 3 - inx ) // creates array [3, 2, 1] -.. index:: - constructor - call - default value - value - argument - array instance - array - instance - | .. _Resizable Array Creation Expressions: @@ -383,7 +370,7 @@ Resizable Array Creation Expressions .. meta: frontend_status: Done -*Array creation expression* creates new objects that are instances of *resizable +*Array creation expression* creates new objects that are instances of *resiable arrays* (see :ref:`Resizable Array Types`). An array instance can be created alternatively by using :ref:`Array literal`. @@ -414,43 +401,45 @@ The syntax of *array creation expression* is presented below: let x = new number[2][2] // create 2x2 matrix .. index:: - resizable array array creation expression object instance array array instance array literal + array literal expression + initial value *Array creation expression* creates an object that is a new array with the elements of the type specified by ``arrayElelementType``. -The type of each *dimension expression* must be assignable (see +The type of each *dimensionExpression* must be assignable (see :ref:`Assignability`) to an ``int`` type. Otherwise, a :index:`compile-time error` occurs. -A :index:`compile-time error` occurs if any *dimension expression* is a +A :index:`compile-time error` occurs if any *dimensionExpression* is a constant expression that is evaluated to a negative integer value at compile time. .. index:: array creation expression - array type - dimension expression + expression + primitive type conversion integer integer type - int type - assignability + type int type - integer value + value + numeric conversion type int constant expression + negative integer compile time -If the type of any *dimension expression* is ``number`` or other floating-point -type, and its fractional part is other than '0', then errors occur as +If the type of any *dimensionExpression* is ``number`` or other floating-point +type, and its fractional part is different from '0', then errors occur as follows: - Compile-time error, if the situation is identified during compilation; and @@ -466,8 +455,6 @@ as follows: .. index:: type - dimension expression - number floating-point type fractional part compile time @@ -475,11 +462,10 @@ as follows: runtime error compilation expression - array element lambda function array parameter - + array Otherwise, a :index:`compile-time error` occurs. @@ -508,7 +494,6 @@ value: parameterless constructor constructor parameter - optional parameter default value .. code-block-meta: @@ -581,8 +566,6 @@ below: default value exotic array type - lambda function - index .. code-block:: typescript :linenos: @@ -611,8 +594,8 @@ as follows: the expressions to the right of it are not evaluated. #. The values of dimension expressions are checked. If the value of any - dimension expression is less than zero, then ``NegativeArraySizeError`` - is thrown. + ``dimExpr`` expression is less than zero, then ``NegativeArraySizeError`` is + thrown. #. Space for the new array is allocated. If the available space is not sufficient to allocate the array, then ``OutOfMemoryError`` is thrown, @@ -633,7 +616,6 @@ as follows: array array creation array creation expression - evaluation dimension expression constructor abrupt completion @@ -659,19 +641,20 @@ as follows: Enumerations Experimental ************************* -Several experimental features described below are available for enumerations. +Several experimental features are available for enumerations and described below + | -.. _Enumeration with Explicit Type: +.. _Enumeration with explicit type: -Enumeration with Explicit Type +Enumeration with explicit type ============================== .. meta: frontend_status: None -*Enumeration with explicit type* uses the following syntax: +The syntax of the enumeration with the *explicit type* is .. code-block:: abnf @@ -679,42 +662,15 @@ Enumeration with Explicit Type 'const'? 'enum' identifier ':' type '{' enumConstantList? '}' ; -All enumeration constants of a declared enumeration are of the *explicit type* -specified in the declaration, i.e., the *explicit type* is the -*enumeration base type* (see :ref:`Enumerations`). - -.. index:: - enumeration base type - enumeration with explicit type - syntax - enumeration constant - enumeration - declaration - explicit type - -If *explicit type* is an integer type then omitted values for constants allowed, -the same rules applied as for enum with non-explicit type (see :ref:`Enumeration Integer Values`). +A :index:`compile-time error` occurs if -A :index:`compile-time error` occurs in the following situations: - -- *Explicit type* is different from any numeric or string type. -- Enumeration constant has no value and *Explicit type* is not an integer type. -- Enumeration constant type is not assignable (see :ref:`Assignability`) - to the *explicit type*. +- The *explicit type* is different from any numeric or string type. +- The value of an enum constant is missed. +- Enumeration constant type is not a subtype of the *explicit type*. .. index:: - explicit type enum constant - integer type - non-explicit type - integer value - enumeration constant - assignability - numeric type - string type - value - type - syntax + .. code-block:: typescript :linenos: @@ -735,41 +691,32 @@ Enumeration Methods .. meta: frontend_status: Done -Several static methods are available to handle each enumeration type -as follows: +Several static methods are available to handle each enumeration type as follows: -- Method ``static values()`` returns an array of enumeration constants - in the order of declaration. -- Method ``static getValueOf(name: string)`` returns an enumeration constant - with the given name, or throws an error if no constant with such name - exists. -- Method ``static fromValue(value: T)``, where ``T`` is the base type - of the enumeration, returns an enumeration constant with a given value, or - throws an error if no constant has such a value. +- Method ``values()`` returns an array of enumeration constants in the order of + declaration. +- Method ``getValueOf(name: string)`` returns an enumeration constant with the + given name, or throws an error if no constant with such name exists. .. index:: enumeration method static method enumeration type enumeration constant + error constant - value .. code-block:: typescript :linenos: - enum Color { Red, Green, Blue = 5 } + enum Color { Red, Green, Blue } let colors = Color.values() //colors[0] is the same as Color.Red - let red = Color.getValueOf("Red") - Color.fromValue(5) // ok, retuns Color.Blue - Color.fromValue(6) // throws runtime error - -Additional methods for instances of an enumeration type are as follows: +There are additional methods for instances of any enumeration type: -- Method ``valueOf()`` returns a numeric or ``string`` value of an enumeration +- Method ``valueOf()`` returns an numeric or ``string`` value of an enumeration constant depending on the type of the enumeration constant. - Method ``getName()`` returns the name of an enumeration constant. @@ -793,6 +740,8 @@ same value. enumeration type value enumeration constant + numeric type + type string | @@ -829,14 +778,10 @@ expression (see :ref:`Indexing Expressions`) is available: .. index:: indexable type interface - class - declaration - function name function signature indexing expression variable - type .. code-block-meta: expect-cte: @@ -864,7 +809,7 @@ Type ``string`` can be used as a type of the index parameter: function indexing expression string - string type + type string type index parameter @@ -911,8 +856,8 @@ used in generic classes and interfaces for better flexibility. A flexibility async function generic class - generic interface function + async function .. code-block-meta: expect-cte: @@ -928,13 +873,13 @@ used in generic classes and interfaces for better flexibility. A $_set (index: K, value: V) } - class IndexableByNumber implements Indexable { + class IndexableByNumber extends Indexable { private data: V[] = [] $_get (index: number): V { return this.data [index] } $_set (index: number, value: V) { this.data[index] = value } } - class IndexableByString implements Indexable { + class IndexableByString extends Indexable { private data = new Map $_get (index: string): V { return this.data [index] } $_set (index: string, value: V) { this.data[index] = value } @@ -960,44 +905,35 @@ Iterable Types .. meta: frontend_status: Done -A class or an interface is *iterable* if it implements the interface ``Iterable`` -defined in the :ref:`Standard Library`, and thus has an accessible parameterless -method with the name ``$_iterator`` and a return type that is a subtype (see -:ref:`Subtyping`) of type ``Iterator`` as defined in the :ref:`Standard Library`. -It guarantees that an object returned by the ``$_iterator`` method is of the -type which implements ``Iterator``, and thus allows traversing an object of the -*iterable* type. - -A union of iterable types is also *iterable*. It means that instances of such -types can be used in ``for-of`` statements (see :ref:`For-Of Statements`). +A class or an interface can be made *iterable*. It means that instances of the +class or the interface can be used in ``for-of`` statements (see +:ref:`For-Of Statements`). -An *iterable* class ``C`` is represented by the example below: +Some type ``C`` is *iterable* if it declares a parameterless method with name +``$_iterator`` and return type that is assignable (see :ref:`Assignability`) +to type ``Iterator`` as defined in the standard library (see +:ref:`Standard Library`). It guarantees that the object returned is of the +class type which implements ``Iterator`` and allows traversing an object of +class type ``C``. The example below defines *iterable* class ``C``: .. index:: - iterable class + iterable type class - iterable interface interface - parameterless method - access - accessibility - subtyping - iterator instance for-of statement return type assignability type Iterator implementation - iterable type - union - for-of statement + iterable class object + class type .. code-block:: typescript :linenos: - class C implements Iterable { + class C { data: string[] = ['a', 'b', 'c'] $_iterator() { // Return type is inferred from the method body return new CIterator(this) @@ -1039,7 +975,6 @@ abstract or defined in an interface to be implemented later. A :index:`compile-time error` occurs if this method is marked as ``async``. .. index:: - type inference method class string @@ -1072,9 +1007,8 @@ It can be removed in the future versions of the language. .. index:: compatibility compatible code - method iterator - iterable class + class | @@ -1111,19 +1045,17 @@ always valid for the methods ``$_invoke`` and ``$_instantiate``. .. index:: callable type call expression - type name expression type call expression callable class type callable type class type - type call expression method call + instantiation inheritance static method normal method call call - explicit call method **Note**. Only a constructor---not the methods ``$_invoke`` or @@ -1149,8 +1081,8 @@ A :index:`compile-time error` occurs if a callable type contains both methods .. index:: constructor method - call new expression + instantiation callable type | @@ -1163,9 +1095,9 @@ Callable Types with ``$_invoke`` Method .. meta: frontend_status: Done -The static method ``$_invoke`` can have an arbitrary signature. The method -can be used in a *type call expression* in either case above. If the signature -has parameters, then the call must contain corresponding arguments. +The method ``$_invoke`` can have an arbitrary signature. The method can be used +in a *type call expression* in either case above. If the signature has +parameters, then the call must contain corresponding arguments. .. code-block-meta: @@ -1180,7 +1112,6 @@ has parameters, then the call must contain corresponding arguments. console.log(Add(2, 2)) // prints: 4 .. index:: - static method callable type arbitrary signature signature @@ -1188,11 +1119,6 @@ has parameters, then the call must contain corresponding arguments. method type call expression argument - instance method - type - -That a type contains the instance method ``$_invoke`` does not make the type -*callable*. | @@ -1204,7 +1130,7 @@ Callable Types with ``$_instantiate`` Method .. meta: frontend_status: Done -The static method ``$_instantiate`` can have an arbitrary signature by itself. +The method ``$_instantiate`` can have an arbitrary signature by itself. If it is to be used in a *type call expression*, then its first parameter must be a ``factory`` (i.e., it must be a *parameterless function type returning some class type*). @@ -1228,14 +1154,12 @@ parameter is passed implicitly: let y = C.$_instantiate(() => { return new C()}) .. index:: - static method callable type method signature arbitrary signature type call expression - parameter - factory parameter + factory parameterless function type class type type call expression @@ -1269,7 +1193,6 @@ if: type call expression instantiation parameter - callable type .. code-block-meta: expect-cte @@ -1284,9 +1207,6 @@ if: } let x = C() // compile-time error, wrong '$_instantiate' 1st parameter -That a type contains the instance method ``$_instantiate`` does not make the -type *callable*. - | .. _Statements Experimental: @@ -1299,14 +1219,14 @@ Statements | -.. _For-of Explicit Type Annotation: +.. _For-of Type Annotation: -For-of Explicit Type Annotation -=============================== +For-of Type Annotation +====================== .. meta: frontend_status: Partly - todo: check assignability + todo: check assignability An explicit type annotation is allowed for a *ForVariable* (see :ref:`For-Of Statements`): @@ -1320,1068 +1240,353 @@ An explicit type annotation is allowed for a *ForVariable* console.log(n) } -Type of elements in a ``for-of`` expression must be assignable -(see :ref:`Assignability`) to the type of the variable. Otherwise, a -:index:`compile-time error` occurs. +Type of elements of *for-of expression* must be assignable +(see :ref:`Assignability`) to the type of the variable, +otherwise a :index:`compile-time error` occurs. .. index:: type annotation for-variable - expression - assignability - variable for-of type annotation | -.. _Overload Declarations: +.. _Function, Method and Constructor Overloading: -Overload Declarations -********************* +Function, Method and Constructor Overloading +******************************************** .. meta: - frontend_status: None + frontend_status: Done -|LANG| supports both the |TS|-compatible *overload signatures* (see -:ref:`Declarations with Overload Signatures`), and an innovative form of -*managed overloading* that allows a developer to fully control the order of -selecting a specific entity to call from several overloaded entities. - -The actual entity to be called is determined at compile time. Thus, -*overloading* is related to the *compile-time polymorphism by name*. -The semantic details are discussed in :ref:`Overloading`. - -.. index:: - compile-time polymorphism - polymorphism by name - managed overloading - overloading - overload signature - overloaded entity - compile time - compatibility - -An *overload declaration* is used in *managed overloading* to -define a set and an order of the overloaded entities (functions, methods, -or constructors). - -An *overload declaration* can be used for: - -- Functions (see :ref:`Function Declarations`), including functions in - namespaces; -- Class or interface methods (see :ref:`Method Declarations` and - :ref:`Interface Method Declarations`); and -- :ref:`Ambient Declarations`. - -An *overload declaration* starts with the keyword ``overload`` and -declares an *overload alias* for a set of explicitly listed entities as follows: - -.. index:: - overload declaration - managed overloading - overloaded entity - function - method - constructor - namespace - class method - interface method - method declaration - ambient declaration - overload keyword - entity - overload alias +As many other languages do, |LANG| supports overloading. Overloading allows +declaring several functions or methods with the same name but different +signatures. +|LANG| does not support |TS| overload signatures that allow +specifying several headers for a function or method with a single body but +different signatures (see :ref:`TS Overload Signatures`). -.. code-block:: typescript - :linenos: +The |LANG| approach delivers better performance because no extra checks +are performed during the execution of a specific body at runtime. - function max2(a: number, b: number): number { - return a > b ? a : b - } - function maxN(...a: number[]): number { - // return max element - } +.. index:: + function overloading + method overloading + constructor overloading + overloading + overload signature + header + function + method + signature - // declare 'max' as an ordered set of functions max2 and maxN - overload max { max2, maxN } +| - max(1, 2) // max2 is called - max(3, 2, 4) // maxN is called - max("a", "b") // compile-time error, no function to call +.. _Function Overloading: - maxN(1, 2) // maxN is explicitly called +Function Overloading +==================== -The semantics of an entity included into an *overload set* does not change. -Such entities follow the ordinary accessibility rules, and can be used -separately from an overload alias, e.g., called explicitly as follows: +.. meta: + frontend_status: Done -.. code-block:: typescript - :linenos: +If a declaration scope declares and/or imports two or more functions with the +same name but different signatures that are not *overload-equivalent* (see +:ref:`Overload-Equivalent Signatures`), then such functions are *overloaded*. +Function overload declarations cause no :index:`compile-time error` on their +own. - maxN(1, 2) // maxN is explicitly called - max2(2, 3) // max2 is explicitly called - -When calling an *overload alias*, entities from an *overload set* are checked -in the listed order, and the first entity with an appropriate signature is -called (see :ref:`Overload resolution for Overload Declarations` for detail). -A :index:`compile-time error` occurs if no entity with an appropriate signature -is available: - -.. index:: - function - semantics - entity - overload - overload set - accessibility - overload alias - overload set - overload resolution - overload declaration - signature - function call +No specific relationship is required between the return types of the two +functions with the same name but different signatures that are not +*overload-equivalent* (see :ref:`Overload-Equivalent Signatures`). -.. code-block-meta: - expect-cte +When calling an overloaded function, the number of actual arguments (and any +explicit type arguments) and compile-time argument types are used at compile +time to determine exactly which one is to be called (see +:ref:`Function Call Expression`). -.. code-block:: typescript - :linenos: +.. index:: + function overloading + declaration scope + declaration + signature + name + overload-equivalence + overload-equivalent signature + overloaded function name + overloaded function + argument + argument type + function call - max(1) // maxN is called - max(1, 2) // max2 is called, as is the first in order +| - max("a", "b") // compile-time error, no function to call +.. _Class Method Overloading: -It means that exactly one entity is selected for a call at the call site. -Otherwise, a :index:`compile-time error` occurs. +Class Method Overloading +======================== -An overloaded entity in an *overload declaration* can be *generic* (see -:ref:`Generics`). +.. meta: + frontend_status: Done -If during :ref:`Overload Resolution for Overload Declarations` *type arguments* -are provided explicitly in a call of an *overload alias* (see -:ref:`Explicit Generic Instantiations`), then consideration is given only to -the entities that have an equal number of *type parameters* and *type arguments*. +If two or more methods within a class have the same name, and their signatures +are not *overload-equivalent* (see :ref:`Overload-Equivalent Signatures`), then +such methods are considered *overloaded*. -If *type arguments* are not provided explicitly (see -:ref:`Implicit Generic Instantiations`), then consideration is given to all -entities as represented in the example below: +Method overloading declarations cause no :index:`compile-time error` on their +own, except where a possible instantiation causes an *overload-equivalent* +method (see :ref:`Overload-Equivalent Signatures`) in the instantiated class or +interface: .. index:: - function call - overloaded entity - overload declaration - generic - generic instantiation - type argument - type parameter - overload resolution - overload alias - + class method overloading + class + signature + overload-equivalent signature + overload equivalence + overloading + overloading declaration + overloaded method + method + instantiation + interface .. code-block:: typescript :linenos: - function foo1(s: string) {} - function foo2(x: T) {} + class Template { + foo (p: number) { ... } + foo (p: T) { ... } + } + let instantiation: Template + // Leads to two *overload-equivalent* methods + + interface ITemplate { + foo (p: number) + foo (p: T) + } + function foo (instantiation: ITemplate) { ... } + // Leads to two *overload-equivalent* methods + +If signatures of two or more methods with the same name are not +*overload-equivalent* (see :ref:`Overload-Equivalent Signatures`), then return +types of those methods can have any kind of relationship. - overload foo { foo1, foo2 } +When calling an overloaded method, the number of actual arguments (and any +explicit type arguments) and compile-time argument types are used at compile +time to determine exactly which one is to be called (see +:ref:`Method Call Expression` and :ref:`Step 2 Selection of Method`). - foo("aa") // foo1 is called - foo(1) // foo2 is called, implicit generic instantiation - foo("aa") // foo2 is called +.. index:: + signature + method + overload-equivalent signature + overload equivalence + type argument + return type + argument type + compile time + call + method call + method call expression + instance method +| -An entity can be listed in several *overload declarations*: +.. _Constructor Overloading: -.. code-block:: typescript - :linenos: +Constructor Overloading +======================= - function max2i(a: int, b: int): int { - return a > b ? a : b - } - function maxNi(...a: int[]): int { - // return max element - } - function maxN(...a: number[]): number { - // return max element - } +.. meta: + frontend_status: Done - overload maxi { max2i, maxNi } - overload max { max2i, maxNi, maxN } +Constructor overloading behavior is identical to that of method overloading (see +:ref:`Class Method Overloading`). Each class instance creation expression (see +:ref:`New Expressions`) resolves the constructor overloading call if any at +compile time. .. index:: - entity - overload declaration - generic instantiation + constructor overloading + constructor overloading behavior + constructor + method overloading + class instance + instance creation + instance creation expression + constructor overloading call + compile time | -.. _Function Overload Declarations: +.. _Declaration Distinguishable by Signatures: -Function Overload Declarations -============================== +Declaration Distinguishable by Signatures +========================================= .. meta: - frontend_status: None + frontend_status: Done -*Function overload declaration* allows declaring an *overload alias* -for a set of functions (see :ref:`Function Declarations`). +Same-name declarations are distinguishable by signatures if such +declarations are one of the following: -The syntax is presented below: +- Functions with the same name and signatures that are not + *overload-equivalent* (see :ref:`Overload-Equivalent Signatures` and + :ref:`Function Overloading`). -.. code-block:: abnf +- Methods with the same name and signatures that are not + *overload-equivalent* (see :ref:`Overload-Equivalent Signatures`, + :ref:`Class Method Overloading`, and :ref:`Interface Method Overloading`). - overloadFunctionDeclaration: - 'overload' identifier '{' qualifiedName (',' qualifiedName)* ','? '}' - ; +- Constructors of the same class and signatures that are not + *overload-equivalent* (see :ref:`Overload-Equivalent Signatures` and + :ref:`Constructor Overloading`). .. index:: - function overload - overload declaration - function overload declaration - overload alias - function - syntax - - -A :index:`compile-time error` occurs, if a *qualified name*: - -- Does not refer to an accessible function; or - -- Refers to a function with overload signatures (see - :ref:`Function with Overload Signatures`). + distinguishable declaration + signature + function + function overload + overloading + overload-equivalent signature + overload-equivalence + constructor + constructor class -A :index:`compile-time error` occurs, if an *overload alias* is exported -but an overloaded function is not: +The example below represents the functions distinguishable by signatures: .. code-block:: typescript :linenos: - export function foo1(p: string) {} - function foo2(p: number) {} - export overload foo { foo1, foo2 } // compile-time error, 'foo2' is not exported - overload bar { foo1, foo2 } // ok, as 'bar' is not exported + function foo() {} + function foo(x: number) {} + function foo(x: number[]) {} + function foo(x: string) {} -All overloaded functions must be in the same module or namespace scope (see -:ref:`Scopes`). Otherwise, a :index:`compile-time error` occurs. The erroneous -overload declarations are represented in the example below: +The following example represents the functions indistinguishable by signatures +that cause a :index:`compile-time error`: .. code-block:: typescript :linenos: - import {foo1} from "something" + // Functions have overload-equivalent signatures + function foo(x: number) {} + function foo(y: number) {} - function foo2() {} - overload foo {foo1, foo2} // compile-time error + // Functions have overload-equivalent signatures + function foo(x: number) {} + type MyNumber = number + function foo(x: MyNumber) {} - namespace N { - export function fooN() {} - namespace M { - export function fooM() {} - } - overload goo {M.fooM, fooN} // compile-time error - } - overload bar {foo2, N.fooN} // compile-time error - -.. index:: - qualified name - accessible function - access - function with overload signatures - overload signature - function - export - overload alias - overloaded function - module - namespace - namespace scope - scope - overload declaration +.. index:: + distinguishable function + function + signature | -.. _Class Method Overload Declarations: +.. _TS Overload Signatures: -Class Method Overload Declarations -================================== +|TS| Overload Signatures +======================== .. meta: frontend_status: None -*Method overload declaration* allows declaring an *overload alias* -as a class member (see :ref:`Class Members`) -for a set of static or instance methods (see :ref:`Method Declarations`). -The syntax is presented below: +|LANG| does not support overload signatures like |TS| where several function +headers can be followed by a single body. Each overloaded function, method, or +constructor in |LANG| must have a separate body. -.. code-block:: abnf - - overloadMethodDeclaration: - overloadMethodModifier* - 'overload' identifier '{' identifier (',' identifier)* ','? '}' - ; - - overloadMethodModifier: 'static' | 'async'; +The following code is valid in |TS| but causes a compile-time error in |LANG|: -Using *method overload declaration* and calling an *overload alias* are -represented in the example below: - -.. index:: - class method - class member - static method - instance method - method - method overload - syntax - method overload declaration - overload alias +.. code-block-meta: + expect-cte .. code-block:: typescript :linenos: - class Processor { - overload process { processNumber, processString } - processNumber(n: number) {/*body*/} - processString(s: string) {/*body*/} + function foo(): void + function foo(x: string): void + function foo(x?: string): void { + /*body*/ } - let c = new C() - c.process(42) // calls processNumber - c.process("aa") // calls processString +The following code is valid in |LANG| +(see :ref:`Function, Method and Constructor Overloading`): -*Static overload alias* is represented in the example below: +.. code-block-meta: + not-subset .. code-block:: typescript :linenos: - class C { - static one(n: number) {/*body*/} - static two(s: string) {/*body*/} - static overload foo { one, two } + function foo(): void { + /*body1*/ + } + function foo(x: string): void { + /*body2*/ } -A :index:`compile-time error` occurs if: - -- Method modifier is used more than once in an method overload declaration; - -- *Identifier* in the overloaded method list: +.. index:: + signature + overload signature + function header + overloaded function + overloaded method + overloaded constructor + compile-time error - - Does not refer to an accessible method (either declared or inherited) - of the current class; - - Refers to a method with overload signatures (see - :ref:`Class Method with Overload Signatures`); +| -- *Overload alias* is: - - *Static* but the overloaded method is not; - - *Non-static* but the overloaded method is not; - - Marked ``async`` but the overloaded method is not; or - - Not ``async`` but the overloaded method is. +.. _Native Functions and Methods: +Native Functions and Methods +**************************** -.. index:: - static overload alias - method modifier - class - method overload declaration - identifier - accessible method - declaration - inheritance - overloaded method - overload signature - overload alias +.. meta: + frontend_status: Done +| -*Overload alias* and overloaded methods can have different access modifiers. -A :index:`compile-time error` occurs if the *overload alias* is: +.. _Native Functions: -- ``public`` but at least one overloaded method is not ``public``; +Native Functions +================ -- ``protected`` but at least one overloaded method is ``private``. +.. meta: + frontend_status: Done +*Native function* is a function marked with the keyword ``native`` (see +:ref:`Function Declarations`). -Valid and invalid overload declarations are represented in the example below: +*Native function* implemented in a platform-dependent code is typically written +in another programming language (e.g., *C*). A :index:`compile-time error` +occurs if a native function has a body. .. index:: - overload alias - overloaded method - overload declaration - access modifier - public - protected - private + keyword native + function + native function + implementation + platform-dependent code + function body -.. code-block:: typescript - :linenos: +| - class C { - private foo1(x: number) {/*body*/} - protected foo2(x: string) {/*body*/} - public foo3(x: boolean) {/*body*/} - foo4() {/*body*/} // implicitly public +.. _Native Methods Experimental: - public overload foo { foo3, foo4 } // ok - protected overload bar { foo2, foo3 } // ok - private overload goo { foo1, foo2, foo3 } // ok +Native Methods +============== - public overload err1 {foo2, foo3} // compile-time error, foo2 is not public - protected overload err2 {foo2, foo1} // compile-time error, foo1 is private - } +.. meta: + frontend_status: Done -Some or all overloaded functions can be ``native`` as follows: +*Native method* is a method marked with the keyword ``native`` (see +:ref:`Method Declarations`). -.. code-block:: typescript - :linenos: - - class C { - native foo1(x: number) - foo2(x: string) {/*body*/} - overload foo { foo1, foo2 } - } - -If a superclass has an *overload declaration*, then this declaration can be -overridden in subclasses. If a subclass does not override an -*overload declaration*, then the declaration from the superclass is inherited. - -If a subclass overrides an *overload declaration*, then this declaration must -list all methods of the *overload declaration* in a superclass. Otherwise, a -:index:`compile-time error` occurs. - -In addition, overriding *overload declaration* in a subclass can add include -new methods and change the order of all methods in the *overload declaration*. - -An *overload alias* is used like an ordinary class method except that it is -replaced in a call at compile time for one of overloaded methods that use the -type of *object reference*. The *overload declaration* in subtypes is -represented in the example below: - -.. index:: - overloaded function - native - superclass - overload declaration - overriding - subclass - declaration - superclass - overloaded method - overload alias - object reference - method - - -.. code-block:: typescript - :linenos: - - class Base { - overload process { processNumber, processString } - processNumber(n: number) {/*body*/} - processString(s: string) {/*body*/} - } - - class D1 extends Base { - // method is overridden - override processNumber(n: number) {/*body*/} - // overload declaration is inherited - } - - class D2 extends Base { - // method is added: - processInt(n: int) {/*body*/} - // new order for overloaded methods is specified: - overload process { processInt, processNumber, processString } - } - - new D1().process(1) // calls processNumber from D1 - - new D2().process(1) // calls processInt from D2 (as it is listed earlier) - new D2().process(1.0) // calls processNumber from Base (first appropriate) - -Methods with special names (see :ref:`Indexable Types`, :ref:`Iterable Types`, -and :ref:`Callable Types`) can be overloaded like ordinary methods: - -.. index:: - overloaded method - overriding - callable type - inheritance - ordinary method - name - -.. code-block:: typescript - :linenos: - - class C { - getByNumber(n: number): string {...} - getByString(s: string): string {...} - overload $_get { getByNumber, getByString } - } - - let c = new C() - - c[1] // getByNumber is used - c["abc"] // getByString is used - -If a class implements some interfaces with *overload declarations* for the -same alias, then a new *overload declaration* must include all overloaded -methods. Otherwise, a :index:`compile-time error` occurs. - -.. index:: - overloaded method - class - interface - overload declaration - alias - -.. code-block:: typescript - :linenos: - - interface I1 { - overload foo {f1, f2} - // f1 and f2 are declared in I1 - } - interface I2 { - overload foo {f3, f4} - // f3 and f4 are declared in I2 - } - class C implements I1, I2 { - // compile-time error as no new overload is defined - } - class D implements I1, I2 { - overload foo { f2, f3, f1, f4 } // OK, as new overload is defined - } - class E implements I1, I2 { - overload foo { f2, f4 } // compile-time error as not all methods are used - } - - const i1: I1 = new D - i1.foo() // call is valid if arguments fit first signature of {f1, f2} set - - const i2: I2 = new D - i2.foo() // call is valid if arguments fit first signature of {f3, f4} set - - const d: D = new D - d.foo() // call is valid if arguments fit first signature of {f2, f3, f1, f4} set - -.. index:: - overloaded interface - declaration - method - argument - signature - -| - -.. _Interface Method Overload Declarations: - -Interface Method Overload Declarations -====================================== - -.. meta: - frontend_status: None - -*Interface method overload declaration* allows declaring an *overload alias* -as an interface member (see :ref:`Interface Members`) -for a set of interface methods (see :ref:`Interface Method Declarations`). - -The syntax is presented below: - -.. code-block:: abnf - - overloadInterfaceMethodDeclaration: - 'overload' identifier '{' identifier (',' identifier)* ','? '}' - ; - -The use of a *method overload declaration* is represented in the example below: - -.. code-block:: typescript - :linenos: - - interface I { - foo(): void - bar(n?: string): void - overload goo { foo, bar } - } - - function example(i: I) { - i.goo() // calls i.foo() - i.goo("hello") // calls i.bar("hello") - i.bar() // explicit call: i.bar(undefined) - } - -.. index:: - interface method - overload alias - overload declaration - interface - syntax - method overload declaration - - -An *overload alias* is used like an ordinary interface method, except that in -a call it is replaced at compile time by one of overloaded methods by using -the type of *object reference*. - -A class that implements an interface with an *overload alias* usually implements -all interface methods, except those having a default body (see -:ref:`Default Interface Method Declarations`): - -.. code-block:: typescript - :linenos: - - // Using interface overload declaration - class C implements I { - foo(): void {/*body*/} - bar(n?: string): void {/*body*/} - } - - let c = new C() - c.goo() // calls c.foo() - -.. index:: - overload alias - ordinary method - interface method - call - compile time - overloaded method - object reference - type - class - implementation - -An interface *overload alias* can be overridden in a class. In this case, the -*overload declaration* in the class must contain all methods overloaded in the -interface. Otherwise, a :index:`compile-time error` occurs. - -.. code-block:: typescript - :linenos: - - class D implements I { - foo(): void {/*body*/} - bar(n?: string): void {/*body*/} - overload goo( bar, foo) // order is changes - } - - let d = new D() - d.goo() // d.bar(undefined) is used, as it is the first appropriate method - -An *overload alias* defined in a superinterface can be overridden in a -subinterface. In this case, the *overload declaration* of the subinterface -must contain all methods overloaded in superinterface. Otherwise, a -:index:`compile-time error` occurs. - -The *overload alias* defined in superinterfaces must be overridden -in a subinterface if several *overload declarations* for the same alias are -inherited into the interface, otherwise a :index:`compile-time error` occurs. - -.. index:: - overload alias - interface - class - overload declaraton - superinterface - method - subinterface - overloaded method - alias - interface - -.. code-block:: typescript - :linenos: - - interface I1 { - overload foo {f1, f2} - // f1 and f2 are declared in I1 - } - interface I2 { - overload foo {f3, f4} - // f3 and f4 are declared in I2 - } - interface I3 extends I1, I2 { - // compile-time error as no new overload for 'foo' is defined - } - interface I4 extends I1, I2 { - overload foo { f4, f1, f3, f2 } // OK, as new overload is defined - } - interface I5 extends I1, I2 { - overload foo { f1, f3 } // compile-time error as not all mehtods are included - } - - -| - -.. _Constructor Overload Declarations: - -Constructor Overload Declarations -================================= - -.. meta: - frontend_status: None - -*Constructor overload declaration* allows declaring an *overload alias* -and setting an order of constructors for a call in a new expression. - -The syntax is presented below: - -.. code-block:: abnf - - overloadConstructorDeclaration: - 'overload' 'constructor' '{' identifier (',' identifier)* ','? '}' - ; - -This feature can be used if there are more then one constructors declared -in the class, and maximum one of them is anonymous (see -:ref:`Constructor Names`). - -Only a single *constructor overload declaration* is allowed in a class. -Otherwise, a :index:`compile-time error` occurs. - -*Overload alias* for constructors is used the same way as anonymous constructor -(see :ref:`New Expressions`). - -The use of a *constructor overload declaration* is represented in the example -below: - -.. index:: - overload declaration - constructor - constructor overload declaration - syntax - declaration - overload alias - constructor - call - expression - class - -.. code-block:: typescript - :linenos: - - class BigFloat { - constructor fromNumber(n: number) {/*body1*/} - constructor fromString(s: string) {/*body2*/} - - overload constructor { fromNumber, fromString } - } - - new BigFloat(1) // fromNumber is used - new BigFloat("3.14") // fromString is used - - -If a class has an anonymous constructor it is implicitly placed at first -position in a list of overloaded constructors: - -.. code-block:: typescript - :linenos: - - class C { - constructor () {/*body*/} - constructor fromString(s?: string) {/*body*/} - - overload constructor { fromString } - } - - new C() // anonymous constructor is used - new C("abc") // fromString is used - new C.fromString("aa") // fromString is explicitly used - -.. index:: - constructor - overloaded constructor - -A :index:`compile-time error` occurs if both *constructor overload declaration* -and constructor *overload signature* (see -:ref:`Declarations with Overload Signatures`) are used: - -.. code-block:: typescript - :linenos: - - class C { - // overload signature - constructor (n: number) - constructor (b: boolean) - constructor (...x: Any[]) {/*body1*/} - - constructor fromString(s: string) {/*body2*/} - - // overload declaration - overload constructor { fromString } - // compile-time error: mix of both overload schemes - } - -.. index:: - constructor overload - constructor - overload signature - declaration - -| - -.. _Overload Alias Name Same As Function Name: - -Overload Alias Name Same As Function Name -========================================= - -.. meta: - frontend_status: None - -A name of a top-level *overload declaration* can be the same as the name of an -overloaded function. This situation is represented in the following example: - -.. code-block:: typescript - :linenos: - - function foo(n: number): number {/*body1*/} - function fooString(s: number): string {/*body2*/} - - overload foo {foo, fooString} - - foo(1) // overload alias is used to call 'foo' - foo("aa") // overload alias is used to call 'fooString' - -Using an *overload alias* causes no ambiguity for it is considered -at the call site only, i.e., an *overload alias* is **not** considered in the -following situations: - -- List of the overloaded entities (see :ref:`Function Overload Declarations`); - -- :ref:`Function Reference`. - -.. code-block:: typescript - :linenos: - - function foo(n: number): number {/*body1*/} - function fooString(s: number): string {/*body2*/} - overload foo {foo, fooString} - - let func1 = foo // function 'foo' is used, not overload alias - -If the name of an *overload alias* is the same as the name of a function that -is not listed as an overloaded function, then a :index:`compile-time error` -occurs as follows: - -.. code-block:: typescript - :linenos: - - function foo(n: number) {/*body1*/} - function fooString(s: number) {/*body2*/} - function fooBoolean(b: boolean) {/*body3*/} - - overload foo { // compile-time error - fooBoolean, fooString - } - -| - -.. _Overload Alias Name Same As Method Name: - -Overload Alias Name Same As Method Name -======================================= - -.. meta: - frontend_status: None - -A name of a class or interface *overload declaration* can be the same as the -name of an overloaded method. As one example, a method defined in a superclass -can be used as one of overloaded methods in a same-name subclass *overload -declaration*. This important case is represented by the following example: - -.. code-block:: typescript - :linenos: - - class C { - foo(n: number): number {/*body*/} - } - class D implements C { - fooString(s: number): string {/*body*/} - - overload foo { - foo, // method 'foo' from C - fooString - } - } - - let d = new D() - let c: C = d - - d.foo(1) // overload alias is used to call 'foo' from C - d.foo("aa") // overload alias is used to call 'fooString' from D - c.foo(1) // method 'foo' from is called (no overload) - -.. index:: - overload alias - overload alias name - method name - overload declaration - overloaded method - superclass - subclass - -If names of a method and of an *overload alias* are the same, then the method -can be overridden as usual: - -.. code-block:: typescript - :linenos: - - class C { - foo(n: number): number {/*body*/} - } - class D implements C { - foo(n: number): number {/*body*/} // method is overridden - fooString(s: number): string {/*body*/} - - overload foo { foo, fooString } - } - -This feature is also valid in interfaces, or in an interface and a class that -implements the interface: - -.. index:: - overload alias - overload alias name - method name - overriding - interface - class - implementation - -.. code-block:: typescript - :linenos: - - interface I { - foo(n: number): number {/*body*/} - } - interface J extends I { - fooString(s: number): string - overload foo { foo, fooString } - } - - class K implements I { - foo(n: number): number {/*body*/} - fooString(s: number): string {/*body*/} - - overload foo { foo, fooString } - } - -Using an *overload alias* causes no ambiguity for it is considered -at the call site only. An *overload alias* is **not** considered in the -following situations: - -- :ref:`Overriding`; - -- List of the overloaded entities (see :ref:`Class Method Overload Declarations` - and :ref:`Interface Method Overload Declarations`); - -- :ref:`Method Reference`. - -.. index:: - number - string - overload - overload alias - call site - overriding - overloaded entity - method reference - -.. code-block:: typescript - :linenos: - - class C { - foo(n: number): number {/*body*/} - } - - class D implements C { - fooString(s: number): string {/*body*/} - - overload foo { foo, fooString } - } - - let d = new D() - let c: C = d - - let func1 = c.foo // method 'foo' is used - let func2 = d.foo // method 'foo' is used, not overload alias - -A :index:`compile-time error` occurs if the name of an *overload alias* -is the same as the name of a method (with the same static or non-static -modifier) that is not listed as an overloaded method as follows: - -.. code-block:: typescript - :linenos: - - class C { - foo(n: number) {/*body*/} - fooString(s: number) {/*body*/} - fooBoolean(b: boolean) {/*body*/} - - overload foo { // compile-time error - fooBoolean, fooString - } - } - -.. index:: - number - string - method - overload alias - static modifier - non-static modifier - overloaded method - -| - -.. _Native Functions and Methods: - -Native Functions and Methods -**************************** - -.. meta: - frontend_status: Done - -| - -.. _Native Functions: - -Native Functions -================ - -.. meta: - frontend_status: Done - -*Native function* is a function marked with the keyword ``native`` (see -:ref:`Function Declarations`). - -*Native function* implemented in a platform-dependent code is typically written -in another programming language (e.g., *C*). A :index:`compile-time error` -occurs if a native function has a body. - -.. index:: - native keyword - function - native function - native method - function body - -| - -.. _Native Methods Experimental: - -Native Methods -============== - -.. meta: - frontend_status: Done - -*Native method* is a method marked with the keyword ``native`` (see -:ref:`Method Declarations`). - -*Native methods* are the methods implemented in a platform-dependent code -written in another programming language (e.g., *C*). +*Native methods* are the methods implemented in a platform-dependent code +written in another programming language (e.g., *C*). A :index:`compile-time error` occurs if: @@ -2396,11 +1601,11 @@ A :index:`compile-time error` occurs if: native method implementation platform-dependent code - native keyword + keyword native method body block method declaration - abstract keyword + keyword abstract semicolon empty body @@ -2428,23 +1633,22 @@ body (see :ref:`Constructor Body`). constructor constructor declaration platform-dependent code - native keyword - implementation + keyword native non-empty body | -.. _Classes Experimental: +.. _Final Classes and Methods: -Classes Experimental -******************** +Final Classes and Methods +************************* .. meta: frontend_status: Done | -.. _Final Classes: +.. _Final Classes Experimental: Final Classes ============= @@ -2476,7 +1680,7 @@ declaration contains another class that is ``final``. | -.. _Final Methods: +.. _Final Methods Experimental: Final Methods ============= @@ -2485,7 +1689,7 @@ Final Methods frontend_status: Done A method can be declared ``final`` to prevent it from being overridden (see -:ref:`Overriding Methods`) in subclasses. +:ref:`Overloading and Overriding`) in subclasses. A :index:`compile-time error` occurs if: @@ -2500,76 +1704,9 @@ A :index:`compile-time error` occurs if: instance method subclass method declaration - abstract keyword - static keyword - final keyword - -| - -.. _Constructor Names: - -Constructor Names -================= - -.. meta: - frontend_status: None - -A :ref:`Constructor Declaration` allows a developer to set a name used to -explicitly specify constructor to call in :ref:`New Expressions`: - -.. code-block:: typescript - :linenos: - - class Temperature{ - // use specified scale: - constructor Celsius(n: double) {/*body1*/} - constructor Fahrenheit(n: double) {/*body2*/} - } - - new Temperature.Celsius(0) - new Temperature.Fahrenheit(32) - -If a constructor has a name, then using the constructor directly in a new -expression implies using the constructor name explicitly: - -.. index:: - constructor name - constructor declaration - constructor - expression - -.. code-block:: typescript - :linenos: - - class X{ - constructor ctor1(p: number) {/*body1*/} - constructor ctor2(p: string) {/*body2*/} - } - - new X(1) // compile-time error - new X("abs") // compile-time error - new X.ctor1(1) // OK - new X.ctor2("abs") // OK - -A :index:`compile-time error` occurs if a constructor name is used as a named -reference (see :ref:`Named Reference`) in any expression. - -.. code-block:: typescript - :linenos: - - class X{ - constructor foo() {} - } - const func = X.foo // Compile-time error - -The feature is also important for :ref:`Constructor Overload Declarations`. - -.. index:: - constructor name - named reference - expression - constructor overload declaration - overload declaration + keyword abstract + keyword static + keyword final | @@ -2592,23 +1729,20 @@ The syntax of *interface default method* is presented below: A default method can be explicitly declared ``private`` in an interface body. A block of code that represents the body of a default method in an interface -provides a default implementation for any class if such a class does not -override the method that implements the interface. +provides a default implementation for any class if such class does not override +the method that implements the interface. .. index:: method declaration interface method declaration - default method private method implementation interface block - class - method body + default method body interface body default implementation overriding - syntax | @@ -2634,7 +1768,6 @@ code more flexible. .. index:: functionality - function type accessor method @@ -2660,8 +1793,8 @@ Functions with Receiver *Function with receiver* declaration is a top-level declaration (see :ref:`Top-Level Declarations`) that looks almost the same as -:ref:`Function Declarations`, except that the first mandatory parameter uses -keyword ``this`` as its name. +:ref:`Function Declarations`, except that the first parameter is mandatory, +and the keyword ``this`` is used as its name. The syntax of *function with receiver* is presented below: @@ -2685,27 +1818,23 @@ The syntax of *function with receiver* is presented below: top-level declaration function declaration parameter - this keyword + keyword this *Function with receiver* can be called in the following two ways: -- Making an ordinary function call (see :ref:`Function Call Expression`) when - the first argument is the receiver object; - -- Making a method call (see :ref:`Method Call Expression`) when the receiver - is an ``objectReference`` before the function name passed as the first - argument of the call. +- Making a function call (see :ref:`Function Call Expression`), and + passing the first parameter in the usual way; -All other arguments are handled in an ordinary manner. - -Note: that derived classes or interfaces may be used as receivers. +- Making a method call (see :ref:`Method Call Expression`) with + no argument provided for the first parameter, and using the + ``objectReference`` before the function name as the first argument. .. index:: function with receiver function call parameter method call - method call expression + mathod call expression argument object reference function name @@ -2735,46 +1864,36 @@ Note: that derived classes or interfaces may be used as receivers. function demo (d: D) { // as a function call: - foo1(d) - bar1(d, 1) + foo(d) + bar(d, 1) // as a method call: - d.foo1() - d.bar1(1) + d.foo() + d.bar(1) } - class E implements D {} - const e = new E - - // derived class is used as a receiver for a method call: - e.foo1() - e.bar1(1) - - // the same as a function call: - foo1(e) - bar1(e, 1) - - The keyword ``this`` can be used inside a *function with receiver*. It -corresponds to the first parameter. Otherwise, a :index:`compile-time error` -occurs. -The type of parameter ``this`` is called the *receiver type* (see -:ref:`Receiver Type`). +corresponds to the first parameter. The type of ``this`` parameter is +called the *receiver type* (see :ref:`Receiver Type`). If the *receiver type* is a class or interface type, then ``private`` or ``protected`` members are not accessible (see :ref:`Accessible`) within the -body of a *function with receiver*. Only ``public`` members can be accessed: +body of a *function with receiver*. Only ``public`` and ``internal`` members +can be accessed. The ``internal`` members can be accessed only when *function +with receiver* and its class or interface type are declared in the same +compilation unit: .. index:: - this keyword + keyword this function with receiver receiver type public member private member + internal member protected member access - accessibility parameter + compilation unit .. code-block:: typescript :linenos: @@ -2797,35 +1916,29 @@ body of a *function with receiver*. Only ``public`` members can be accessed: A :index:`compile-time error` occurs if the name of a *function with receiver* is the same as the name of an accessible (see :ref:`Accessible`) instance -method or field of the receiver type: +method or field of the receiver type, i.e., a *function with receiver* cannot +overload a method defined for the receiver type: .. code-block:: typescript :linenos: class A { - foo () { ... } + foo () { ... } } - function foo(this: A) { ... } // Compile-time error to prevent ambiguity below - (new A).foo() + function foo(this: A) { ... } // Compile-time error -A :index:`compile-time error` occurs if the *function with receiver* is -attempted to be called from the derived class varialbe: - - class B extends A {} - const b = new B - b.foo() // Compile-time error - foo (b) // OK - - -*Function with receiver* cannot have the same name as a global function. -Otherwise, a :index:`compile-time error` occurs. +*Function with receiver* can overload a global function of the same name. +A compile-time error occurs if the signature of a *function with receiver* is +overload-equivalent (see :ref:`Overload-Equivalent Signatures`) to the function +so overloaded. .. code-block:: typescript :linenos: function foo(this: A) { ... } - function foo() { ... } // Compile-time error + function foo(param: A) { ... } /* Compile-time error as it is a + non-distinguishable declaration */ *Function with receiver* can be generic as in the following example: @@ -2839,10 +1952,10 @@ Otherwise, a :index:`compile-time error` occurs. public method overload compile-time error + overload-equivalent signature overloaded function receiver type generic function - global function .. code-block:: typescript :linenos: @@ -2860,7 +1973,7 @@ Otherwise, a :index:`compile-time error` occurs. *Functions with receiver* are dispatched statically. What function is being called is known at compile time based on the receiver type specified in the declaration. A *function with receiver* can be applied to the receiver of any -derived class until it is overridden within the derived class: +derived class until it is redefined within the derived class: .. code-block:: typescript :linenos: @@ -2869,27 +1982,17 @@ derived class until it is overridden within the derived class: class Derived extends Base { ... } function foo(this: Base) { console.log ("Base.foo is called") } + function foo(this: Derived) { console.log ("Derived.foo is called") } let b: Base = new Base() b.foo() // `Base.foo is called` to be printed b = new Derived() b.foo() // `Base.foo is called` to be printed + let d: Derived = new Derived() + d.foo() // `Derived.foo is called` to be printed -A *function with receiver* can be defined in a compilation unit other than the -one that defines the receiver type. This is represented in the following -examples: - -.. index:: - function with receiver - static dispatch - function call - compile time - receiver type - declaration - receiver - derived class - class - compilation unit +As illustrated by the following examples, a *function with receiver* can be +defined in a compilation unit other than the one that defines the receiver type: .. code-block:: typescript :linenos: @@ -2905,6 +2008,16 @@ examples: this.foo() // Method foo() is called } +.. index:: + function with receiver + static dispatch + called function + compile time + receiver type + type declaration + derived class + compilation unit + | .. _Receiver Type: @@ -2920,7 +2033,7 @@ function type, and lambda with receiver. A *receiver type* may be an interface type, a class type, an array type, or a type parameter. Otherwise, a :index:`compile-time error` occurs. -The use of array type as *receiver type* is presented in the example below: +Using an array type as *receiver type* is illustrated by the example below: .. code-block:: typescript :linenos: @@ -2956,10 +2069,8 @@ Accessors with Receiver frontend_status: Done *Accessor with receiver* declaration is a top-level declaration (see -:ref:`Top-Level Declarations`) that can be used as class -(see :ref:`Class Accessor Declarations`) or interface accessor -(see :ref:`Interface Properties`) -for a specified receiver type: +:ref:`Top-Level Declarations`) that can be used as class or interface accessor +(see :ref:`Accessor Declarations`) for a specified receiver type: The syntax of *accessor with receiver* is presented below: @@ -2981,8 +2092,6 @@ The use of getters and setters looks the same as the use of fields: .. index:: accessor with receiver accessor with receiver declaration - receiver type - accessor declaration top-level declaration class accessor interface accessor @@ -3054,7 +2163,6 @@ The type of a *receiver parameter* is called the *receiver type* (see function with receiver lambda with receiver function type - this keyword parameter receiver type receiver parameter @@ -3083,11 +2191,11 @@ The usual rule of function type compatibility (see .. index:: function type with receiver - generic + generic type function type - compatibility + function type compatibility subtyping - parameter name + parameter .. code-block:: typescript :linenos: @@ -3108,7 +2216,7 @@ The usual rule of function type compatibility (see f1 = f2 // ok The sole difference is that only an entity of *function type with receiver* can -be used in :ref:`Method Call Expression`. The declarations from the previous +be used in :ref:`Method Call Expression`. The definitions from the previous example are reused in the example below: .. code-block:: typescript @@ -3122,10 +2230,7 @@ example are reused in the example below: f2(a) // ok .. index:: - entity function type with receiver - method call - expression compile-time error @@ -3149,7 +2254,7 @@ The syntax of *lambda expression with receiver* is presented below: .. code-block:: abnf lambdaExpressionWithReceiver: - annotationUsage? + annotationUsage? typeParameters? '(' receiverParameter (',' lambdaParameterList)? ')' returnType? '=>' lambdaBody ; @@ -3161,12 +2266,11 @@ It corresponds to the first parameter: .. index:: lambda expression with receiver - lambda expression instance function type with receiver lambda expression parameter - this keyword + keyword this annotation .. code-block:: typescript @@ -3178,7 +2282,8 @@ It corresponds to the first parameter: console.log(this.name) } -Lambda can be called in two syntactical ways represented by the example below: +There are two syntactical ways how to call lambda as illustrated by the +example below: .. code-block:: typescript :linenos: @@ -3200,19 +2305,11 @@ Lambda can be called in two syntactical ways represented by the example below: let aa: A[] = [new A("aa"), new A("bb")] foo(aa, (this: A) => { console.log(this.name)} ) // output: "aa" "bb" -.. index:: - lambda - syntax - constructor - function - class - **Note**. If *lambda expression with receiver* is declared in a class or -interface, then ``this`` use in the lambda body refers to the first lambda -parameter and not to the surrounding class or interface. Any lambda call -outside a class has to use the ordinary syntax of arguments as represented by -the example below: - +interface, then the use of ``this`` in a lambda body always refers to the first +lambda parameter, but not to ``this`` of the surrounding class or interface. And +any call of such lambda outside of the class has to use ordinary syntax of +arguments passing as illustrated by the example below: .. code-block:: typescript :linenos: @@ -3243,12 +2340,11 @@ the example below: lambda expression with receiver class interface - this keyword + this lambda body lambda parameter surrounding class surrounding interface - syntax | @@ -3269,16 +2365,12 @@ when accessing the following: receiver type. In other words, prefix ``this.`` in such cases can be omitted. This feature -is added to |LANG| to improve DSL support. It is represented in the following +is added to |LANG| to improve DSL support. It is illustrated by the following examples: .. index:: lambda expression with receiver this - lambda - accessor - DSL support - prefix instance method field @@ -3316,8 +2408,8 @@ is inferred from the context: foo() // ok - implicit 'this' } -The example above represents the use of implicit ``this`` when calling a -function with receiver: +The example above represents the use of implicit ``this`` when calling a function +with receiver: .. index:: lambda expression with receiver @@ -3340,14 +2432,15 @@ function with receiver: } If a simple name used in a lambda body can be resolved as instance method, -field, or accessor of the receiver type, and as another entity in the current +field or accessor of the receiver type, and as another entity in the current scope at the same time, then a :index:`compile-time error` occurs to prevent ambiguity and improve readability. .. index:: simple name lambda body - instance method + instance + method field accessor receiver type @@ -3371,7 +2464,6 @@ function type, and the argument is passed as a lambda using the .. index:: trailing lambda - notation function call method call parameter @@ -3379,7 +2471,7 @@ function type, and the argument is passed as a lambda using the method parameter lambda - block notation + function type .. code-block:: typescript :linenos: @@ -3419,10 +2511,8 @@ means that the call must use the default value of the parameter. .. index:: trailing lambda - syntax parameter receiver parameter - optional parameter lambda expression with receiver block function type @@ -3445,15 +2535,15 @@ means that the call must use the default value of the parameter. bar() { console.log ("trailing lambda") } // function 'bar' receives last argument as the trailing lambda, bar(); { console.log ("that is the block code") } - // function 'bar' is called with parameter 'f' set to 'undefined' + // function 'bar' is called with 'f' parameter set to 'undefined' function goo(n: number) { ... } - goo() { console.log("aa") } // compile-time error as goo() requires an argument - goo(); { console.log("aa") } // compile-time error as goo() requires an argument + goo() { console.log("aa") } // compile-time error + goo(); { console.log("aa") } // ok -If there are optional parameters in front of an optional function type parameter, +If there are optional parameters in front of optional function type parameter, then calling such a function or method can skip optional arguments and keep the trailing lambda only. This implies that the value of all skipped arguments is ``undefined``. @@ -3470,184 +2560,391 @@ trailing lambda only. This implies that the value of all skipped arguments is foo(1) { return "lambda" } // 1 undefined lambda foo(1, "a") { return "lambda" } // 1 a lambda -.. index:: - optional parameter - optional argument - trailing lambda - argument - operional function - function - method - function call - method call - string - lambda | -.. _Accessor Declarations: +.. _Packages: -Accessor Declarations -********************* +Packages +******** .. meta: - frontend_status: None + frontend_status: Partly + todo: Implement compiling a package module as a single compilation unit - #16267 -Accessors are top-level declarations that can be used as a replacement for -variables to add additional control in the operations of getting or setting -a variable value. An accessor can be either a getter or a setter. +One or more *package modules* form a package. -The syntax of *accessor declarations* is presented below: +The syntax of *package* is presented below: .. code-block:: abnf - accessorDeclaration: - 'native'? - ( 'get' identifier '(' ')' returnType? block? - | 'set' identifier '(' parameter ')' block? - ) + packageDeclaration: + packageModule+ + ; + +*Packages* are stored in a file system or a database (see +:ref:`Compilation Units in Host System`). + +A *package* can consist of several package modules if all such modules +have the same *package header*. + +.. index:: + package module + package + file system + database + package header + module + +The syntax of *package module* is presented below: + + +.. code-block:: abnf + + packageModule: + packageHeader packageModuleDeclaration + ; + + packageHeader: + 'package' qualifiedName ; -The modifier ``native`` indicates that the accessor is a *native accessor* -(similarly to :ref:`Native Functions`). + packageModuleDeclaration: + importDirective* packageModuleDeclaration* + ; + + packageModuleDeclaration: + packageTopDeclaration | initializerBlock + ; + + packageTopDeclaration: + ('export' 'default'?)? + annotationUsage? + ( typeDeclaration + | variableDeclarations + | packageConstantDeclarations + | functionDeclaration + | functionWithReceiverDeclaration + | accessorWithReceiverDeclaration + | namespaceDeclaration + | ambientDeclaration + ) + ; -A non-native accessor must have a body. A :index:`compile-time error` occurs if: -- Native accessor has a body; or -- Non-native accessor has no body. +- *Package module* contains no package header; or +- Package headers of two package modules in the same package have + different identifiers. -A *get-accessor* (*getter*) must have an explicit return type and no parameters, -or no return type at all on condition the type can be inferred from the getter -body (see :ref:`Return Type Inference`). -A *set-accessor* (*setter*) must have a single parameter and no return type. +Every *package module* can directly use all exported entities from the core +packages of the standard library (see :ref:`Standard Library Usage`). -A :index:`compile-time error` occurs if: +A *package module* can directly access all top-level entities declared in all +modules that constitute the package. -- Getter or setter is used in a call expression (like a function); -- Getter return type cannot be inferred from the getter body; or -- *Set-accessor* (*setter*) has an optional parameter (see - :ref:`Optional Parameters`): +If a top-level declaration in any package module contains an initializer for a +variable or a constant, then the form of the initializer must be +*constantExpression*. Otherwise, a :index:`compile-time error` occurs. -Typical use of an accessor to control value setting is represented in the -following example: +Initializer block is to be used for initialization to ensure an explicit order +of initialization. .. code-block:: typescript :linenos: - let saved_age = 0 + package P + let v1 = foo() // Compile-time error as call to foo() is not a constant expression + function foo() { return 1 } - export get age(): number { return saved_age } - export set age(a: number) { - if (a < 0) { throw new Error("wrong age") } - saved_age = a - } + let v2 = 2 + 3 * 4 // OK + + let v2: number + static { + v2 = foo() // OK + } -A getter and a setter, unlike functions, can have the same name -as they are distinguishable by the place of usage: +A :index:`compile-time error` occurs if a package contains *initializer block* +in more than one source file. .. code-block:: typescript :linenos: - - let _name = "" - get name(): string { return _name } - set name(x: string { _name = x } -However, an accessor declaration must be distinguishable from other entities, -so a :index:`compile-time error` occurs if: + // Source file 1 + package P + static { // P initializer part one + } + function foo() {} + static { // P initializer part two + } + -- an accessor has the same name as other entity in the scope; -- two getters or two setters in the scope have the same name. + // Source file 2 + package P + static {} // compile-time error as initializer in a different source file -.. code-block:: typescript - :linenos: - - let name = "Bob" - get name(): string { return "Alice" } // compile-time error -No additional restrictions are imposed on signatures of the getter and -the setter with the same name. +.. index:: + package module + package header + package + header + module + core package + top-level entity + initializer + top-level declaration + variable + constant + block + initialization + +| + +.. _Constants in Packages: + +Constants in Packages +===================== + +Constant declarations in packages can be defined without the mandatory +initializer, and must be initialized in the body of the initializer block +block (see :ref:`Static Initialization`) before the first use of the constant as +represented in the example below. .. code-block:: typescript :linenos: - - set hashCode(x: string) {/*body*/} - get hashCode(): long {/*body*/} // ok -The use of getters and setters looks like the use of variables. -A :index:`compile-time error` occurs if: + package P + function foo() { return 1 } + + const c1: number + static { + c1 = foo() // OK + } + +The syntax of *package constant declaration* is presented below: + +.. code-block:: abnf + + packageConstantDeclaration: + identifier ':' type initializer? + | identifier initializer + ; + +.. index:: + package + constant declaration + constant + initializer + block -- Getter is used in the position of the *left-hand-side expression* in an - :ref:`Assignment`; -- Setter is used to get a value. +| + +.. _Internal Access Modifier Experimental: + +Internal Access Modifier +======================== + +.. meta: + frontend_status: Partly + todo: Implement in libpandafile, implement semantic, now it is parsed and ignored - #16088 + +The modifier ``internal`` indicates that a class member, a constructor, or +an interface member is accessible (see :ref:`Accessible`) within its +compilation unit only. If the compilation unit is a package (see +:ref:`Packages`), then ``internal`` members can be used in any +*package module*. If the compilation unit is a separate module (see +:ref:`Separate Modules`), then ``internal`` members can be used within this +module. + +.. index:: + internal access modifier + access modifier + modifier + access modifier + modifier internal + access + accessibility + compilation unit + package + separate module + internal member + class member + module .. code-block:: typescript :linenos: - get magicNumber(): number { return 42 } - set randomSeed(a: number) {} + class C { + internal count: int + getCount(): int { + return this.count // ok + } + } + + function increment(c: C) { + c.count++ // ok + } + - console.log(maginNumber) // ok, getter is used - magicNumber = 15 // compile-time error, setter is not defined +| + +.. _Import and Overloading of Function Names: + +Import and Overloading of Function Names +======================================== + +.. meta: + frontend_status: Done + +While importing functions, the following situations can occur: + +- Different imported functions have the same name but different signatures, or + a function (functions) of the current module and an imported function + (functions) have the same name but different signatures. This situation is + called *overloading*. All such functions are accessible (see :ref:`Accessible`). + +- A function (functions) of the current module and an imported function + (functions) have the same name and an overload-equivalent signature (see + :ref:`Overload-Equivalent Signatures`). This situation causes a + :index:`compile-time error` as declarations are duplicated. Qualified import + or alias in import can be used to access the imported entity. + +.. index:: + import + function + overloading + function name + function + imported function + signature + module + access + accessibility + overload-equivalent signature + declaration + qualified import + alias + imported entity - randomSeed(42) // ok, setter is used - console.log(randomSeed) // compile-time error, getter is not defined +The two situations are illustrated by the examples below: -Accessors can be declared at all places where :ref:`Top-Level Declarations` -including namespaces can be used: +.. code-block-meta: + skip .. code-block:: typescript :linenos: - namespace N { - let saved_age = 0 + // Overloading case + package P1 + function foo(p: int) {} - export get age(): number { return saved_age } - export set age(a: number) { - if (a < 0) { throw new Error("wrong age") } - saved_age = a - } - } + package P2 + function foo(p: string) {} + + // Main module + import {foo} from "path_to_file_with_P1" + import {foo} from "path_to_file_with_P2" + + function foo (p: double) {} - N.age = 18 - console.log(N.age) + function main() { + foo(5) // Call to P1.foo(int) + foo("A string") // Call to P2.foo(string) + foo(3.141592653589) // Call to local foo(double) + } + + // Declaration duplication case + package P1 + function foo() {} + package P2 + function foo() {} + // Main program + import {foo} from "path_to_file_with_P1" + import {foo} from "path_to_file_with_P2" /* Error: duplicating + declarations imported*/ + function foo() {} /* Error: duplicating declaration identified + */ + function main() { + foo() // Error: ambiguous function call + // But not a call to local foo() + // foo() from P1 and foo() from P2 are not accessible + } | -.. _Libraries: +.. _Generics Experimental: -Libraries -********* +Generics Experimental +********************* .. meta: - frontend_status: None + frontend_status: Done -The syntax of a *library description* is presented below: +| -.. code-block:: abnf +.. _NonNullish Type Parameter: - libraryDescription: - (importDirective|reExportDirective)* - ; +NonNullish Type Parameter +========================= +.. meta: + frontend_status: Partly -*Libraries* are constructed from modules or other libraries. They can control -what is exported from a library by using the import-and-then-export scheme. +If some generic class has a type parameter with a nullish union type constraint, +then special syntax can be used for type annotation to get a non-nullish +version of the type parameter variable. The example below illustrates this +possibility: -*Libraries* are stored in a file system or a database (see -:ref:`Compilation Units in Host System`). +.. index:: + generic class + type parameter + nullish union type + nullish union + constraint + type + type annotation + annotation + non-nullish type + type parameter + variable + parameter + +.. code-block:: typescript + :linenos: + class A { // in fact it extends Object|null|undefined + foo (p: T): T! { // foo returns non-nullish value of p + return p! + } + } -.. index:: - library - module - construct - file system - database - compilation unit - host system + class B { + foo (p: T): T! { // foo returns non-nullish value of p + return p! + } + } + + class C { + foo (p: T): T! { // foo returns non-nullish value of p + return p! + } + } + + let a = new A + let b = new B + let c = new C + + let result: Object = new Object // Type of result is non-nullish ! + result = a.foo(result) + result = b.foo(new SomeType) + result = c.foo(new SomeType) + // All such assignments are type-valid as well + result = a.foo(void) // void! => never + result = b.foo(null) // null! => never + result = c.foo(undefined) // undefined! => never .. raw:: pdf diff --git a/static_core/plugins/ets/doc/spec/18_annotations.rst b/static_core/plugins/ets/doc/spec/18_annotations.rst index db9c4b9c9c..8fd647fce1 100644 --- a/static_core/plugins/ets/doc/spec/18_annotations.rst +++ b/static_core/plugins/ets/doc/spec/18_annotations.rst @@ -21,7 +21,7 @@ Annotations *Annotation* is a special language element that changes the semantics of the declaration to which it is applied by adding metadata. -Declaring and using an annotation is represented in the example below: +The example below illustrates how an annotation is declared and used: .. code-block:: typescript :linenos: @@ -48,16 +48,13 @@ allowed between the character '``@``' and the name: .. index:: annotation semantics - language element metadata declaration class declaration prefix space - white space line separator argument - name .. code-block:: :linenos: @@ -66,7 +63,7 @@ allowed between the character '``@``' and the name: @ ClassAuthor({authorName: "Bob"}) // compile-time error, space is forbidden A :index:`compile-time error` occurs if the annotation name is not accessible -(see :ref:`Accessible`) at the place of use. An annotation declaration can be +(see :ref:`Accessible`) at the place of usage. An annotation declaration can be exported and used in other compilation units. Multiple annotations can be applied to a single declaration: @@ -84,7 +81,6 @@ Multiple annotations can be applied to a single declaration: accessibility annotation declaration compilation unit - declaration | @@ -124,20 +120,14 @@ occurs if the value of this expression cannot be evaluated at compile time. .. index:: annotation - declaration interface - interface keyword + keyword interface prefix - export keyword - syntax - annotation declaration + keyword export annotation field - declared entity constant expression compile time initializer - expression - value type *Annotation* must be defined at the top level. Otherwise, a @@ -172,7 +162,6 @@ the annotation or used as an interface: annotation declaration interface entity - type | @@ -187,7 +176,7 @@ Types of Annotation Fields The choice of *types for annotation fields* is limited to the following: - :ref:`Numeric Types`; -- Type ``boolean`` (see :ref:`Type boolean`); +- Type ``boolean`` (see :ref:`Boolean Types and Operations`); - :ref:`Type string`; - Enumeration types (see :ref:`Enumerations`); - Array of the above types (e.g., ``string[]``), including multidimensional @@ -201,7 +190,9 @@ an *annotation field*. type for annotation field numeric type boolean type - string type + type boolean + string + type string enumeration type array multidimensional array @@ -228,7 +219,7 @@ and to define the values of annotation fields: '(' (objectLiteral | constantExpression)? ')' ; -An annotation declaration is represented in the example below: +An annotation declaration is presented in the example below: .. code-block:: typescript :linenos: @@ -256,7 +247,7 @@ a :index:`compile-time error` occurs. value expression -The use of annotation is presented in the example below. The annotations in +The usage of annotation is presented in the example below. The annotations in this example are applied to class declarations: .. code-block:: typescript @@ -275,8 +266,8 @@ Annotations can be applied to the following: - :ref:`Top-Level Declarations`; -- Class members (see :ref:`Class Members`) or interface members (see - :ref:`Interface Members`); +- Class members (see :ref:`Class Body`) or interface members (see + :ref:`Interface Body`); - Type usage (see :ref:`Using Types`); @@ -293,25 +284,24 @@ Annotations can be applied to the following: class declaration top-level declaration class - type interface method parameter - optional parameter lambda expression - lambda expression with receiver function - local declaration Otherwise, a :index:`compile-time error` occurs: .. code-block:: typescript :linenos: - function foo () @MyAnno() {} // wrong target for annotation -Repeatable annotations are not supported, i.e., an annotation can be applied -to an entity no more than once: + function foo () { + @MyAnno() let local = 1 // compile-time error + } + +Repeatable annotations are not supported, i.e., an annotation cannot be applied +to an entity more than once: .. code-block:: typescript :linenos: @@ -340,8 +330,6 @@ Otherwise, a :index:`compile-time error` occurs: .. index:: annotation - repeatable annotation - entity array literal array type value @@ -378,10 +366,8 @@ omitted after the annotation name: field array type annotation - syntax array literal parenthesis - property annotation name | @@ -455,21 +441,20 @@ annotation is accessed by its qualified name: @ns.MyAnno class C {/*body*/} -Unqualified import is also allowed: - .. index:: export import annotation annotation declaration - export keyword + keyword export import directive - export directive imported module qualified name access unqualified import +Unqualified import is also allowed: + .. code-block:: typescript :linenos: @@ -498,19 +483,14 @@ Annotations are forbidden in the following cases: - Rename in import. .. index:: - annotation export type import type - import annotation - export annotation annotation - notation type notation import annotation export default import default - renaming .. code-block:: typescript :linenos: @@ -544,14 +524,12 @@ An ambient annotation and the annotation that implements it must be exactly identical, including field initialization: .. index:: - syntax ambient annotation declaration annotation type runtime error field initialization - initialization .. code-block:: typescript :linenos: @@ -605,7 +583,6 @@ the declaration that implements the ambient declaration: .. index:: annotation declaration - initialization import annotation ambient declaration @@ -622,25 +599,18 @@ Standard Annotations .. meta: frontend_status: Done -*Standard annotation* is an annotation that is defined in -:ref:`Standard Library`, or implicitly defined in the compiler -(*built-in annotation*). +*Standard annotation* is an annotation that is defined in :ref:`Standard Library`, +or implicitly defined in the compiler (*built-in annotation*). *Standard annotation* is usually known to the compiler. It modifies the semantics of the declaration it is applied to. -An annotation that annotates a declaration of another annotation is called -*meta-annotation*. - .. index:: standard annotation annotation - standard annotation compiler built-in annotation - call semantics declaration - meta-annotation | @@ -652,8 +622,8 @@ Retention Annotation .. meta: frontend_status: Done -``@Retention`` is a standard *meta-annotation* that is used to annotate -a declaration of another annotation. +*@Retention* is a standard annotation that is used to annotate a declaration +of another annotation. A :index:`compile-time error` occurs if it is used in other places. The annotation has a single field ``policy`` of type ``string``. It is typically @@ -669,14 +639,12 @@ used as follows: class C {} .. index:: - meta-annotation retention annotation standard annotation annotation declaration declaration annotation field - string type The value of this field determines at which point an annotation is used, and discarded after use. @@ -727,135 +695,6 @@ As ``@Retention`` has a single field, it can be used with a short notation | -.. _Target Annotation: - -Target Annotation -================= - -.. meta: - frontend_status: None - - -``@Target`` is a standard *meta-annotation* that is used to annotate -a declaration of another annotation. A :index:`compile-time error` occurs -if ``@Target`` is used elsewhere. - -``@Target`` specifies the set of source code contexts in which the declared -annotation can be used. The contexts are specified by using a set of values -of an ``AnnotationTargets`` enumeration defined in :ref:`Standard Library`. - -The annotation ``@Target`` has a single field ``targets`` of type -``AnnotationTargets[]``. It is typically used as follows: - -.. index:: - target annotation - annotation - meta-annotation - declaration - source code - context - value - -.. code-block:: typescript - :linenos: - - // short form: - @Target([AnnotationTargets.FUNCTION, AnnotationTargets.CLASS_METHOD]) - @interface SpecialCall {/*some fields*/} - - // long form: - @Target({targets: [AnnotationTargets.PARAMETER]}) - @interface SpecialParameter {/*some fields*/} - -If the annotation is present in the declaration of annotation ``X``, then -the compiler checks that ``X`` is used in the specified contexts only. -Otherwise, a :index:`compile-time error` occurs. - -If no annotation is present in the declaration of annotation ``X``, then -the usage of ``X`` is not restricted. - -An ``AnnotationTargets`` enumeration contains constants for the following -targets: - -.. index:: - annotation - declaration - compiler - compiler check - context - restriction - enumeration - constant - -- Targets for :ref:`Top-Level Declarations`: - - - CLASS; - - ENUMERATION; - - FUNCTION; - - FUNCTION_WITH_RECEIVER; - - INTERFACE; - - NAMESPACE; - - TYPE_ALIAS; - - VARIABLE. - -- Targets for :ref:`Class Members`: - - - CLASS_FIELD; - - CLASS_METHOD; - - CLASS_GETTER; - - CLASS_SETTER. - -- Targets for :ref:`Interface Members`: - - - INTERFACE_PROPERTY; - - INTERFACE_METHOD; - - INTERFACE_GETTER; - - INTERFACE_SETTER. - -- Other targets: - - - LAMBDA for :ref:`Lambda Expressions` and - :ref:`Lambda Expressions with Receiver`; - - PARAMETER for function, method, and lambda parameter; - - STRUCT (see :ref:`Keyword struct and ArkUI`); - - TYPE (see :ref:`Using Types`). - -.. index:: - class - enumeration - function - interface - namespace - type alias - variable - class member - function with receiver - class field - class method - class getter - class setter - interface property - interface method - interface getter - interface setter - target - lambda - parameter - struct - type - annotation - -A :index:`compile-time error` occurs if an enumeration constant is used more -then once in an ``@Target`` annotation: - -.. code-block:: typescript - :linenos: - - @Target([AnnotationTargets.CLASS, AnnotationTargets.INTERFACE, AnnotationTargets.CLASS]) - @interface Anno {} - -| - .. _Runtime Access to Annotations: Runtime Access to Annotations @@ -869,16 +708,6 @@ For an annotation with *retention policy* (see :ref:`Retention Annotation`) is implicitly declared. All fields of this class are ``readonly``. If a field is of an array type, the array type is also ``readonly``. -.. index:: - runtime - access - annotation - retention policy - retention annotation - bytecode - readonly field - array type - For the following annotation: .. code-block:: typescript @@ -890,7 +719,7 @@ For the following annotation: attrs: number[] } ---the abstract class is declared: +the abstract class is declared: .. code-block:: typescript :linenos: @@ -900,7 +729,7 @@ For the following annotation: readonly attrs: readonly number[] } -The use of such a class is represented in following example: +The following example shows the use of such class: .. code-block:: typescript :linenos: @@ -911,12 +740,6 @@ The use of such a class is represented in following example: let my: MyAnno = // call of reflection library to get instance of annotation for type A console.log(my.name) // output: someName -.. index:: - annotation - abstract class - declaration - readonly name - .. raw:: pdf PageBreak diff --git a/static_core/plugins/ets/doc/spec/1_intro.rst b/static_core/plugins/ets/doc/spec/1_intro.rst index c3f0873d38..c461371417 100644 --- a/static_core/plugins/ets/doc/spec/1_intro.rst +++ b/static_core/plugins/ets/doc/spec/1_intro.rst @@ -22,64 +22,27 @@ multiparadigm programming language called |LANG|. .. _Common Description: -Overall Description -******************* +Common Description +****************** -The |LANG| language combines and supports features that have already proven -helpful and powerful in many well-known programming languages. +The |LANG| language combines and supports features that are in use in many +well-known programming languages, where such features have already proven +helpful and powerful. |LANG| supports imperative, object-oriented, functional, and generic programming paradigms, and combines them safely and consistently. At the same time, |LANG| does not support features that allow software developers to write dangerous, unsafe, or inefficient code. In particular, -the language uses the strong static typing principle. Object types are -determined by their declarations, and no dynamic type change is allowed. -The semantic correctness is checked at compile time. +the language uses the strong static typing principle. It allows no dynamic +type changes, as object types are determined by their declarations. Their +semantic correctness is checked at compile time. -|LANG| is designed as a part of the modern language manifold. To provide an -efficient and safely executable code, the language takes flexibility and -power from |TS| and its predecessor |JS|, and the static -typing principle from Java and Kotlin. The overall design keeps the |LANG| -syntax style similar to that of those languages, and some of its important -constructs are almost identical to theirs on purpose. - -In other words, there is a significant *common subset* of features of |LANG| -on the one hand, and of |TS|, |JS|, Java, and Kotlin on the other. -Consequently, the |LANG| style and constructs are no puzzle for the |TS| and -Java users who can intuitively sense the meaning of most constructs of the new -language even if not understand them completely. - -.. index:: - construct - syntax - common subset - -This stylistic and semantic similarity permits smoothly migrating the -applications originally written in |TS|, Java, or Kotlin to |LANG|. - -Like its predecessors, |LANG| is a relatively high-level language. It means -that the language provides no access to low-level machine representations. -As a high-level language, |LANG| supports automatic storage management, i.e., -all dynamically created objects are deallocated automatically soon -after they are no longer available, and deallocating them explicitly is not -required. - -|LANG| is not merely a language, but rather a comprehensive software -development ecosystem that facilitates the creation of software solutions -in various application domains. - -The |LANG| ecosystem includes the language along with its compiler, -accompanying documents, guidelines, tutorials, the standard library -(see :ref:`Standard Library`), and a set of additional tools that perform -transition from other languages (currently, |TS| and Java) to |LANG| -automatically or semi-automatically. - -The |LANG| language as a whole is characterized by the following: +The following major aspects characterize the |LANG| language as a whole: -- **Object orientation** +- Object orientation - The |LANG| language supports the *object-oriented programming* (OOP) approach + The |LANG| language supports *object-oriented programming* (OOP) approach based on classes and interfaces. The major notions of this approach are as follows: @@ -88,8 +51,8 @@ The |LANG| language as a whole is characterized by the following: - Methods (class instance or interface methods) with overriding and dynamic dispatch mechanisms. - Object orientation is common in many if not all modern programming languages. - It enables powerful, flexible, safe, clear, and adequate software design. + Common in many (if not all) modern programming languages, object orientation + enables powerful, flexible, safe, clear, and adequate software design. .. index:: object @@ -101,40 +64,45 @@ The |LANG| language as a whole is characterized by the following: abstraction dynamically dispatched overriding -- **Modularity** +- Modularity - The |LANG| language supports the *component programming* approach. It + The |LANG| language supports the *component programming approach*. It presumes that software is designed and implemented as a composition of *compilation units*. A compilation unit is typically represented as - a *module* or a *library*. + a *module* or as a *package*. - A *module* in |LANG| is a standalone, independently compiled unit that + A module in |LANG| is a standalone, independently compiled unit that combines various programming resources (types, classes, functions, and so on). A module can communicate with other modules by exporting all or some of its resources to, or importing from other modules. + This feature provides a high level of software development process and + software maintainability, supports flexible module reuse and efficient + version control. + .. index:: modularity compilation unit component programming maintainability module + package -- **Genericity** +- Genericity - Some program entities in |LANG| can be *type-parameterized*. It means that + Some program entities in |LANG| can be *type-parameterized*. This means that an entity can represent a very high-level (abstract) concept. Providing more - concrete type information constitutes the instantiation of an entity for a - particular use case. + concrete type information makes the entity instantiated for a particular use + case. A classical illustration is the notion of a list that represents the - ‘idea’ of an abstract data structure. An abstract notion can be turned - into a concrete list by providing additional information (i.e., type of + ‘idea’ of an abstract data structure. This abstract notion can be turned + into a concrete list by providing additional information (i.e., the type of list elements). - A similar feature (*generics* or *templates*) supported by many programming - languages enables making programs and program structures more generic and - reusable, and serves as a basis of the generic programming paradigm. + Supported by many programming languages, a similar feature (*generics* or + *templates*) serves as the basis of the generic programming paradigm. It + enables making programs and program structures more generic and reusable. .. index:: abstract concept @@ -147,18 +115,57 @@ The |LANG| language as a whole is characterized by the following: generic template -- **Multitargeting** +- Multitargeting |LANG| provides an efficient application development solution for a wide - range of devices. The developer-friendly |LANG| ecosystem is a - *cross-platform development* providing a uniform programming environment - for many popular platforms. It can generate optimized applications + range of devices. The language ecosystem is a developer-friendly and uniform + programming environment for a range of popular platforms (called + *cross-platform development*). It can generate optimized applications capable of operating under the limitations of lightweight devices, or - realizing the full potential of any specific-target hardware. + realizing the full potential of any specific target hardware. .. index:: multitargeting cross-platform development + +|LANG| is designed as a part of the modern language manifold. To provide an +efficient and safely executable code, the language takes flexibility and +power from |TS| and its predecessor |JS|, and the static +typing principle from Java and Kotlin. The overall design keeps the |LANG| +syntax style similar to that of those languages, and some of its important +constructs are almost identical to theirs on purpose. + +In other words, there is a significant *common subset* of features of |LANG| +on the one hand, and of |TS|, |JS|, Java, and Kotlin on the other. +Consequently, the |LANG| style and constructs are no puzzle for the |TS| and +Java users who can sense the meaning of most constructs of the new language +even if not understand them completely. + +.. index:: + construct + syntax + common subset + +This stylistic and semantic similarity permits smoothly migrating the +applications originally written in |TS|, Java, or Kotlin to |LANG|. + +Like its predecessors, |LANG| is a relatively high-level language. It means +that the language provides no access to low-level machine representations. +As a high-level language, |LANG| supports automatic storage management. It +means that dynamically created objects are deallocated automatically soon +after they are no longer available, and deallocating them explicitly is not +required. + +|LANG| is not merely a language, but rather a comprehensive software +development ecosystem that facilitates the creation of software solutions +in various application domains. + +The |LANG| ecosystem includes the language along with its compiler, +accompanying documents, guidelines, tutorials, the standard library +(see :ref:`Standard Library`), and a set of additional tools that perform +automatic or semi-automatic transition from other languages (currently, +|TS| and Java) to |LANG|. + .. index:: high-level language low-level representation @@ -176,17 +183,17 @@ The |LANG| language as a whole is characterized by the following: Lexical and Syntactic Notation ****************************** -This section introduces the notation known as *context-free grammar*. The -notation is used throughout this specification to define the lexical and -syntactic structure of a program. +This section introduces the notation known as *context-free grammar*. It is +used in this specification to define the lexical and syntactic structure of +a program. .. index:: context-free grammar lexical structure syntactic structure -The |LANG| lexical notation defines a set of rules, or productions that specify -the structure of the elementary language parts called *tokens*. All tokens are +The |LANG| lexical notation defines a set of productions (rules) that specify +the structure of the elementary language parts called *tokens*. All tokens are defined in :ref:`Lexical Elements`. The set of tokens (identifiers, keywords, numbers/numeric literals, operator signs, delimiters), special characters (white spaces and line separators), and comments comprises the language’s @@ -224,15 +231,14 @@ sequences of tokens can form syntactically correct programs. module nonterminal -Lexical and syntactic grammars are defined as a range of productions, and each -production is comprised of the following: +Lexical and syntactic grammars are defined as a range of productions. Each +production: -- Abstract symbol (*nonterminal*) as its left-hand side, -- Sequence of one or more *nonterminal* and *terminal* symbols as its - *right-hand side*, -- Character '``:``' as a separator between the left- and - right-hand sides, and -- Character '``;``' as the end marker. +- Is comprised of an abstract symbol (*nonterminal*) as its left-hand side, + and a sequence of one or more *nonterminal* and *terminal* symbols as its + *right-hand side*. +- Includes the '``:``' character as a separator between the left- and + right-hand sides, and the '``;``' character as the end marker. .. index:: lexical grammar @@ -244,10 +250,11 @@ production is comprised of the following: separator end marker -A grammar starts from the goal symbol and specifies the language, i.e., the set -of possible sequences of terminal symbols that can result from repeatedly -replacing any nonterminal in the left-hand-side sequence for a right-hand side -of the production. +Grammars draw terminal symbols from a fixed-width form. Starting from the +goal symbol, grammars specify the language itself, i.e., the set of possible +sequences of terminal symbols that can result from repeatedly replacing +any nonterminal in the left-hand-side sequence for a right-hand side of the +production. .. index:: goal symbol @@ -256,20 +263,20 @@ of the production. sequence production -Grammars can use the following additional symbols (sometimes called -*metasymbols*) in the right-hand side of a grammar production along +Grammars can use the following additional symbols---sometimes called +*metasymbols*---in the right-hand side of a grammar production along with terminal and nonterminal symbols: - Vertical line '``|``' to specify alternatives. -- Question mark '``?``' to specify an optional occurrence (zero- or one-time) +- Question mark '``?``' to specify an optional (zero- or one-time) occurrence of the preceding terminal or nonterminal. - Asterisk '``*``' to mark a *terminal* or *nonterminal* that can occur zero or more times. - Parentheses '``(``' and '``)``' to enclose any sequence of terminals and/or - nonterminals marked with the metasymbols '``?``' or '``*``'. + nonterminals marked with the '``?``' or '``*``' metasymbols. .. index:: terminal @@ -279,11 +286,11 @@ with terminal and nonterminal symbols: metasymbol grammar production -The metasymbols specify the structuring rules for terminal and nonterminal -sequences. However, they are not part of terminal symbol sequences that -comprise the resultant program text. +Such additional symbols specify the structuring rules for terminal and +nonterminal sequences. However, they are not part of the terminal symbol +sequences that comprise the resultant program text. -The example below represents a production that specifies a list of expressions: +The production below is an example that specifies a list of expressions: .. code-block:: abnf @@ -293,12 +300,12 @@ The example below represents a production that specifies a list of expressions: This production introduces the following structure defined by the nonterminal *expressionList*. The expression list must consist of a -sequence of *expressions* separated by the terminal symbol ‘``,``’. The +sequence of *expression*\ s separated by the terminal ‘``,``’ symbol. The sequence must have at least one *expression*. The list is optionally -terminated by the terminal symbol ‘``,``’. +terminated by the terminal ‘``,``’ symbol. All grammar rules are presented in the Grammar section (see -:ref:`Grammar Summary`) of this Specification. +:ref:`Grammar Summary`) of this specification. .. index:: structuring rule @@ -314,70 +321,62 @@ Terms and Definitions This section contains the alphabetical list of important terms found in the Specification, and their |LANG|-specific definitions. Such definitions are -not generic and can differ significantly from the definitions of the same terms +not generic and can differ significantly from the definitions of same terms as used in other languages, application areas, or industries. .. glossary:: :sorted: - compile-time error - -- a text message displayed by the compiler if an error is identified - in a program code that prevents the code to be generated. - - compile-time warning - -- a text message displayed by the compiler if a program code is found - to have some logical inconsistencies, and it is recommended that the - programmer reconsiders the design and actual coding. - expression -- a formula for calculating values. An expression has the syntactic form that is a composition of operators and parentheses, where - parentheses are used to change the order of calculation. The default order - of calculation is determined by operator preferences. + parentheses are used to change the order of calculation. By default, + the order of calculation is determined by operator preferences. operator (in programming languages) - -- the term can have several meanings as follows: + -- the term can have several meanings. (1) a token that denotes the action to be performed on a value (addition, subtraction, comparison, etc.). - + (2) a syntactic construct that denotes an elementary calculation within - an expression. An operator normally consists of an operator sign and + an expression. Normally, an operator consists of an operator sign and one or more operands. In unary operators that have a single operand, the operator sign can be - placed either in front of or after an operand (*prefix* and *postfix* - unary operator respectively). + placed either in front of (*prefix* unary operator) or after an operand + (*postfix* unary operator). If both operands are available, then the operator sign can be placed between the two (*infix* binary operator). A conditional operator with three operands is called *ternary*. - Some operators have special notations. For example, an indexing operator - has a conventional form like a[i] while formally being a binary operator. + Some operators have special notations. For example, the indexing + operator, while formally being a binary operator, has a conventional + form like a[i]. - Some languages treat operators as *syntactic sugar*, i.e., a conventional - version of a more common construct or *function call*. Therefore, - an operator like ``a+b`` is conceptually handled as the call ``+(a,b)``, - where the operator sign plays the role of a function name, and the operands - are function call arguments. + Some languages treat operators as *syntactic sugar*---a conventional + version of a more common construct, i.e., *function call*. Therefore, + an operator like ``a+b`` is conceptually treated as the call ``+(a,b)``, + where the operator sign plays the role of the function name, and the + operands are function call arguments. operation sign -- a language token that signifies an operator and conventionally - denotes a usual mathematical operator, e.g., '``+``' for addition, - '``/``' for division, etc. However, some languages allow using + denotes a usual mathematical operator, for example, '``+``' for addition + operator, '``/``' for division, etc. However, some languages allow using identifiers to denote operators, and/or arbitrarily combining characters - that are not tokens in the alphabet of that language (i.e., operator - signs). + that are not tokens in the alphabet of that language, i.e., operator + signs. operand -- an argument of an operation. Syntactically, operands have the form of simple or qualified identifiers that refer to variables or members of structured objects. In turn, operands can be operators whose preferences - ('priorities') are higher than the preference of a given operator. + ('priorities') are higher than the preference of the given operator. operation - -- an informal notion that signifies an action or a process of operator + -- an informal notion that means an action or a process of operator evaluation. metasymbol @@ -398,20 +397,24 @@ as used in other languages, application areas, or industries. tokenization -- finding the longest sequence of characters that forms a valid token - (i.e., *establishing* a token) in the process of codebase reading by the - machine. + (i.e., establishing a token) in the process of codebase reading + by the machine. punctuator - -- a token that serves to separate, complete, or otherwise organize + -- a token that serves for separating, completing, or otherwise organizing program elements and parts: commas, semicolons, parentheses, square brackets, etc. literal - -- a representation of a value type. + -- a representation of a certain value type. comment -- a piece of text, insignificant for the syntactic grammar, that is - added to a stream in order to document and compliment source code. + added to the stream in order to document and compliment the source code. + + primitive type + -- numeric value types, character, and boolean value types whose names + are reserved, and cannot be used for user-defined type names. generic type -- a named type (class or interface) that has type parameters. @@ -426,11 +429,11 @@ as used in other languages, application areas, or industries. -- see *non-generic type*. type reference - -- references that refer to named types by specifying their type names + -- references that refer to named types by specifying their type names, and type arguments, where applicable, to be substituted for type parameters of the named type. - nullable type + nullable type -- a variable declared to have the value ``null``, or ``type T | null`` that can hold values of type ``T`` and its derived types. @@ -439,7 +442,7 @@ as used in other languages, application areas, or industries. simple name -- a name that consists of a single identifier. - + qualified name -- a name that consists of a sequence of identifiers separated with the token ‘``.``’. @@ -463,7 +466,7 @@ as used in other languages, application areas, or industries. nonterminal symbol -- a syntactically variable token that results from the successive - application of production rules. + application of the production rules. context-free grammar -- grammar in which the left-hand side of each production rule consists @@ -473,40 +476,41 @@ as used in other languages, application areas, or industries. -- see *nonterminal symbol*. keyword - -- one of *reserved words* that have their meanings permanently predefined - in the language. + -- one of the *reserved words* that have their meanings permanently + predefined in the language. variable -- see *variable declaration*. variable declaration - -- a declaration that introduces a new named variable to which a modifiable - initial value can be assigned. + -- a declaration that introduces a new named variable a modifiable + initial value can be assigned to. constant -- see *constant declaration*. constant declaration - -- declaration that introduces a new variable to which an immutable + -- a declaration that introduces a new variable to which an immutable initial value can be assigned only once at the time of instantiation. grammar - -- set of rules that describe what possible sequences of terminal and + -- a set of rules that describe what possible sequences of terminal and nonterminal symbols a programming language interprets as correct. Grammar is a range of productions. Each production comprises an abstract symbol (nonterminal) as its left-hand side, and a sequence of nonterminal and terminal symbols as its right-hand side. - Each production contains the characters ‘``:``’ as a separator between the - left- and right-hand sides, and ‘``;``’ as the end marker. + Each production has the character ‘``:``’ as a separator between the + left- and right-hand sides, and the character ‘``;``’ as the end + marker. production -- a sequence of terminal and nonterminal symbols that a programming language interprets as correct. white space - -- lexical input elements that separates tokens from one another in order - to improve the source code readability and avoid ambiguities. + -- one of lexical input elements that separate tokens from one another + in order to improve the source code readability and avoid ambiguities. widening conversion -- a conversion that causes no loss of information about the overall @@ -518,69 +522,76 @@ as used in other languages, application areas, or industries. and range. function types conversion - -- a conversion of one function type to another. + -- conversion of one function type to another. casting conversion - -- a conversion of an operand of a cast expression to an explicitly + -- conversion of an operand of a cast expression to an explicitly specified type. method - -- an ordered 3-tuple consisting of type parameters, argument types, and - return types. + -- ordered 3-tuple consisting of type parameters, argument types, + return type. abstract declaration - -- an ordinary interface method declaration that specifies the method’s name + -- ordinary interface method declaration that specifies the method’s name and signature. + overloading - -- a lanaguage feature that allows using a single name to call several - functions (in the general sense, i.e., including methods and constructors) - with different signatures and different bodies. + -- situation where different methods inherited or declared in the same + class, interface, function, or constructors have the same name, and their + signatures are not overload-equivalent. + + shadowing + -- situation where a derived class introduces a field with the same name as + that of its base class. + + package level scope + -- a name that is declared on the package level, and accessible throughout + the entire package, and in other packages if exported. module level scope - -- a name in the module level scope that is applicable to modules only, - and is accessible throughout the entire module and in other modules if - exported. + -- a name that is applicable to separate modules only. It is accessible + throughout the entire module and in other packages if exported. class level scope - -- a name that is declared inside a class, and is accessible inside the - class and sometimes outside that class by means of an access modifier, or - via a derived class). - + -- a name declared inside a class. It is accessible inside and sometimes---by + means of an access modifier, or via a derived class---outside that class. + interface level scope - -- a name declared inside an interface is considered to have interface - level scope, and is accessible inside and outside the interface. + -- a name declared inside an interface. It is accessible inside and outside + that interface. - function type parameter scope - -- a scope of a type parameter name in a function declaration. - It is identical to that entire declaration. + function parameter scope + -- the scope of a type parameter name in a function declaration. It is + identical to that entire declaration. method scope - -- a scope of a name declared immediately inside the body of a method + -- the scope of a name declared immediately inside the body of a method (function) declaration. Method scope is identical to the body of that - method (function) declaration from the place of declaration and up to + method (function) declaration from the place of declaration, and up to the end of the body. function scope -- same as *method scope*. type parameter scope - -- the scope of a name of a type parameter that is declared in a class or - an interface. Type parameter scope is identical to the entire declaration - (except static member declarations). + -- the name of a type parameter declared in a class or an interface. The + type parameter scope is identical to the entire declaration (except static + member declarations). static member - -- a class member that is not related to a particular class instance. - A static member can be used across an entire program by using + -- a class member that is not related to a particular class + instance. A static member can be used across an entire program by using a qualified name notation (qualification is the name of a class). linearization -- de-nesting of all nested types in a union type to present them in - the form of a flat line that includes no more union types. + the form of a flat line that has no more union types included. fit into (v.) - -- belong, or be implicitly convertible to an entity (see - :ref:`Widening Numeric Conversions`). + -- belong, or be implicitly convertible (see :ref:`Widening Numeric Conversions`) + to an entity. match (v.) -- correspond to an entity. @@ -597,20 +608,6 @@ as used in other languages, application areas, or industries. -- a component produced by, inherited from, and dependent from another component. - array length - -- the number of elements in a resizable array. - - resizable array type - -- a built-in type that consists of more than one element, and can have - the number of constituent elements changed at runtime. - - fixed-size array type - -- a built-in type that consists of more than one element, and has its - length set only once to achieve a better performance. - - array type - -- a type that consists of more than one element. - .. raw:: pdf PageBreak diff --git a/static_core/plugins/ets/doc/spec/20_implementation.rst b/static_core/plugins/ets/doc/spec/20_implementation.rst index 99e6131104..1ade2f570c 100644 --- a/static_core/plugins/ets/doc/spec/20_implementation.rst +++ b/static_core/plugins/ets/doc/spec/20_implementation.rst @@ -33,11 +33,13 @@ If an import path ``/name`` is resolved to a path in the folder '*name*', then the compiler executes the following lookup sequence: - If the folder contains the file ``index.ets``, then this file is imported - as a module written in |LANG|; + as a separate module written in |LANG|; - If the folder contains the file ``index.ts``, then this file is imported - as a module written in |TS|. + as a separate module written in |TS|; +- Otherwise, the compiler imports the package constituted by files + ``name/*.ets``. .. index:: implementation @@ -48,6 +50,8 @@ If an import path ``/name`` is resolved to a path in the folder compiler lookup sequence module + separate module + package | @@ -59,19 +63,22 @@ Compilation Units in Host System .. meta: frontend_status: Done -Modules and libraries are created and stored in a manner that is -determined by the host system. The exact manner modules and libraries are stored -in a file system is determined by a particular implementation of the compiler -and other tools. +Modules and packages are created and stored in a manner determined by the +host system. The exact manner modules and packages are stored in a file +system is determined by a particular implementation of the compiler and other +tools. -A simple implementation is summarized as follows: +A simple implementation is summarized in the following example: -- Module is stored in a single file. +- Module (package module) is stored in a single file. -- Folder that can store several modules (one source file to contain a module). +- All package modules are stored in files of the same folder. -- Library description files are named "lib.ets". Source files are stored in - folders with a predefined structure. +- Folder that can store several separate modules (one source file to contain a + separate module or a package module). + +- Folder that stores a single package must not contain separate module + files or package modules from other packages. .. index:: compilation unit @@ -79,18 +86,21 @@ A simple implementation is summarized as follows: storage storage management module + package + separate module file system implementation + package module file folder source file | -.. _Getting Type Via Reflection: +.. _How to get type via reflection: -Getting Type Via Reflection -*************************** +How to Get Type Via Reflection +****************************** .. meta: frontend_status: None @@ -98,13 +108,14 @@ Getting Type Via Reflection The |LANG| standard library (see :ref:`Standard Library`) provides a pseudogeneric static method ``Type.from()`` to be processed by the compiler in a specific way during compilation. A call to this method allows getting a -value of type ``Type`` that represents type ``T`` at runtime. +value of type ``Type`` that represents type ``T`` at runtime. .. code-block:: typescript :linenos: let type_of_int: Type = Type.from() - let type_of_string: Type = Type.from() + let type_of_string: Type = Type.from() + let type_of_array_of_int: Type = Type.from() let type_of_number: Type = Type.from() let type_of_Object: Type = Type.from() @@ -124,40 +135,8 @@ value of type ``Type`` that represents type ``T`` at runtime. variable runtime -If type ``T`` used as type argument is affected by :ref:`Type Erasure`, then -the function returns value of type ``Type`` for *effective type* of ``T`` -but not for ``T`` itself: - -.. code-block:: typescript - :linenos: - - let type_of_array1: Type = Type.from() // value of Type for Array<> - let type_of_array2: Type = Type.from>() // the same Type value - -| - -.. _Ensuring Module Initialization: - -Ensuring Module Initialization -****************************** - -.. meta: - frontend_status: None - -The |LANG| standard library (see :ref:`Standard Library`) provides a top-level -function ``initModule()`` with one parameter of ``string`` type. A call to this -function ensures that the module referred by the argument is available and its -initialization (see :ref:`Static Initialization`) is performed. An argument -should be a string literal otherwise a :index:`compile-time error` occurs. - -The current module has no access to the exported declarations of the module -referred by the argument. If such module is not available or any other runtime -issue occurs then a proper exception is thrown. - -.. code-block:: typescript - :linenos: - - initModule ("@ohos/library/src/main/ets/pages/Index") +There are some restrictions on type ``T``, see :ref:`Standard Library` for +details. | @@ -228,62 +207,6 @@ sufficient to perform it. object available memory -| - -.. _Make a Bridge Method for Overriding Method: - -Make a Bridge Method for Overriding Method -****************************************** - -.. meta: - frontend_status: None - -Situations are possible where the compiler must create an additional bridge -method to provide a type-safe call for the overriding method in a subclass of -a generic class. Overriding is based on *erased types* (see :ref:`Type Erasure`). -The situation is represented in the following example: - -.. code-block:: typescript - :linenos: - - class B { - foo(p: T) {} - } - class D extends B { - foo(p: string) {} // original overriding method - } - -In the example above, the compiler generates a *bridge* method with the name -``foo`` and signature ``(p: Object)``. The *bridge* method acts as follows: - -- Behaves as an ordinary method in most cases, but is not accessible from - the source code, and does not participate in overloading; - -- Applies narrowing to argument types inside its body to match the parameter - types of the original method, and invokes the original method. - -The use of the *bridge* method is represented by the following code: - -.. code-block:: typescript - :linenos: - - let d = new D() - d.foo("aa") // original method from 'D' is called - let b: B = d - b.foo("aa") // bridge method with signature (p: Object) is called - // its body calls original method, using (p as string) to check the type of the argument - -More formally, a bridge method ``m(C``:sub:`1` ``, ..., C``:sub:`n` ``)`` -is created in ``D``, in the following cases: - -- Class ``B`` comprises type parameters - ``B``; -- Subclass ``D`` is defined as ``class D extends B``; -- Method ``m`` of class ``D`` overrides ``m`` from ``B`` with type parameters in signature, - e.g., ``(T``:sub:`1` ``, ..., T``:sub:`n` ``)``; -- Signature of the overridden method ``m`` is not ``(C``:sub:`1` ``, ..., C``:sub:`n` ``)``. - - .. raw:: pdf PageBreak diff --git a/static_core/plugins/ets/doc/spec/21_grammar.rst b/static_core/plugins/ets/doc/spec/21_grammar.rst index 5ede34618a..175d671871 100644 --- a/static_core/plugins/ets/doc/spec/21_grammar.rst +++ b/static_core/plugins/ets/doc/spec/21_grammar.rst @@ -21,6 +21,8 @@ Grammar Summary identifier: Identifier; + indexType: 'number'; + type: annotationUsage? ( typeReference @@ -37,6 +39,7 @@ Grammar Summary typeReference: typeReferencePart ('.' typeReferencePart)* + | identifier '!' ; typeReferencePart: @@ -47,11 +50,6 @@ Grammar Summary type '[' ']' ; -.. functionType: - typeParameters? '(' ftParameterList? ')' ftReturnType - ; - - functionType: '(' ftParameterList? ')' ftReturnType ; @@ -160,7 +158,7 @@ Grammar Summary ; optionalParameter: - identifier (':' type)? '=' expression + identifier ':' type '=' expression | identifier '?' ':' type ; @@ -192,11 +190,6 @@ Grammar Summary '<' type (',' type)* '>' ; - overloadFunctionDeclaration: - 'overload' identifier '{' qualifiedName (',' qualifiedName)* ','? '}' - ; - - expression: primaryExpression | castExpression @@ -435,7 +428,7 @@ Grammar Summary ; lambdaExpression: - annotationUsage? 'async'? lambdaSignature '=>' lambdaBody + annotationUsage? ('async'|typeParameters)? lambdaSignature '=>' lambdaBody ; lambdaBody: @@ -444,7 +437,7 @@ Grammar Summary lambdaSignature: '(' lambdaParameterList? ')' returnType? - | identifier + | identifier ; lambdaParameterList: @@ -453,7 +446,7 @@ Grammar Summary ; lambdaParameter: - annotationUsage? (lambdaRequiredParameter | lambdaOptionalParameter) + annotationUsage? (lambdaRequiredParameter | lambdaOptionalParameter) ; lambdaRequiredParameter: @@ -584,21 +577,28 @@ Grammar Summary ; tryStatement: - 'try' block catchClause? finallyClause? + 'try' block catchClauses finallyClause? + ; + + catchClauses: + typedCatchClause* catchClause? ; catchClause: 'catch' '(' identifier ')' block ; + typedCatchClause: + 'catch' '(' identifier ':' typeReference ')' block + ; + finallyClause: 'finally' block ; classDeclaration: classModifier? ('class' | 'struct') identifier typeParameters? - classExtendsClause? implementsClause? - classMembers + classExtendsClause? implementsClause? classBody ; classModifier: @@ -617,39 +617,31 @@ Grammar Summary typeReference (',' typeReference)* ; - classMembers: + classBody: '{' - classMember* staticBlock? classMember* + classBodyDeclaration* globalInitializer? classBodyDeclaration* '}' ; - classMember: + classBodyDeclaration: annotationUsage? accessModifier? ( constructorDeclaration - | constructorWithOverloadSignatures - | overloadConstructorDeclaration | classFieldDeclaration | classMethodDeclaration - | classMethodWithOverloadSignatures - | overloadMethodDeclaration | classAccessorDeclaration ) ; - - staticBlock: - 'static' block - ; - accessModifier: 'private' + | 'internal' | 'protected' | 'public' ; classFieldDeclaration: - fieldModifier* + fieldModifier* identifier ( '?'? ':' type initializer? | '?'? initializer @@ -674,22 +666,14 @@ Grammar Summary | 'async' ; - overloadMethodDeclaration: - overloadMethodModifier* - 'overload' identifier '{' identifier (',' identifier)* ','? '}' - ; - - overloadMethodModifier: 'static' | 'async'; - - classAccessorDeclaration: - classAccessorModifier* - ( 'get' identifier '(' ')' returnType? block? + accessorModifier* + ( 'get' identifier '(' ')' returnType block? | 'set' identifier '(' parameter ')' block? ) ; - classAccessorModifier: + accessorModifier: 'abstract' | 'static' | 'final' @@ -700,15 +684,11 @@ Grammar Summary 'constructor' parameters constructorBody ; + constructorBody: '{' statement* '}' ; - overloadConstructorDeclaration: - 'overload' 'constructor' '{' identifier (',' identifier)* ','? '}' - ; - - interfaceDeclaration: 'interface' identifier typeParameters? interfaceExtendsClause? '{' interfaceMember* '}' @@ -718,11 +698,10 @@ Grammar Summary 'extends' interfaceTypeList ; - interfaceMember - : annotationUsage? + interfaceMember: + annotationUsage? ( interfaceProperty | interfaceMethodDeclaration - | overloadInterfaceMethodDeclaration ) ; @@ -737,10 +716,6 @@ Grammar Summary | interfaceDefaultMethodDeclaration ; - overloadInterfaceMethodDeclaration: - 'overload' identifier '{' identifier (',' identifier)* ','? '}' - ; - enumDeclaration: 'const'? 'enum' identifier (':' type)? '{' enumConstantList? '}' ; @@ -754,17 +729,17 @@ Grammar Summary ; compilationUnit: - moduleDeclaration + separateModuleDeclaration + | packageDeclaration | declarationModule - | libraryDescription ; - moduleDeclaration: - importDirective* (topDeclaration | topLevelStatements | exportDirective)* + packageDeclaration: + packageModule+ ; - libraryDescription: - (importDirective|reExportDirective)* + separateModuleDeclaration: + importDirective* (topDeclaration | topLevelStatements | exportDirective)* ; importDirective: @@ -786,7 +761,7 @@ Grammar Summary ; defaultBinding: - 'type'? identifier + identifier ; selectiveBindings: @@ -794,7 +769,7 @@ Grammar Summary ; nameBinding: - `type`? identifier bindingAlias? + identifier bindingAlias? | 'default' 'as' identifier ; @@ -817,24 +792,16 @@ Grammar Summary | variableDeclarations | constantDeclarations | functionDeclaration - | functionWithOverloadSignatures - | overloadFunctionDeclaration + | functionWithReceiverDeclaration + | accessorWithReceiverDeclaration | namespaceDeclaration | ambientDeclaration | annotationDeclaration - | accessorDeclaration - | functionWithReceiverDeclaration - | accessorWithReceiverDeclaration ) ; namespaceDeclaration: - 'namespace' qualifiedName - '{' namespaceMember* staticBlock? namespaceMember* '}' - ; - - namespaceMember: - topDeclaration | exportDirective + 'namespace' qualifiedName '{' topDeclaration* '}' ; exportDirective: @@ -850,7 +817,7 @@ Grammar Summary singleExportDirective: 'export' - ( `type`? identifier + ( identifier | 'default' (expression | identifier) | '{' identifier 'as' 'default' '}' ) @@ -861,9 +828,9 @@ Grammar Summary ; reExportDirective: - 'export' - ('*' bindingAlias? - | selectiveBindings + 'export' + ('*' bindingAlias? + | selectiveBindings | '{' 'default' bindingAlias? '}' ) 'from' importPath @@ -881,7 +848,6 @@ Grammar Summary | ambientInterfaceDeclaration | ambientNamespaceDeclaration | ambientAnnotationDeclaration - | ambientAccessorDeclaration | 'const'? enumDeclaration | typeAlias ) @@ -906,15 +872,15 @@ Grammar Summary ambientClassDeclaration: 'class'|'struct' identifier typeParameters? classExtendsClause? implementsClause? - '{' ambientClassMember* '}' + '{' ambientClassBodyDeclaration* '}' ; - ambientClassMember: + ambientClassBodyDeclaration: ambientAccessModifier? ( ambientFieldDeclaration | ambientConstructorDeclaration | ambientMethodDeclaration - | ambientClassAccessorDeclaration + | ambientAccessorDeclaration | ambientIndexerDeclaration | ambientCallSignatureDeclaration | ambientIterableDeclaration @@ -934,7 +900,7 @@ Grammar Summary ; ambientConstructorDeclaration: - 'constructor' parameters + 'constructor' parameters ; ambientMethodDeclaration: @@ -945,7 +911,7 @@ Grammar Summary 'static' ; - ambientClassAccessorDeclaration: + ambientAccessorDeclaration: ambientMethodModifier* ( 'get' identifier '(' ')' returnType | 'set' identifier '(' parameter ')' @@ -953,7 +919,7 @@ Grammar Summary ; ambientIndexerDeclaration: - 'readonly'? '[' identifier ':' type ']' returnType + 'readonly'? '[' identifier ':' indexType ']' returnType ; ambientCallSignatureDeclaration: @@ -970,19 +936,14 @@ Grammar Summary '{' ambientInterfaceMember* '}' ; - ambientInterfaceMember : interfaceProperty - | ambientInterfaceMethodDeclaration + | interfaceMethodDeclaration | ambientIndexerDeclaration + | ambientCallSignatureDeclaration | ambientIterableDeclaration ; - ambientInterfaceMethodDeclaration: - 'default'? identifier signature - ; - - ambientNamespaceDeclaration: 'namespace' qualifiedName '{' ambientNamespaceElement* '}' ; @@ -998,18 +959,11 @@ Grammar Summary | ambientClassDeclaration | ambientInterfaceDeclaration | ambientNamespaceDeclaration - | ambientAccessorDeclaration | 'const'? enumDeclaration | typeAlias ) ; - ambientAccessorDeclaration: - ( 'get' identifier '(' ')' returnType - | 'set' identifier '(' parameter ')' - ) - ; - newArrayInstance: 'new' arrayElementType dimensionExpression+ (arrayElement)? ; @@ -1036,7 +990,7 @@ Grammar Summary ; signatureWithReceiver: - '(' receiverParameter (', ' parameterList)? ')' returnType? + '(' receiverParameter (', ' parameterList)? ')' returnType? ; receiverParameter: @@ -1053,8 +1007,7 @@ Grammar Summary ; lambdaExpressionWithReceiver: - annotationUsage? - '(' receiverParameter (',' lambdaParameterList)? ')' + annotationUsage? typeParameters? '(' receiverParameter (',' lambdaParameterList)? ')' returnType? '=>' lambdaBody ; @@ -1072,6 +1025,47 @@ Grammar Summary 'await' expression ; + packageModule: + packageHeader packageModuleDeclaration + ; + + packageHeader: + 'package' qualifiedName + ; + + + packageModuleDeclaration: + importDirective* packageModuleDeclaration* + ; + + packageModuleDeclaration: + packageTopDeclaration | initializerBlock + ; + + packageTopDeclaration: + ('export' 'default'?)? + annotationUsage? + ( typeDeclaration + | variableDeclarations + | packageConstantDeclarations + | functionDeclaration + | functionWithReceiverDeclaration + | accessorWithReceiverDeclaration + | namespaceDeclaration + | ambientDeclaration + ) + ; + + packageConstantDeclaration: + identifier ':' type initializer? + | identifier initializer + ; + + + initializerBlock: + 'static' block + ; + annotationDeclaration: '@interface' identifier '{' annotationField* '}' ; @@ -1305,23 +1299,23 @@ Grammar Summary ~["'\\\r\n] ('*'|'+'|'?'|('{' DecimalIntegerLiteral (',' DecimalIntegerLiteral? )? '}'))? ; - RegexSpecialForms: - CharacterClass ('(' '?='|'?!' CharacterClasse ')')? + RegexSpecialForms: + CharacterClass ('(' '?='|'?!' CharacterClasse ')')? ('(' '?<='|'?') - | 'u' HexDigit HexDigit HexDigit HexDigit + | 'u' HexDigit HexDigit HexDigit HexDigit | 'u{' HexDigit HexDigit HexDigit HexDigit HexDigit? '}' - | '[\b]' + | '[\b]' | (RegexCharacter '|' RegexCharacter) ; RegExFlags: - 'g'? 'i'? 'm'? 's'? 'u'? 'v'? 'y'? + 'g'? 'i'? 'm'? 's'? 'u'? 'v'? 'y'? ; diff --git a/static_core/plugins/ets/doc/spec/2_lexical.rst b/static_core/plugins/ets/doc/spec/2_lexical.rst index ffb2573424..0e98ca5273 100644 --- a/static_core/plugins/ets/doc/spec/2_lexical.rst +++ b/static_core/plugins/ets/doc/spec/2_lexical.rst @@ -18,7 +18,8 @@ Lexical Elements .. meta: frontend_status: Done -This chapter discusses the lexical structure of the |LANG| programming language. +This chapter discusses the lexical structure of the |LANG| programming language, +and the analytical conventions. | @@ -143,9 +144,6 @@ separators is considered a single separator. line separator character paragraph separator character -Line separators are often treated as white spaces, except where line -separators have special meanings. See :ref:`Semicolons` for more details. - | .. _Tokens: @@ -171,6 +169,9 @@ form a valid token. Tokens are separated by white spaces (see :ref:`Operators and Punctuators`). White spaces are ignored by the syntactic grammar (see :ref:`Grammar Summary`). +Line separators are often treated as white spaces, except where line +separators have special meanings. See :ref:`Semicolons` for more details. + .. index:: line separator lexical input element @@ -288,11 +289,12 @@ Keywords .. meta: frontend_status: Done -*Keywords* are reserved words with meanings permanently predefined in |LANG|. -Keywords are case-sensitive, and their exact spelling is presented in the -following four tables. The kinds of keywords are discussed below. +*Keywords* are reserved words with permanently predefined meanings +in |LANG|. Keywords are case-sensitive, +see the exact spelling in the tables below. +Kinds of keywords are discussed below. -1. The following *hard keywords* are reserved in any context, and +1. The following keywords are reserved in any context (*hard keywords*), and cannot be used as identifiers: .. index:: @@ -306,35 +308,30 @@ cannot be used as identifiers: +--------------------+-------------------+------------------+------------------+ | | | | | +====================+===================+==================+==================+ -| ``abstract`` | ``enum`` | ``let`` | ``this`` | +| ``abstract`` | ``else`` | ``internal`` | ``switch`` | +--------------------+-------------------+------------------+------------------+ -| ``as`` | ``export`` | ``native`` | ``throw`` | +| ``as`` | ``enum`` | ``let`` | ``super`` | +--------------------+-------------------+------------------+------------------+ -| ``async`` | ``extends`` | ``new`` | ``true`` | +| ``async`` | ``export`` | ``native`` | ``this`` | +--------------------+-------------------+------------------+------------------+ -| ``await`` | ``false`` | ``null`` | ``try`` | +| ``await`` | ``extends`` | ``new`` | ``throw`` | +--------------------+-------------------+------------------+------------------+ -| ``break`` | ``final`` | ``overload`` | ``typeof`` | -+--------------------+-------------------+-------------+----+------------------+ -| ``case`` | ``for`` | ``override`` | ``undefined`` | -+--------------------+----+--------------+------------------+------------------+ -| ``class`` | ``function`` | ``private`` | ``while`` | +| ``break`` | ``false`` | ``null`` | ``true`` | +--------------------+-------------------+------------------+------------------+ -| ``const`` | ``if`` | ``protected`` | | +| ``case`` | ``final`` | ``override`` | ``try`` | +--------------------+-------------------+------------------+------------------+ -| ``constructor`` | ``implements`` | ``public`` | | +| ``class`` | ``for`` | ``package`` | ``undefined`` | +--------------------+-------------------+------------------+------------------+ -| ``continue`` | ``import`` | ``return`` | | +| ``const`` | ``function`` | ``private`` | ``while`` | +--------------------+-------------------+------------------+------------------+ -| ``default`` | ``in`` | ``static`` | | +| ``constructor`` | ``if`` | ``protected`` | | +--------------------+-------------------+------------------+------------------+ -| ``do`` | ``instanceof`` | ``switch`` | | +| ``continue`` | ``implements`` | ``public`` | | +--------------------+-------------------+------------------+------------------+ -| ``else`` | ``interface`` | ``super`` | | +| ``default`` | ``import`` | ``return`` | | ++--------------------+-------------------+------------------+------------------+ +| ``do`` | ``interface`` | ``static`` | | +--------------------+-------------------+------------------+------------------+ - - -| 2. Names and aliases of predefined types are *hard keywords*, and cannot be used as identifiers: @@ -371,42 +368,40 @@ used as identifiers: | ``void`` | | +---------------+---------------+ -3. The following *soft keywords* have special meaning in certain contexts but -are valid identifiers elsewhere: +3. The following words have special meaning in certain contexts (*soft +keywords*) but are valid identifiers elsewhere: .. index:: keyword soft keyword identifier -+--------------------+--------------------+ -| | | -+====================+====================+ -| ``catch`` | ``namespace`` | -+--------------------+--------------------+ -| ``declare`` | ``of`` | -+--------------------+--------------------+ -| ``finally`` | ``out`` | -+--------------------+--------------------+ -| ``from`` | ``readonly`` | -+--------------------+--------------------+ -| ``get`` | ``set`` | -+--------------------+--------------------+ -| ``keyof`` | ``type`` | -+--------------------+--------------------+ ++--------------------+--------------------+--------------------+ +| | | | ++====================+====================+====================+ +| ``catch`` | ``in`` | ``readonly`` | ++--------------------+--------------------+--------------------+ +| ``declare`` | ``instanceof`` | ``set`` | ++--------------------+--------------------+--------------------+ +| ``finally`` | ``namespace`` | ``type`` | ++--------------------+--------------------+--------------------+ +| ``from`` | ``of`` | ``typeof`` | ++--------------------+--------------------+--------------------+ +| ``get`` | ``out`` | | ++--------------------+--------------------+--------------------+ 4. The following identifiers are also treated as *soft keywords* reserved for -the future use, or currently used in |TS|: +the future use (or used in |TS|): .. index:: identifier soft keyword -+---------------+---------------+---------------+----------------+ -| | | | | -+===============+===============+===============+================+ -| ``is`` | ``struct`` | ``var`` | ``yield`` | -+---------------+---------------+---------------+----------------+ ++---------------+---------------+---------------+---------------+----------------+ +| | | | | | ++===============+===============+===============+===============+================+ +| ``keyof`` | ``is`` | ``struct`` | ``var`` | ``yield`` | ++---------------+---------------+---------------+---------------+----------------+ | @@ -506,7 +501,7 @@ Numeric Literals .. meta: frontend_status: Done -*Numeric literals* include integer and floating-point literals. +Integer and floating-point literals are numeric literals. | @@ -593,8 +588,8 @@ Integral literals with different radices are represented by the examples below: 0o777 // octal literal 0b101 // binary literal -The underscore character '``_``' between successive -digits can be used to improve readability. +The underscore character '``_``' after the radix prefix or between successive +digits can be used to denote an integer literal and improve readability. Underscore characters in such positions do not change the values of literals. However, the underscore character must be neither the very first nor the very last symbol of an integer literal. @@ -606,13 +601,22 @@ last symbol of an integer literal. integer underscore character -Integer literals are of ``int`` or ``long`` types as follows: +Integer literals are of integer types that match literals as follows: -- ``int`` if the literal value can be represented - by a non-negative 32-bit number, i.e., the value is in the - range 0..max(int); or +- For *decimal* integer literals -- ``long`` otherwise. + + ``int`` if the literal value can be represented + by a non-negative 32-bit number, i.e., the value is in the + range 0..max(int); or + + + ``long`` otherwise. + +- For *hex*, *octal*, and *binary* integer literals + + + ``int`` if bit representation of the value fits in 32-bits, i.e., the value + is in the range 0..max(unsigned 32-bit integer); or + + + ``long`` otherwise. A :index:`compile-time error` occurs if an integer literal value is too large for the values of type ``long``. The concept is represented by the @@ -622,13 +626,12 @@ examples below: :linenos: // literals of type int: - 0 1 0x7F - 0x7FFF_FFFF // max(int) + 0x7FFFFFFF // max(int) + 0x80000000 // min(int) // literals of type long: - 0x8000_0000 0x7FFF_FFFF_1 9223372036854775807 // max(long) @@ -640,6 +643,7 @@ examples below: integer literal int long + char | @@ -687,11 +691,11 @@ The concept is represented by the examples below: 1e10 1e10f -The underscore character '``_``' between successive -digits can be used to improve readability. +The underscore character '``_``' after the radix prefix or between successive +digits can be used to denote a floating-point literal and improve readability. Underscore characters in such positions do not change the values of literals. However, the underscore character must be neither the very first nor the very -last symbol of a literal. +last symbol of an integer literal. Floating-point literals are of floating-point types that match literals as follows: @@ -727,9 +731,9 @@ Bigint Literals frontend_status: Partly todo: hex, octal, binary literals -*Bigint literals* represent integer numbers with an unlimited number of digits. +*Bigint literals* represent integer numbers with unlimited number of digits. -*Bigint literals* are always of type ``bigint`` (see :ref:`Type bigint`). +*Bigint literals* are always of the ``bigint`` type (see :ref:`Type bigint`). A ``bigint`` literal is an *integer literal* followed by the symbol '``n``': @@ -737,7 +741,7 @@ A ``bigint`` literal is an *integer literal* followed by the symbol '``n``': BigIntLiteral: IntegerLiteral 'n'; -The concept is represented by the examples below: +The concept is presented by the examples below: .. code-block:: typescript @@ -746,14 +750,14 @@ The concept is represented by the examples below: -153n // negative bigint literal 0xBAD_3n // bigint literal in hexadecimal notation -The underscore character '``_``' between successive digits can be used to -improve readability. Underscore characters in +The underscore character '``_``' used between successive digits can be used to +denote a ``bigint`` literal and improve readability. Underscore characters in such positions do not change the values of literals. However, the underscore character must be neither the very first nor the very last symbol of a ``bigint`` literal. Strings that represent numbers or any integer value can be converted to -``bigint`` by using built-in functions as follows: +``bigint`` by using built-in functions: .. code-block-meta: skip @@ -772,9 +776,9 @@ Strings that represent numbers or any integer value can be converted to number integer value -Two methods allow taking *bitsCount* lower bits of a ``bigint`` number and -return them as a result. Signed and unsigned versions are both possible as -follows: +Two methods allow taking *bitsCount* lower bits of a +``bigint`` number and return them as a result. Signed and unsigned versions +are both possible as seen below: .. code-block:: typescript @@ -906,7 +910,7 @@ some others. An escape sequence always starts with the backslash character a bounded Unicode escape sequence like ``\u{5c}``), and - any single character except digits from '1' to '9', and characters '``x``', - '``u``', '``CR``', and '``LF``'. + '``u``', '``CR``' and '``LF``'. .. index:: string literal @@ -984,9 +988,9 @@ An example of a multiline string is provided below: which should be enclosed in backticks` -*MultilineString* literals are of the literal type that corresponds to a literal. -If an operator is applied to a literal, then the literal type is replaced for -``string`` (see :ref:`Type String`). +*MultilineString* literals are of the literal type that corresponds to the literal. +If an operator is applied to the literal, then the literal type is replaced +for ``string`` (see :ref:`Type String`). .. index:: multiline string @@ -1004,11 +1008,10 @@ Regex Literal .. meta: frontend_status: None -*Regex literals* can contain the mandatory regex part and optional flags: +*Regex literals* can contain mandatory regex part and optional flags: .. index:: regex literal - optional flag .. code-block:: abnf @@ -1054,8 +1057,8 @@ Regex Literal 'g'? 'i'? 'm'? 's'? 'u'? 'v'? 'y'? ; -Regex flags can be put in any order. However, a duplication of the regex flag -causes a :index:`compile-time error`. +Regex flags may be put in any order, but duplication leads to a +:index:`compile-time error`. An example of regex literals is provided below: @@ -1065,8 +1068,9 @@ An example of regex literals is provided below: let regex1 = /abc/ let regex2 = /ab+c/gi -*Regex literal* is semantically equivalent to the creation of an object of -*RegExp* type that is a part of the :ref:`Standard Library`. + +Semantically *regex literal* is equivalant to creation of an object of *RegExp* +type which is a part of the standard library (see :ref:`Standard Library`) .. code-block:: typescript :linenos: @@ -1074,8 +1078,8 @@ An example of regex literals is provided below: let regex1 = /abc/ let regex2 = new RegExp ("abc") -The semantics of *regex literals* supported by |LANG| and the semantics of -regular expressions in |JS| are the same. +The |LANG| supports the same semantics of *regex literals* as +semantics of |JS| regular expresions. | @@ -1145,8 +1149,8 @@ Comments the source code. Comments are insignificant for the syntactic grammar (see :ref:`Grammar Summary`). -*Line comments* begin with the sequence of characters '``//``' as in the -example below, and end with the line separator character. Any character +*Line comments* begin with the sequence of characters '``//``' (as seen in the +example below) and end with the line separator character. Any character or sequence of characters between them is allowed but ignored. .. code-block:: typescript @@ -1154,8 +1158,8 @@ or sequence of characters between them is allowed but ignored. // This is a line comment -*Multiline comments* begin with the sequence of characters '``\*``' as -in the example below, and end with the first subsequent sequence of characters +*Multiline comments* begin with the sequence of characters '``\*``' (as seen +in the example below) and end with the first subsequent sequence of characters '``*/``'. Any character or sequence of characters between them is allowed but ignored. @@ -1184,8 +1188,8 @@ Semicolons frontend_status: Done Declarations and statements are usually terminated by a line separator (see -:ref:`Line Separators`). A semicolon must be used in some cases to separate -syntax productions written in one line or to avoid ambiguity. +:ref:`Line Separators`). In some cases, a semicolon must be used to separate +syntax productions written in one line, or to avoid ambiguity. .. index:: declaration diff --git a/static_core/plugins/ets/doc/spec/3_types.rst b/static_core/plugins/ets/doc/spec/3_types.rst index 10c442911e..09c3fffdfe 100644 --- a/static_core/plugins/ets/doc/spec/3_types.rst +++ b/static_core/plugins/ets/doc/spec/3_types.rst @@ -20,7 +20,7 @@ Types This chapter introduces the notion of type that is one of the fundamental concepts of |LANG| and other programming languages. -Type classification as accepted in |LANG| is discussed below along +Type classification as accepted in |LANG| is discussed below---along with all aspects of using types in programs written in the language. The type of an entity is conventionally defined as the set of *values* the @@ -37,8 +37,8 @@ The types integral to |LANG| are called *predefined types* (see The types introduced, declared, and defined by a developer are called *user-defined types*. -All *user-defined types* must have complete type declarations presented as -source code in |LANG|. +All *user-defined types* must always have complete type definitions +presented as source code in |LANG|. .. index:: statically typed language @@ -48,33 +48,30 @@ source code in |LANG|. compiler predefined type user-defined type - type declaration + type definition source code - value -|LANG| types are summarized in the table below: +All |LANG| types are summarized in the table below: ========================= ========================= Predefined Types User-Defined Types ========================= ========================= - ``byte``, ``short``, class types, - ``int``, ``long``, interface types, - ``float``, ``double``, array types, - ``number``, fixed array types, - ``boolean``, ``char``, tuple types, + ``number``, ``byte``, class types, + ``short``, ``int``, interface types, + ``long``, ``float``, array types, + ``double``, ``char``, fixed array types, + ``boolean``, tuple types, ``string``, union types, ``bigint``, literal types, - ``Any``, ``Object``, function types, + ``Object``, function types, ``never``, ``void``, type parameters - ``undefined``, ``null``, enumeration types - ``Array`` or ``T[]``, - ``FixedArray`` + ``undefined``, ``null`` enumeration types ========================= ========================= **Note**. Type ``number`` is an alias to ``double``. @@ -130,8 +127,6 @@ Using primary names of *predefined types* is recommended in all cases. .. index:: predefined type primary name - alias - compatibility | @@ -157,18 +152,7 @@ Predefined types include the following: - :ref:`Array Types` (``Array`` or ``T[]`` or ``FixedArray``). .. index:: - value - type - predefined type - any - Object - never - void - undefined - null - string - bigint - array + value type | @@ -211,14 +195,14 @@ Using Types .. meta: frontend_status: Done -Source code can refer to a type by using the following: +A type can be referred to in source code by the following: - Type reference for: + :ref:`Named Types`, or + Type aliases (see :ref:`Type Alias Declaration`); -- In-place type declaration for: +- In-place type definition for: + :ref:`Array Types`, + :ref:`Tuple Types`, @@ -231,7 +215,7 @@ Source code can refer to a type by using the following: .. index:: named type type alias - in-place type declaration + in-place type definition type reference array type function type @@ -263,39 +247,27 @@ The usage of annotations is discussed in :ref:`Using Annotations`. Types with the prefix ``readonly`` are discussed in :ref:`Readonly Array Types` and :ref:`Readonly Tuple Types`. -The usage of types is represented by the example below: +The usage of types is presented by the example below: .. code-block:: typescript :linenos: - let n: number // using identifier as a predefined value type name + let n: number // using identifier as a primitive value type name let o: Object // using identifier as a predefined class type name let a: number[] // using array type let t: [number, number] // using tuple type - let f: ()=>number // using function type + let f: ()=>number // using function type let u: number|string // using union type let l: "xyz" // using string literal type + let k: keyof ("A"|"Z") // using string keyof type - class C { n = 1; s = "aa"} - let k: keyof C // using keyof to build union type - - -.. let f1: ()=>number // using function type - let f2: (p: T)=>T // using generic function type - - -Parentheses are used to specify the required type structure if the type is a -combination of array, function, or union types. Without parentheses, the symbol -'``|``' that constructs a union type has the lowest precedence as represented -by the example below: +Parentheses in types (where a type is a combination of array, function, or +union types) are used to specify the required type structure. +Without parentheses, the symbol '``|``' that constructs a union type +has the lowest precedence as presented in the following example: .. index:: - annotation - prefix readonly - readonly type array type - tuple type - identifier function type union type type structure @@ -313,14 +285,9 @@ by the example below: a = null // ok, a is nullable // an array with elements whose types are string or null: - let b1: (string | null)[] - b1 = null // error, b1 is an array and is not nullable - b1 = ["aa", null] // ok - - // string or array of null elements: - let b2: string | null[] - b2 = null // error, b2 - string or array of nulls - not nullable - b2 = [null, null] // ok + let b: (string | null)[] + b = null // error, b is an array and is not nullable + b = ["aa", null] // ok // a function type that returns string or null let c: () => string | null @@ -333,7 +300,7 @@ by the example below: d = (): string => { return "hi" } // ok -If an annotation is used in front of type in parentheses, then the parentheses +If annotation is used in front of type in parentheses, then the parentheses become a mandatory part of the annotation to prevent ambiguity. .. code-block:: typescript @@ -342,14 +309,6 @@ become a mandatory part of the annotation to prevent ambiguity. let var_name1: @my_annotation() (A|B) // OK let var_name2: @my_annotation (A|B) // Compile-time error -.. index:: - nullable array - string - null - parenthesis - -| - .. _Named Types: Named Types @@ -358,8 +317,8 @@ Named Types .. meta: frontend_status: Done -*Named types* are classes, interfaces, enumerations, aliases, type parameters, -and predefined types (see :ref:`Predefined Types`), except built-in arrays. +Classes, interfaces, enumerations, aliases, type parameters, and predefined +types (see :ref:`Predefined Types`), except built-in arrays, are named types. Other types (i.e., array, function, and union types) are anonymous unless aliased. Respective named types are introduced by the following: @@ -379,17 +338,6 @@ substituted for the type parameters of a named type. .. index:: named type - class - interface - enumeration - alias - type parameter - prefedined type - function - array - union type - built-in array - anonymous type class declaration interface declaration enumeration declaration @@ -400,6 +348,7 @@ substituted for the type parameters of a named type. non-generic type type argument type parameter + named type | @@ -411,14 +360,17 @@ Type References .. meta: frontend_status: Done -*Type reference* refers to a type by one of the following: +A type reference refers to a type by one of the following: - *Simple* or *qualified* type name (see :ref:`Names`), -- Type alias (see :ref:`Type Alias Declaration`). +- Type alias (see :ref:`Type Alias Declaration`), or +- Type parameter (see :ref:`Type Parameters`) name with the '``!``' sign + (see :ref:`NonNullish Type Parameter`). -*Type reference* that refers to a generic class or to an interface type is -valid if it is a valid instantiation of a generic. Its type arguments can be -provided explicitly or implicitly based on defaults. +A type name denoted by ``identifier`` is a valid type reference if it is a +valid instantiation of a generic when referring to a generic class or an +interface type. A type reference is valid if its type arguments (see +:ref:`Type Arguments`) are provided explicitly or implicitly based on defaults. .. index:: type reference @@ -439,6 +391,7 @@ The syntax of *type reference* is presented below: typeReference: typeReferencePart ('.' typeReferencePart)* + | identifier '!' ; typeReferencePart: @@ -450,23 +403,22 @@ The syntax of *type reference* is presented below: let map: Map // Map is the type reference - class A {...} - class C { - field1: A // A is a class type reference - class type reference + class A { + field1: A // A is a type reference - class type reference field2: A // A is a type reference - class type reference foo (p: T) {} // T is a type reference - type parameter constructor () { /* some body to init fields */ } } - type MyType = A[] + type MyType = []A let x: MyType = [new A, new A] // MyType is a type reference - alias reference // A is a type reference - class type reference -If *type reference* refers to a type by a type alias (see -:ref:`Type Alias Declaration`), then the type alias is replaced for a -non-aliased type in all cases when dealing with types. The replacement is -potentially recursive. +If a type reference refers to the type by a type alias (see +:ref:`Type Alias Declaration`), then the type alias is replaced (potentially +recursively) for a non-aliased type in all cases when dealing with types +in this document. .. code-block:: typescript :linenos: @@ -482,12 +434,6 @@ potentially recursive. type reference type alias non-aliased type - type - recursive replacement - replacement - compatibility - Object - operator validity test | @@ -499,13 +445,12 @@ Value Types .. meta: frontend_status: Done -*Value types* are predefined integer types (see -:ref:`Integer Types and Operations`), floating-point types (see -:ref:`Floating-Point Types and Operations`), the boolean type (see -:ref:`Type boolean`), character types (see -:ref:`Type char`), and user-defined enumeration types (see -:ref:`Enumerations`). The values of such types do *not* share state with other -values. +Predefined integer types (see :ref:`Integer Types and Operations`), +floating-point types (see :ref:`Floating-Point Types and Operations`), the +boolean type (see :ref:`Boolean Types and Operations`), character types +(see :ref:`Character Type and Literals`), and user-defined enumeration +types (see :ref:`Enumerations`) are *value types*. The values of such types do +*not* share state with other values. .. index:: value type @@ -517,8 +462,7 @@ values. enumeration user-defined type enumeration type - value - state + value type | @@ -530,9 +474,8 @@ Numeric Types .. meta: frontend_status: Done -*Numeric types* are integer and floating-point types (see -:ref:`Integer Types and Operations` and -:ref:`Floating-Point Types and Operations`). +Integer (see :ref:`Integer Types and Operations`) and floating-point (see +:ref:`Floating-Point Types and Operations`) types are *numeric types*. Larger type values include all values of smaller types: @@ -541,28 +484,17 @@ Larger type values include all values of smaller types: A value of a smaller type can be assigned to a variable of a larger type as a consequence (see :ref:`Widening Numeric Conversions`). -In terms of operations available for the numeric types (see -:ref:`Multiplication`, :ref:`Division`, :ref:`Remainder`, -:ref:`Additive Expressions`) we state that ``number`` or ``double`` is the -largest type and ``long`` is larger than ``int`` and so on respectively. - -Type ``bigint`` does not belong to this hierarchy. No implicit conversion from -numeric types (see :ref:`Numeric Types`) to ``bigint`` occurs in any assignment -context (see :ref:`Assignment-like Contexts`). The methods of class ``BigInt`` -(which is a part of :ref:`Standard Library`) must be used to create -``bigint`` values from numeric type values. +Type ``bigint`` does not belong to this hierarchy. No implicit conversion +occurs from a numeric type (see :ref:`Numeric Types`) to ``bigint``. +Standard library (see :ref:`Standard Library`) class ``BigInt`` methods must be +used to create ``bigint`` values from numeric types. .. index:: integer type floating-point type - assignability - assignment context - variable numeric type - value double float - number type long int short @@ -604,12 +536,12 @@ below. - Comparison operators that produce a value of type ``boolean``: - + Numeric relational operators '``<``', '``<=``', '``>``', and '``>=``' - (see :ref:`Numeric Relational Operators`); - + Numeric equality operators '``==``' and '``!=``' (see - :ref:`Numeric Equality Operators`); + + Numerical relational operators '``<``', '``<=``', '``>``', and '``>=``' + (see :ref:`Numerical Relational Operators`); + + Numerical equality operators '``==``' and '``!=``' (see + :ref:`Numerical Equality Operators`); -- Numeric operators that produce values of types ``int``, ``long``, or +- Numerical operators that produce values of types ``int``, ``long``, or ``bigint``: + Unary plus '``+``' and minus '``-``' operators (see :ref:`Unary Plus` and @@ -642,10 +574,10 @@ below. bigint integer value comparison operator - numeric relational operator - numeric equality operator + numerical relational operator + numerical equality operator equality operator - numeric operator + numerical operator type reference type name simple type name @@ -656,11 +588,12 @@ below. postfix prefix unary operator + unary operator additive operator multiplicative operator increment operator - numeric relational operator - numeric equality operator + numerical relational operator + numerical equality operator decrement operator signed shift operator unsigned shift operator @@ -672,34 +605,28 @@ below. numeric type string concatenation operator operand - string - -If either operand of a binary integer operation except :ref:`Shift Expressions` -is of type ``long`` and the other operand is of a lesser type, then numeric -conversion (see :ref:`Widening Numeric Conversions`) is used to widen -the second operand first to type ``long``. In this case: -- Operation implementation uses 64-bit precision; and -- Result of the numeric operator is of type ``long``. +If one operand is not of type ``long``, then the numeric conversion (see +:ref:`Widening Numeric Conversions`) must be used to widen it first to type +``long``. +If neither operand is of type ``long``, then: -If otherwise neither operand is of type ``long`` and any operand is of a type -other than ``int``, then numeric conversion is used to widen the latter -first to type ``int``. In this case: +- The operation implementation uses 32-bit precision. +- The result of the numerical operator is of type ``int``. -- Operation implementation uses 32-bit precision; and -- Result of the numeric operator is of type ``int``. +If one operand (or neither operand) is of type ``int``, then the numeric +conversion must be used to widen it first to type ``int``. Conversions between integer types and type ``boolean`` are not allowed. -However, the value of integer type can be used as a logical condition -in some cases (see :ref:`Extended Conditional Expressions`) The integer operators cannot indicate an overflow or an underflow. -An integer operator can throw ``ArithmeticError`` if the right-hand-side operand -of an integer division operator '``/``' (see :ref:`Division`) and an integer -remainder operator '``%``' (see :ref:`Remainder`) is zero. The situation is -discussed in :ref:`Error Handling`. +An integer operator can throw errors (see :ref:`Error Handling`) as follows: + +- An integer division operator '``/``' (see :ref:`Division`), and an + integer remainder operator '``%``' (see :ref:`Remainder`) throw + ``ArithmeticError`` if their right-hand-side operand is zero. .. index:: constructor @@ -724,18 +651,10 @@ discussed in :ref:`Error Handling`. increment operator decrement operator additive expression - error - integer operator - Predefined constructors, methods, and constants for *integer types* -are parts of the |LANG| :ref:`Standard Library`. - -.. index:: - predefined constructor - predefined method - predefined constant - integer type +are parts of the |LANG| standard library (see +:ref:`Standard Library`). | @@ -760,21 +679,18 @@ Floating-Point Types and Operations .. index:: IEEE 754 floating-point number - floating-point type - number type - |LANG| provides a number of operators to act on floating-point type values as discussed below. - Comparison operators that produce a value of type *boolean*: - - Numeric relational operators '``<``', '``<=``', '``>``', and '``>=``' - (see :ref:`Numeric Relational Operators`); - - Numeric equality operators '``==``' and '``!=``' (see - :ref:`Numeric Equality Operators`); + - Numerical relational operators '``<``', '``<=``', '``>``', and '``>=``' + (see :ref:`Numerical Relational Operators`); + - Numerical equality operators '``==``' and '``!=``' (see + :ref:`Numerical Equality Operators`); -- Numeric operators that produce values of type ``float`` or ``double``: +- Numerical operators that produce values of type ``float`` or ``double``: + Unary plus '``+``' and minus '``-``' operators (see :ref:`Unary Plus` and :ref:`Unary Minus`); @@ -786,7 +702,7 @@ discussed below. + Decrement operator '``--``' used as prefix (see :ref:`Prefix Decrement`) or postfix (see :ref:`Postfix Decrement`); -- Numeric operators that produce values of type ``int`` or ``long``: +- Numerical operators that produce values of type ``int`` or ``long``: + Signed and unsigned shift operators '``<<``', '``>>``', and '``>>>``' (see :ref:`Shift Expressions`); @@ -806,26 +722,23 @@ discussed below. floating-point type floating-point number operator - value - numeric relational operator - numeric equality operator + numerical relational operator + numerical equality operator comparison operator boolean type - numeric operator + numerical operator float double unary operator unary plus operator unary minus operator multiplicative operator - multiplicative expression additive operator prefix postfix increment operator decrement operator signed shift operator - shift expression unsigned shift operator cast operator bitwise complement operator @@ -836,27 +749,25 @@ discussed below. numeric type string decimal form - loss of information - concatenation An operation is called a *floating-point operation* if at least one of the operands in a binary operator is of a floating-point type (even if the -other operand is integer), and that is not a string concatenation. +other operand is integer). -If at least one operand of the numeric operator is of type ``double``, +If at least one operand of the numerical operator is of type ``double``, then the operation implementation uses the 64-bit floating-point arithmetic. -The result of the numeric operator is a value of type ``double``. +The result of the numerical operator is a value of type ``double``. -If the other operand is not of type ``double``, then the numeric conversion -(see :ref:`Widening Numeric Conversions`) is used to widen the operand -first to type ``double``. +If the other operand is not of type ``double``, then the numeric conversion (see +:ref:`Widening Numeric Conversions`) must be used to widen it first to type +``double``. If neither operand is of type ``double``, then the operation implementation -is to use the 32-bit floating-point arithmetic. The result of the numeric +is to use the 32-bit floating-point arithmetic. The result of the numerical operator is a value of type ``float``. If the other operand is not of type ``float``, then the numeric conversion -is used to widen the operator first to type ``float``. +must be used to widen it first to type ``float``. Any floating-point type value can be cast to or from any numeric type (see :ref:`Numeric Types`). @@ -865,32 +776,27 @@ Any floating-point type value can be cast to or from any numeric type (see constructor method constant - integer standard library operation floating-point operation predefined numeric types conversion - string concatenation numeric type operand implementation float double numeric promotion - numeric operator + numerical operator binary operator floating-point type -Conversions between floating-point types and type ``boolean`` are -not allowed. However, the value of floating-point type can be used -as a logical condition in some cases -(see :ref:`Extended Conditional Expressions`) +Conversions between floating-point types and type ``boolean`` are not allowed. Operators on floating-point numbers, except the remainder operator (see :ref:`Remainder`), behave in compliance with the IEEE 754 Standard. For example, |LANG| requires the support of IEEE 754 *denormalized* floating-point numbers and *gradual underflow* which facilitate proving -the desirable properties of a particular numeric algorithm. Floating-point +the desirable properties of a particular numerical algorithm. Floating-point operations do not *flush to zero* if the calculated result is a denormalized number. @@ -914,19 +820,16 @@ significant bit zero out of any two equally near representable values. numeric promotion remainder operator gradual underflow - underflow flush to zero round to nearest rounding mode - denormalizaton denormalized number - nearest value IEEE 754 |LANG| uses *round toward zero* to convert a floating-point value to an integer value (see :ref:`Numeric Casting Conversions`). In this case it acts as if the number is truncated, and the mantissa bits are discarded. -The result of *rounding toward zero* is the value of the format that is +The result of *rounding toward zero* is the value of that format that is closest to and no greater in magnitude than the infinitely precise result. A floating-point operation with overflow produces a signed infinity. @@ -939,9 +842,6 @@ produces ``NaN``. All numeric operations with a ``NaN`` operand result in ``NaN``. -Predefined constructors, methods, and constants for *floating-point types* -are parts of the |LANG| :ref:`Standard Library`. - .. index:: round toward zero conversion @@ -950,7 +850,6 @@ are parts of the |LANG| :ref:`Standard Library`. truncation truncated number rounding toward zero - mantissa bit denormalized value NaN numeric operation @@ -965,29 +864,30 @@ are parts of the |LANG| :ref:`Standard Library`. floating-point operation floating-point operator floating-point value - floating-point type throw - predefined constructor - predefined method - predefined constant + +Predefined constructors, methods, and constants for *floating-point types* +are parts of the |LANG| standard library (see +:ref:`Standard Library`). | -.. _Type boolean: +.. _Boolean Types and Operations: -Type ``boolean`` -================ +``Boolean`` Types and Operations +================================ .. meta: frontend_status: Done -Type ``boolean`` represents logical values ``true`` and ``false``. +Type ``boolean`` represents logical values ``true`` and ``false`` that +correspond to the class type ``Boolean``. The boolean operators are as follows: -- Equality operators (see :ref:`Equality Expressions`); +- Relational operators '``==``' and '``!=``' (see :ref:`Relational Expressions`); - Logical complement operator '``!``' (see :ref:`Logical Complement`); -- Logical operators '``&``', '``^``', and '``|``' (see :ref:`Boolean Logical Operators`); +- Logical operators '``&``', '``^``', and '``|``' (see :ref:`Integer Bitwise Operators`); - Conditional-and operator '``&&``' (see :ref:`Conditional-And Expression`) and conditional-or operator '``||``' (see :ref:`Conditional-Or Expression`); - Conditional operator '``?:``' (see :ref:`Conditional Expressions`); @@ -996,6 +896,11 @@ The boolean operators are as follows: ``false``), and then creates a concatenation of the two strings as a new ``string``. +The conversion of an integer or floating-point expression *x* to a boolean +value must follow the *C* language convention: any nonzero value is converted +to ``true``, and the value of zero is converted to ``false``. In other words, +the result of expression *x* conversion to type ``boolean`` is always the same +as the result of comparison *x != 0*. .. index:: boolean @@ -1006,14 +911,11 @@ The boolean operators are as follows: conditional-and operator conditional-or operator conditional operator - conditional expression string concatenation operator floating-point expression comparison conversion nonzero value - concatenation - string | @@ -1054,10 +956,10 @@ Reference Types union type string type literal type - never type - null type - undefined type - void type + type never + type null + type undefined + type void type parameter | @@ -1067,18 +969,13 @@ Reference Types Type ``Any`` ************ -.. meta: - frontend_status: Partly - -Type ``Any`` is a predefined type which is the supertype of all types. Type -``Any`` is a predefined *nullish-type* (see :ref:`Nullish Types`), i.e., a -supertype of :ref:`Type void` and :ref:`Type null` in particular. +Type ``Any`` is the predefined type which is the supertype +(see :ref:`Subtyping`) of all types except +:ref:`Type void`. -Type ``Any`` has no methods or fields. - -.. Type ``NonNullable`` provides ability to call ``toString()`` from any - non-nullable object returning a string representation of that object.This is - used in the examples in this document. +Specificaly, as type ``Any`` is supertype of :ref:`Type undefined` +and :ref:`Type null` it is a predefined *nullish-type* +(see :ref:`Nullish Types`). | @@ -1090,18 +987,18 @@ Type ``Object`` .. meta: frontend_status: Done -Type ``Object`` is a predefined class type which is the supertype -(see :ref:`Subtyping`) of all types except :ref:`Type void`, -:ref:`Type undefined`, :ref:`Type null`, :ref:`Nullish Types`, -:ref:`Type Parameters`, and :ref:`Union types` that contain type parameters. -All subtypes of ``Object`` inherit the methods of class ``Object`` (see -:ref:`Inheritance`). All methods of class ``Object`` are described in full in -:ref:`Standard Library`. +Type ``Object`` is the predefined class type which is the supertype +(see :ref:`Subtyping`) of all types except +:ref:`Type void`, :ref:`Type undefined`, :ref:`Type null`, +:ref:`Nullish Types`, :ref:`Type Parameters`, and :ref:`Union types` +that contain type parameters. +All subtypes of ``Object`` inherit the methods of class ``Object`` +(see :ref:`Inheritance`). +All methods of class ``Object`` are described in full in :ref:`Standard Library`. -The method ``toString`` used in the examples in this document returns a +The method ``toString`` as used in the examples in this document returns a string representation of the object. - .. index:: class interface @@ -1114,25 +1011,21 @@ string representation of the object. method interface array - type parameter - union type inheritance - string -The term *object* is used in the Specification to refer to an instance of any -type. +The term *object* is used in the Specification to refer to +an instance of any type. Pointers to objects are called *references*. Multiple references to an object are possible. -Objects can have states. A state of an object that is a class instance is -stored in its fields. A state of an array or tuple object is stored in its -elements. +Objects can have states. A state is stored in a fields if an object is +a class instance, or in elements of an array or a tuple object. If two variables of any type except :ref:`Value Types` contain references -to the same object, and the state of that object is modified in the reference -of either variable, then the state so modified can be seen in the reference of -the other variable. +to the same object, and the state of that +object is modified in the reference of either variable, then the state so +modified can be seen in the reference of the other variable. .. index:: object @@ -1153,14 +1046,13 @@ Type ``never`` .. meta: frontend_status: Done -Type ``never`` is assignable to any type (see :ref:`Assignability`). +Type ``never`` is assignable to any other type (see :ref:`Assignability`). Type ``never`` has no instance. Type ``never`` is used as one of the following: - Return type for functions or methods that never return a value, but throw an error when completing an operation. -- Type of variables that never get a value (however, an assignment statement - with type ``never`` in both left-hand and right-hand sides is valid). +- Type of variables that can never be assigned. - Type of parameters of a function or a method to prevent the body of that function or method from being executed. @@ -1177,10 +1069,10 @@ Type ``never`` has no instance. Type ``never`` is used as one of the following: // function will never be executed } - bar (foo()) // neither foo nor bar are executed + bar (foo()) .. index:: - never type + type never instance return type method @@ -1203,19 +1095,16 @@ Type ``void`` .. meta: frontend_status: Done -Type ``void`` is used as a return type to highlight that a function, a method, -or a lambda can contain :ref:`Return Statements` with no expression, or no -return statement at all: +Type ``void`` has no instances. It is used as a return type to highlight that a +function, a method, or a lambda returns no value: .. code-block:: typescript :linenos: - function foo (): void {} // no return at all + function foo (): void {} class C { - bar(): void { - return // with no expression - } + bar(): void {} } type FunctionWithNoParametersType = () => void @@ -1227,45 +1116,31 @@ A :index:`compile-time error` occurs if: - Type ``void`` is used as type annotation; - Expression of type ``void`` is used as a value. -Type ``void`` has no instance by itself. However, that it is a supertype of type -``undefined`` (see :ref:`Type undefined`) affects the :ref:`Assignability` as -follows: - .. code-block-meta: expect-cte: .. code-block:: typescript :linenos: - let x: void = undefined // compile-time error - void used as type annotation + let x: void // compile-time error - void used as type annotation function foo (): void {} - console.log (foo()) // compile-time error - void used as a value - - function bar1 (): void { - return void // compile-time error - void used as a value - } + let y = foo() // compile-time error - void used as a value - function bar2 (): void { - return undefined // OK as undefined is a subtype of void - } - - type aType = void | number // compile-time error - void used as type annotation + type ErroneousType = void | number + // compile-time error - void used as type annotation .. index:: - void type - undefined type - lambda + type void instance - supertype value return type function method type annotation -Type ``void`` can be used as a type argument that instantiates a generic type, -function, or method as follows: +Type ``void`` can be used also as type argument that instantiates a generic +type with type ``undefined`` (see :ref:`Type undefined`) as follows: .. code-block-meta: expect-cte: @@ -1278,37 +1153,22 @@ function, or method as follows: m(): T { return this.f } constructor (f: T) { this.f = f } } - let a1 = new A(undefined) // ok, as undefined is a subtype of void - let a2 = new A(undefined) // ok - let a3 = new A(void) // compile-time error: void is used as value - - console.log (a1.f, a2.m()) // Output is "undefined" "undefined" + let a1 = new A(undefined) // ok, type parameter is irrelevant + let a2 = new A(undefined) // ok, the same - function foo(p: T): T { return p } - foo(undefined) // ok, it returns 'undefined' value - foo(void) // compile-time error: void is used as value + console.log (a1.f, a2.m()) // Will output "undefined" "undefined" - type F1 = () => T - const f1: F1 = (): void => {} - const f2: F1 = () => {} - const f3: F1 = (): undefined => { return undefined } - - // Array literals can be assigned to the array of void type in any form - type A1 = T[] - type A2 = Array - const a1: A1 = [undefined] - const a2: A2 = [undefined, undefined] - - let x: void[] // compile-time error - void used as type annotation + function foo(x: T) {} + foo(undefined) // ok + foo(void) // compile-time error: void is used as value .. index:: - void type + type void type argument - type parameter instantiation generic type - undefined type + type undefined | @@ -1323,8 +1183,6 @@ Type ``undefined`` The only value of type ``undefined`` is the literal ``undefined`` (see :ref:`Undefined Literal`). -Type ``undefined`` is a subtype of type ``void`` (see :ref:`Type void`). - Using type ``undefined`` as type annotation is not recommended, except in nullish types (see :ref:`Nullish Types`). @@ -1343,14 +1201,11 @@ type as follows: foo(undefined) // ok .. index:: - undefined type + type undefined keyword undefined undefined literal literal type argument - type annotation - instantiation - generic type annotation nullish type @@ -1371,7 +1226,7 @@ Using type ``null`` as type annotation is not recommended, except in nullish types (see :ref:`Nullish Types`). .. index:: - null type + type null null literal keyword null type annotation @@ -1387,76 +1242,55 @@ Type ``string`` .. meta: frontend_status: Done -Type ``string`` values are all string literals, e.g., '``abc``'. Type ``string`` -stores sequences of characters as Unicode UTF-16 code units. +Type ``string`` stores sequences of characters as Unicode UTF-16 code units. +Type ``string`` values are all string literals, e.g., '``abc``'. A ``string`` object is immutable, the value of a ``string`` object cannot be changed after the object is created. The value of a ``string`` object can be shared. -Type ``string`` has dual semantics, i.e.: +Type ``string`` has dual semantics: - Type ``string`` behaves like a reference type (see :ref:`Reference Types`) - if created, assigned, or passed as an argument; + if it is created, assigned, or passed as an argument. - Type ``string`` is handled as a value (see :ref:`Value Types`) by all ``string`` operations (see :ref:`String Concatenation`, - :ref:`Equality Expressions`, and :ref:`String Relational Operators`). + :ref:`String Equality Operators`, and :ref:`String Relational Operators`). -.. index:: - type string - value - Unicode code unit - string literal - literal - character - sequence - string - object - dual semantics - reference type - expression - equality - relational operator -A number of operators can act on ``string`` values as follows: +There are number of operators to act on ``string`` values as discussed below: -- Accessing the ``length`` property returns string length as ``int`` - type value. String length is a non-negative integer number. - String length is set once at runtime and cannot be changed after that. +- Accessing the ``length`` property to get string length + as ``int`` type value; - Concatenation operator '``+``' (see :ref:`String Concatenation`) produces a value of type ``string``. If the result is not a constant expression (see :ref:`Constant Expressions`), then the string concatenation operator can implicitly create a new ``string`` object; -- Indexing a string value (see :ref:`String Indexing Expression`) returns a - value of type ``string``. A new ``string`` object can be created implicitly. - -A string value can contain any character, i.e., no character can be used to -indicate the end of a string. A character with the value '\0' is an ordinary -character inside a string as represented by the following example: - -.. code-block:: typescript - :linenos: +- Indexing of a string value (see :ref:`String Indexing Expression`) returns + a value of type ``string``. New ``string`` object can be implicitly created. - console.log("a\0b".length) // output: 3 - -Using ``string`` in all cases is recommended, although the name ``String`` +Using ``string`` is recommended in all cases, although the name ``String`` also refers to type ``string``. .. index:: - string value - access + type string + Unicode code unit string type string literal string object + relational operator + equality operator string concatenation - integer - runtime - indexing - character + semantics reference type + predefined type + extended semantics + literal + constant expression concatenation operator + alias value type | @@ -1469,9 +1303,9 @@ Type ``bigint`` .. meta: frontend_status: Done -|LANG| has the built-in ``bigint`` type that allows handling theoretically -arbitrary large integers. Values of type ``bigint`` can hold numbers that are -larger than the maximum value of type ``long``. Type ``bigint`` uses +|LANG| has the built-in ``bigint`` type. Type ``bigint`` allows handling +theoretical arbitrary large integers. Values of type ``bigint`` can hold numbers +which are larger than the maximum value of type ``long``. Type ``bigint`` uses the arbitrary-precision arithmetic. Values of type ``bigint`` can be created from the following: @@ -1482,7 +1316,7 @@ from the following: Similarly to ``string``, ``bigint`` type has dual semantics: - If created, assigned, or passed as an argument, type ``bigint`` behaves - like a reference type (see :ref:`Reference Types`). + in the same manner as a reference type (see :ref:`Reference Types`). - All applicable operations handle type ``bigint`` as a value type (see :ref:`Value Types`). The operations are described in :ref:`Integer Types and Operations`. @@ -1498,19 +1332,12 @@ to static methods in order to improve |TS| compatibility. let b2: bigint = 123n .. index:: - bigint type - built-in type - arbitrary large integer + type bigint integer - long type + type long bigint literal value type type annotation - compatibility - method - static method - numeric type - value | @@ -1524,12 +1351,13 @@ Literal Types todo: implement string literal types on runtime part #15276 *Literal types* are aligned with some |LANG| literals (see :ref:`Literals`). -Their names are the same as the names of their values, i.e., literals proper. -|LANG| supports only the following literal types: +Their names are the same as the names of their values, i.e., literals. +Only following literal types are supported: + +- ``string`` literal types; +- ``null`` literal type; +- ``undefined`` literal type. -- `String Literal Types`, -- ``null``, and -- ``undefined``. .. code-block:: typescript :linenos: @@ -1543,32 +1371,22 @@ Their names are the same as the names of their values, i.e., literals proper. console.log (p1, p2, p3) } -There are no operations for literal types ``null`` and ``undefined``. - .. index:: literal type truncation - operation - null type - undefined type - type name - value name - literal - string - | -.. _String Literal Types: +.. _Operations on Literal Types: -String Literal Types -==================== +Operations on Literal Types +=========================== .. meta: frontend_status: Done Operations on variables of string literal types are identical to the operations -of their supertype ``string`` (see :ref:`Type string`). The +of their supertype ``string`` (see :ref:`Subtyping for Literal Types`). The resulting operation type is the type specified for the operation in the supertype: @@ -1580,11 +1398,11 @@ supertype: .. index:: literal type - string variable supertype subtyping - operation type + +There are no operations for literal types ``null`` and ``undefined``. | @@ -1596,9 +1414,7 @@ Array Types .. meta: frontend_status: Partly -*Array type* is a data structure intended to comprise any number of same-type -elements, including zero elements. |LANG| supports the following two predefined -array types: +|LANG| supports the following two predefined array types: - :ref:`Resizable Array Types`; and @@ -1608,14 +1424,13 @@ array types: *Fixed-size array types* can be used where performance is the major requirement. -*Fixed-size arrays* differ from *resizable arrays* as follows: +*Resizable arrays* differ from *fixed-size arrays* as follows: -- *Fixed-size arrays* have their length set only once to achieve a better - performance. +- Length of *fixed-size array* is set once. It can lead to better performance. - *Fixed-Size arrays* have no methods defined. -**Note**. The term *array type* as used in this Specification applies to both +**Note**. The term *array type* as used in this document applies to both *resizable array type* and *fixed-size array type*. The same holds true for *array value* and *array instance*. *Resizable arrays* and *fixed-size arrays* are not assignable to each other. @@ -1623,8 +1438,6 @@ requirement. .. index:: array length array type - array value - array instance resizable array type fixed-size array @@ -1638,11 +1451,32 @@ Resizable Array Types .. meta: frontend_status: Partly -*Resizable array type* is a built-in type characterized by the following: +There are two syntax forms of *resizable array type* with elements of type ``T`` +as follows: + +- ``T[]``, and +- ``Array``. + +The first form uses the following syntax: + +.. code-block:: abnf + + arrayType: + type '[' ']' + ; + +**Note**. ``T[]`` and ``Array`` specify identical (indistinguishable) types +(see :ref:`Type Identity`). + +.. index:: + type identity + resizable array type + type identity + +*Resizable array type* is the built-in type characterized by the following: - Any object of resizable array type contains elements. The number of elements - is known as *array length*, and can be accessed by using the ``length`` - property. + is known as *array length*. - Array length is a non-negative integer number. - Array length can be set and changed at runtime. - Array element is accessed by its index. The index is an integer number @@ -1655,8 +1489,6 @@ Resizable Array Types .. index:: resizable array type - built-in type - access array length non-negative integer number constant-time operation @@ -1668,80 +1500,40 @@ Resizable Array Types contiguous memory location assignability array declaration - memory location access array -*Resizable array type* with elements of type ``T`` can have the following two -forms of syntax: - -- ``T[]``, and -- ``Array``. - -The first form uses the following syntax: - -.. code-block:: abnf - - arrayType: - type '[' ']' - ; - -**Note**. ``T[]`` and ``Array`` specify identical, i.e., indistinguishable -types (see :ref:`Type Identity`). - -.. index:: - type identity - element type - syntax - resizable array type - type identity - Two basic operations with array elements take elements out of, and put -elements into an array by using the operator '``[]``'. +elements into an array by using the '``[]``' operator . The same syntax can be used to work with :ref:`Indexable Types`, some of such types are parts of :ref:`Standard Library`. The number of elements in an array can be obtained by accessing the property -``length``. The length of an array can be set and changed in runtime using the -methods defined in :ref:`Standard Library`. +``length``. + +The length of an array can be set and changed in runtime using methods defined +in the standard library (see :ref:`Standard Library`). An array can be created by using :ref:`Array Literal`, :ref:`Resizable Array Creation Expressions`, or the constructors -defined in :ref:`Standard Library`. +defined in the standard library (see :ref:`Standard Library`). |LANG| allows setting a new value to ``length`` to shrink an array and provide -better |TS| compatibility. An error is caused by the following situations: - -- The value is of type ``number`` or other floating-point type, - and the fractional part differs from 0; -- The value is less then zero; or -- The value is greater then previous length. - -The above situations cause errors as follows: - -- A runtime error, if the situation is identified at runtime, i.e., during - program execution; and -- A :index:`compile-time error`, if the situation is detected during - compilation. +better |TS| compatibility. The new value must be less or equal to the previous +length. Attempting to increase the length of the array by assignment to +``length`` causes a :index:`compile-time error` (if the compiler has the +information sufficient to determine this) or a runtime error. .. index:: method array length array element access - operator - syntax - indexable type - resizable array - compatibility - floating-point type - value - runtime property length standard library -Array operations are illustrated below: +The examples are presented below: .. code-block:: typescript :linenos: @@ -1776,10 +1568,7 @@ An array as an object is assignable to a variable of type ``Object``: .. index:: alias - array operation array element - access - type alias two-dimensional array assignability array type @@ -1795,17 +1584,10 @@ An array as an object is assignable to a variable of type ``Object``: Readonly Array Types ==================== -.. meta: - frontend_status: Partly - -*Readonly array type* is immutable, i.e.: - -- Length of a variable of a *readonly array type* cannot be changed; -- Elements of a *readonly array type* cannot be modified after the initial - assignment directly nor through a function or method call. - -Otherwise, a :index:`compile-time error` occurs. - +If an *array* type has the prefix ``readonly``, then +its length cannot be changed and its elements +cannot be modified after the initial assignment directly or through a function +or method call. Otherwise, a :index:`compile-time error` occurs. .. code-block-meta: expect-cte: @@ -1816,28 +1598,13 @@ Otherwise, a :index:`compile-time error` occurs. let x: readonly number [] = [1, 2, 3] x[0] = 42 // compile-time error as array itself is readonly -*Readonly array type* with elements of type ``T`` can have the following two -syntax forms: -- ``readonly T[]``, and -- ``ReadonlyArray``. - -Both forms specify identical (indistinguishable) types (see :ref:`Type Identity`). - -**Note.** In multidimensional arrays, all dimensions are ``readonly``. +**Note.** In case of multidimensional arrays, all dimensions are ``readonly``. .. index:: prefix readonly - readonly array type - array length - assignment - function call - method call - syntax array initial value - multidimensional array - dimension | @@ -1860,17 +1627,14 @@ The syntax of *tuple type* is presented below: ; The value of a tuple type is a group of values of types that comprise the tuple -type. The number of values in the group equals the number of types in a tuple -type declaration. The order of types in a tuple type declaration specifies the -type of the corresponding value in the group. - -It implies that each element of a tuple has its own type. +type. Types are specified in the order as declared within the tuple type +declaration. It implies that each element of a tuple has its own type. The operator '``[]``' (square brackets) is used to access the elements of a -tuple in a manner similar to accessing the elements of an array. +tuple in a manner similar to how the elements of an array are accessed. An index expression must be of integer type. The index of the first tuple element is *0*. Only constant expressions can be used as the index providing -access to tuple elements: +access to tuple elements. .. code-block:: typescript :linenos: @@ -1892,8 +1656,6 @@ An empty tuple is a corner case. It is only added to support |TS| compatibility: .. index:: tuple type - syntax - reference type assignability operator object @@ -1906,7 +1668,6 @@ An empty tuple is a corner case. It is only added to support |TS| compatibility: constant expression square bracket compatibility - access | @@ -1915,12 +1676,9 @@ An empty tuple is a corner case. It is only added to support |TS| compatibility: Readonly Tuple Types ==================== -.. meta: - frontend_status: Done - -If an *tuple* type has the prefix ``readonly``, then its elements cannot be -modified after the initial assignment directly or through a function or method -call. Otherwise, a :index:`compile-time error` occurs as follows: +If an *tuple* type has the prefix ``readonly``, then its elements +cannot be modified after the initial assignment directly or through a function +or method call. Otherwise, a :index:`compile-time error` occurs. .. code-block-meta: expect-cte: @@ -1932,14 +1690,9 @@ call. Otherwise, a :index:`compile-time error` occurs as follows: x[0] = 42 // compile-time error as tuple itself is readonly .. index:: - prefix - readonly + prefix readonly tuple - assignment - tuple type initial value - function call - method call | @@ -1955,25 +1708,21 @@ Function Types *Function type* can be used to express the expected signature of a function. A function type consists of the following: -- Optional type parameters; - List of parameters (which can be empty); - Optional return type. .. index:: + array element + type alias + array type + type Object function function type - function signature signature return type - parameter list - -The syntax of *function type* is as follows: - - -.. functionType: - typeParameters? '(' ftParameterList? ')' ftReturnType - ; + parameter +The syntax of *function type* is presented below: .. code-block:: abnf @@ -2014,7 +1763,6 @@ A type alias can set a name for a *function type* (see rest parameter type alias function type - syntax .. code-block:: typescript :linenos: @@ -2033,10 +1781,10 @@ default value. type FuncTypeWithOptionalParameters = (x?: number, y?: string) => void let foo: FuncTypeWithOptionalParameters - = ():void => {} // OK: as arguments are just ignored + = ():void => {} // CTE as call with more than zero arguments is invalid foo = (p: number):void => {} // CTE as call with zero arguments is invalid - foo = (p?: number):void => {} // OK: as call with zero or one argument is valid - foo = (p1: number, p2?: string):void => {} // Compile-time error: as call with zero arguments is invalid + foo = (p?: number):void => {} // CTE as call with two arguments is invalid + foo = (p1: number, p2?: string):void => {} // CTE as call with zero arguments is invalid foo = (p1?: number, p2?: string):void => {} // OK foo() @@ -2066,13 +1814,12 @@ More details on function types assignability are provided in function type parameter name parameter type - undefined type + type undefined assignability context conversion mandatory parameter optional parameter - subtyping | @@ -2102,32 +1849,19 @@ of the arguments are valid. f(1) // compile-time error: cannot be called f.unsafeCall(3.14) // correct call and execution - f.unsafeCall() // runtime error: wrong number of arguments + f.unsafeCall() // run-time error: wrong number of arguments Another important property of type ``Function`` is ``name``. It is a string that contains the name associated with the function object in the following way: -- If a function or a method is assigned to a function object, then the - associated name is that of the function or of the method; +- If a function or a method is assigned to a function object, the associated + name is the name of this function or method; -- If a lambda is assigned to a variable of ``Function`` type, then the - associated name is that of the variable; +- If a lambda is assigned to a variable of ``Function`` type, the + associated name is the name of the variable; -- Otherwise, the string is empty. - -.. index:: - function type - predefined type - direct superinterface - value - method - argument - runtime error - assignment - function object - lambda - string +- Otherwise, it is empty string. .. code-block:: typescript :linenos: @@ -2154,15 +1888,10 @@ in the following way: print_name (():void=>{}) // output: "" -The declarations of the ``unsafeCall`` method, ``name`` property, and all other +The definitions of the ``unsafeCall`` method, ``name`` property, and all other methods and properties of type ``Function`` are included in the |LANG| :ref:`Standard Library`. -.. index:: - property - method - Function type - | .. _Union Types: @@ -2178,7 +1907,7 @@ Union Types *Union* type is a reference type created as a combination of other types. -The syntax of *union type* is as follows: +The syntax of *union type* is presented below: .. code-block:: abnf @@ -2195,13 +1924,16 @@ union type declaration leads to a circular reference. .. index:: union type reference type + union type type declaration circular reference union - declaration + primitive type + literal type + primitive type circular reference -Typical usage examples of *union* types are represented below: +Typical usage examples of *union* type are represented below: .. code-block:: typescript :linenos: @@ -2225,7 +1957,7 @@ Typical usage examples of *union* types are represented below: // ... } type Animal = Cat | Dog | Frog | number - // Cat, Dog, and Frog are some types (class type or interface type) + // Cat, Dog, and Frog are some types (class or interface ones) let animal: Animal = new Cat() animal = new Frog() @@ -2236,15 +1968,8 @@ Typical usage examples of *union* types are represented below: type Union1 = string | StringEnum // OK, will be reduced during normalization -.. index:: - union type - class type - interface type - value - normalization - -Values of particular types can be received from a *union* by using different -mechanisms as follows: +Different mechanisms can be used to get values of particular types from a +*union*: .. code-block:: typescript :linenos: @@ -2264,13 +1989,7 @@ mechanisms as follows: animal.sleep () // Any animal can sleep -.. index:: - type - value - union - conversion - -Predefined types are represented by the following example: +The following example represents predefined types: .. code-block:: typescript :linenos: @@ -2281,7 +2000,7 @@ Predefined types are represented by the following example: // type of 'p' is number here } -Literal types are represented by the following example: +The following example represents literal types: .. code-block:: typescript :linenos: @@ -2297,12 +2016,12 @@ Literal types are represented by the following example: } .. index:: + union type + primitive type literal type - predefined type - conversion **Note**. A :index:`compile-time error` occurs if an expression of a *union* -type is compared to a literal value or a constant that does not belong to the +type is compared to a literal value or constant that does not belong to the values of the *union* type: .. code-block:: typescript @@ -2325,7 +2044,6 @@ values of the *union* type: .. index:: union type literal value - value | @@ -2342,10 +2060,10 @@ Union types normalization allows minimizing the number of types within a union type, while keeping type safety. Some types can also be replaced for more general types. -Union type ``T``:sub:`1` | ... | ``T``:sub:`N`, where ``N`` > 1, can be formally -reduced to type ``U``:sub:`1` | ... | ``U``:sub:`M`, where ``M`` <= ``N``, -or even to a non-union type *V*. In this latter case *V* can be a predefined -value type or a literal type. +Formally, union type ``T``:sub:`1` | ... | ``T``:sub:`N`, where ``N`` > 1, can +be reduced to type ``U``:sub:`1` | ... | ``U``:sub:`M`, where ``M`` <= ``N``, +or even to a non-union type *V*. In this latter case *V* can be a primitive +type or a literal type. The normalization process presumes that the following steps are performed one after another: @@ -2355,44 +2073,50 @@ after another: type safety value type non-union type - normalized union type normalization literal type + primitive type #. All nested union types are linearized. #. All type aliases (if any and except recursive ones) are recursively replaced for non-alias types. #. Identical types within a union type are replaced for a single type with account to the ``readonly`` type flag priority. -#. If at least one type in a union is ``Any``, then all other types are - removed. -#. If positioned among union types, type ``never`` is removed. +#. If at least one type in a union is ``Object``, then all other non-nullish + types are removed. +#. If present among union types, type ``never`` is removed. #. If one type in a union is ``string``, then all string literal types (if - any) are removed. + any) and all enumerations with constants of type ``string`` + (if any) are removed. +#. If one type in a union is an integer type, then all enumerations with + constants of the same integer type or of a shorter type + (if any) are removed. +#. If a union type includes two types ``T``:sub:`i` and ``T``:sub:`j` (i != j), + and ``T``:sub:`i` is subtype of ``T``:sub:`j` (see :ref:`Subtyping`), then + only ``T``:sub:`j` remains in the union type, and ``T``:sub:`i` is removed. - This procedure is performed recursively until none of the above steps can - can be performed again. + This procedure is performed recursively until no assignable type remains, or + the until the union type is reduced to a single type. .. index:: union type nested union type - linearization non-nullish type - never type - union type - type alias + type never numeric type numeric literal type - readonly - Any type + type never + primitive type alias non-alias + linearization literal type + normalization Object type subtyping The normalization process results in a normalized union type. The process -is represented by the examples below: +is presented in the examples below: .. code-block:: typescript :linenos: @@ -2411,24 +2135,31 @@ is represented by the examples below: "1" | string | number // normalized as string | number. Literal type value belongs to another type values + enum ES {A = "AA", B = "BB"} + string | ES // normalized as "string", as all enumeration constants values are of type "string" + + enum EI {A, B} + int | EI // normalized as "int", as all enumeration constants values are of type "int" + + "1" | Object // normalized as Object. Object always wins + AnyNonNullishType | Object // normalized as Object + class Base {} - class Derived extends Base {} - Base | Derived // normalized as Base | Derived (no change) + class Derived1 extends Base {} + class Derived2 extends Base {} + Base | Derived1 // normalized as Base. Base wins over Derived. + Derived1 | Derived2 // normalized as Derived1 | Derived2. The |LANG| compiler applies normalization while processing union types and -handling type inference for array literals (see +handling the type inference for array literals (see :ref:`Array Type Inference from Types of Elements`). .. index:: - normalization union type - normalized union type + normalization array literal type inference array literal - linearization - string - readonly | @@ -2453,15 +2184,7 @@ conditions are fulfilled: - Method or accessor with an equal signature; or - Same-type field. -Otherwise, a :index:`compile-time error` occurs as follows: - -.. index:: - interface type - method - class type - accessor - signature - field +A :index:`compile-time error` occurs otherwise: .. code-block:: typescript :linenos: @@ -2488,54 +2211,12 @@ Otherwise, a :index:`compile-time error` occurs as follows: u.goo() // compile-time error as signatures differ .. index:: - field - signature - method - -A :index:`compile-time error` occurs if in some ``T``:sub:`i` -the name ``m`` refers to the *overload alias*: - -.. code-block:: typescript - :linenos: - - class C { - overload foo { foo1, foo2 } - foo1(a: number): void {} - foo2(a: string): void {} - } - class D { - foo(a: number): void {} - foo2(a: string): void {} - } - - function test(x: C | D) { - x.foo() // compile-time error, as 'foo' in C is the overload alias - x.foo2("aa") // ok, as 'foo2' in both C and D is a method - } - -A :index:`compile-time error` also occurs if in some ``T``:sub:`i` -the name ``m`` refers to the *method with overload signatures*: - -.. code-block:: typescript - :linenos: - - class C { - foo(a: number): void - foo(a: string): void - foo(...x: Any[]): Any {} - } - class D { - foo(a: number): void {} - } - - function test(x: C | D) { - x.foo(1) // compile-time error, as 'foo' in C has overload signatures - } - -.. index:: - overload alias + union type + interface type + class type method - overload signature + accessor + signature | @@ -2547,13 +2228,13 @@ the name ``m`` refers to the *method with overload signatures*: .. meta: frontend_status: Done -``Keyof`` type is a special form of a union type that is built by using the +``Keyof`` types are a special form of union type that is built by using the keyword ``keyof``. The keyword ``keyof`` is applied to a class or an interface type (see :ref:`Classes` and :ref:`Interfaces`). The resultant new type is a union of names (as string literal types) of all accessible members (see :ref:`Accessible`) of the class or the interface type. -The syntax of ``keyof`` type is presented below: +The syntax of *keyof type* is presented below: .. code-block:: abnf @@ -2569,7 +2250,7 @@ The syntax of ``keyof`` type is presented below: semantics A :index:`compile-time error` occurs if ``typeReference`` is neither a class -nor an interface type. The semantics of type ``keyof`` is represented by the +nor an interface type. The semantics of type ``keyof`` is presented in the example below: @@ -2615,15 +2296,16 @@ Nullish Types .. meta: frontend_status: Done -|LANG| has *nullish types* that are in fact a specific form of union types (see +|LANG| has *nullish types* that are in fact a special form of union types (see :ref:`Union Types`). ``T | null`` or ``T | undefined`` or ``T | undefined | null`` -can be used as the type to specify a nullish version of type ``T``. +can be used as the type to specify a +nullish version of type ``T``. -All predefined types except :ref:`Type Any`, and all user-defined types are -non-nullish types. Non-nullish types cannot have a ``null`` or ``undefined`` -value at runtime. +All predefined types, except :ref:`Type Any`, and all +user-defined types are non-nullish types. +Non-nullish types cannot have a ``null`` or ``undefined`` value at runtime. A variable declared to have type ``T | null`` can hold the values of type ``T`` and its derived types, or the value ``null``. Such a type is called a *nullable @@ -2666,7 +2348,7 @@ be used 'as is' for *nullish types*. The following nullish-safe options exist for dealing with nullish type ``T``: -- Using safe operations: +- Using of safe operations: - Safe method call (see :ref:`Method Call Expression` for details); - Safe field access expression (see :ref:`Field Access Expression` @@ -2674,7 +2356,7 @@ The following nullish-safe options exist for dealing with nullish type ``T``: - Safe indexing expression (see :ref:`Indexing Expressions` for details); - Safe function call (see :ref:`Function Call Expression` for details); -- Converting from ``T | null`` or ``T | undefined`` to ``T``: +- Conversion from ``T | null`` or ``T | undefined`` to ``T``: - :ref:`Cast Expression`; - Ensure-not-nullish expression (see :ref:`Ensure-Not-Nullish Expressions` @@ -2716,13 +2398,10 @@ The following nullish-safe options exist for dealing with nullish type ``T``: nullish-safe option nullish value nullish type - safe operation safe method call safe field access safe indexing expression - safe function call conversion - compatibility | @@ -2734,18 +2413,18 @@ Default Values for Types .. meta: frontend_status: Done -**Note**. This |LANG| feature is experimental. +**Note**. This feature in |LANG| is experimental. -So-called *default values* are used by the following types for variables -that require no explicit initialization (see :ref:`Variable Declarations`): +The following types use so-called *default values* for variables that require +no explicit initialization (see :ref:`Variable Declarations`): - :ref:`Value Types`; -- Type ``undefined`` and all its supertypes +- ``undefined`` and all its supertypes .. - Nullable reference types with the default value *null* (see :ref:`Literals`). -All other types, including reference types, enumeration types, and type -parameters have no default values. +All other types, including reference types, enumeration types, and type parameters +have no default values. Default values of value types are as follows: @@ -2755,12 +2434,12 @@ Default values of value types are as follows: explicit initialization literal type nullable reference type + primitive type undefined type type parameter reference type enumeration type initialization - supertype +--------------+--------------------+ | Data Type | Default Value | @@ -2784,8 +2463,7 @@ Default values of value types are as follows: | ``boolean`` | ``false`` | +--------------+--------------------+ -Value ``undefined`` is the default value of each type to which this value can -be assigned. +``undefined`` value is a default value of each type it can be assigned to. .. code-block-meta: @@ -2814,7 +2492,6 @@ be assigned. null undefined type data type - assignment ------------- diff --git a/static_core/plugins/ets/doc/spec/4_names.rst b/static_core/plugins/ets/doc/spec/4_names.rst index 9601d8de96..15ee3674ef 100644 --- a/static_core/plugins/ets/doc/spec/4_names.rst +++ b/static_core/plugins/ets/doc/spec/4_names.rst @@ -100,7 +100,9 @@ tokens), *N* can name the following: static member qualified name identifier + package member reference type + package variable field method @@ -119,35 +121,39 @@ Declarations frontend_status: Done A declaration introduces a named entity in an appropriate *declaration scope* -(see :ref:`Scopes`), see +(see :ref:`Scopes`). .. index:: named entity declared entity declaration scope -- :ref:`Type Declarations`; -- :ref:`Variable and Constant Declarations`; -- :ref:`Function Declarations`; -- :ref:`Declarations with Overload Signatures`; -- :ref:`Classes`; -- :ref:`Interfaces`; -- :ref:`Enumerations`; -- :ref:`Local Declarations`; -- :ref:`Top-Level Declarations`; -- :ref:`Overload Declarations`; -- :ref:`Annotations`; -- :ref:`Ambient Declarations`. +| + +.. _Distinguishable Declarations: + +Distinguishable Declarations +**************************** + +.. meta: + frontend_status: Done Each declaration in the declaration scope must be *distinguishable*. -Declarations are *distinguishable* if they have different names. + +A :index:`compile-time error` occurs otherwise. + +Declarations are *distinguishable* if they have: + +- Different names, +- Different signatures (see :ref:`Declaration Distinguishable by Signatures`). .. index:: + distinguishable declaration declaration scope name signature -Distinguishable declarations are represented by the examples below: +The examples below represent declarations distinguishable by names: .. code-block:: typescript :linenos: @@ -163,7 +169,10 @@ Distinguishable declarations are represented by the examples below: static field: number = PI + pi } -A :index:`compile-time error` occurs if a declaration is not distinguishable: +If a declaration is not distinguishable by name (except a valid overloading as +in :ref:`Function, Method and Constructor Overloading` and +:ref:`Declaration Distinguishable by Signatures`), then a +:index:`compile-time error` occurs: .. code-block:: typescript :linenos: @@ -192,11 +201,12 @@ A :index:`compile-time error` occurs if a declaration is not distinguishable: interface Object {} let Array = 42 -**Note**. :ref:`Declarations with Overload Signatures` declares a single entity -with an unique name and several signatures, but not several entities. + // Functions have the same name but are distinguishable by signatures + function foo() {} + function foo(p: number) {} .. index:: - declaration + distinguishable declaration overloading distinguishable functions @@ -211,7 +221,7 @@ Scopes frontend_status: Done Different entity declarations introduce new names in different *scopes*. Scope -is the region of program text where an entity is declared, +(see :ref:`Scopes`) is the region of program text where an entity is declared, along with other regions it can be used in. The following entities are always referred to by their qualified names only: @@ -247,34 +257,40 @@ Entities within the scope are accessible (see :ref:`Accessible`). function call accessibility -The scope level of an entity depends on the context the entity is -declared in: +The scope of an entity depends on the context the entity is declared in: -.. _module-access: +.. _package-access: -.. meta: - frontend_status: Partly +- Name declared on the package level (*package level scope*) is accessible + (see :ref:`Accessible`) throughout the entire package. The name can be + accessed (see :ref:`Accessible`) in other packages or modules if exported. + +.. index:: + name declaration + package level scope + module level scope + access + module + package + module + +.. _module-access: -- *Module level scope* is applicable to modules only. *Constants* - and *variables* are accessible (see :ref:`Accessible`) - from their respective points of declaration to the end of the module. - Other entities are accessible through the entire scope level. - If exported, a name can be accessed in other +- *Module level scope* is applicable to separate modules only. A name + declared on the module level is accessible (see :ref:`Accessible`) + throughout the entire module. If exported, a name can be accessed in other compilation units. .. _namespace-access: .. meta: - frontend_status: Partly + frontend_status: Done -- *Namespace level scope* is applicable to namespaces only. - *Constants* and *variables* are accessible - (see :ref:`Accessible`) from their respective points of declaration - to the end of the namespace including all embedded namespaces. - Other entities are accessible through the entire namespace scope level - including embedded namespaces. - If exported, a name can be accessed outside the namespace with mandatory - namespace name qualification. +- *Namespace level scope* is applicable to namespaces only. A name + declared in a namespace is accessible (see :ref:`Accessible`) + throughout the entire namespace and in all embedded namespaces. If exported, + a name can be accessed outside the namespace with mandatory namespace name + qualification. .. index:: module level scope @@ -288,9 +304,6 @@ declared in: .. _class-access: -.. meta: - frontend_status: Done - - A name declared inside a class (*class level scope*) is accessible (see :ref:`Accessible`) in the class and sometimes, depending on the access modifier (see :ref:`Access Modifiers`), outside the class, or by means of a @@ -308,11 +321,6 @@ declared in: - A reference to the class instance for the names of instance entities; or - Name of the class for static entities. - |LANG| supports using the same identifier as names of a static entity and - of an instance entity. The two names are *distinguishable* by the context, - which is either a name of a class for static entities or an expression - that denotes an instance. - .. index:: class level scope accessibility @@ -333,9 +341,6 @@ declared in: .. _interface-access: -.. meta: - frontend_status: Done - - A name declared inside an interface (*interface level scope*) is accessible (see :ref:`Accessible`) inside and outside that interface (default ``public``). @@ -350,9 +355,6 @@ declared in: .. _class-or-interface-type-parameter-access: -.. meta: - frontend_status: Done - - *The scope of a type parameter* name in a class or interface declaration is that entire declaration, excluding static member declarations. @@ -366,27 +368,21 @@ declared in: .. _function-type-parameter-access: -.. meta: - frontend_status: Done - - The scope of a type parameter name in a function declaration is that - entire declaration (*function type parameter scope*). + entire declaration (*function parameter scope*). .. index:: parameter name function declaration - function type parameter scope + function parameter scope scope .. _function-access: -.. meta: - frontend_status: Done - -- The scope of a name declared inside the body of a function or a method - declaration is the body of that declaration from the point of declaration - and up to the end of the body (*method* or *function scope*). This scope is - also applied to function or method parameter names. +- The scope of a name declared immediately inside the body of a function + or a method declaration is the body of that declaration from the point of + declaration and up to the end of the body (*method* or *function scope*). + This scope is also applied to function or method parameter names. .. index:: scope @@ -398,15 +394,12 @@ declared in: .. _block-access: -.. meta: - frontend_status: Done - -- The scope of a name declared inside a block is the body of the block from - the point of the name declaration and up to the end of the block - (*block scope*). +- The scope of a name declared inside a statement block is the body of + the statement block from the point of declaration and up to the end + of the block (*block scope*). .. index:: - block + statement block body point of declaration block scope @@ -493,7 +486,7 @@ An interface declaration (see :ref:`Interfaces`), a class declaration (see :ref:`Classes`), an enum declaration (see :ref:`Enumerations`), or a type alias (see :ref:`Type Alias Declaration`) are type declarations. -The syntax of *type declaration* is presented below: +The syntax of *type declration* is presented below: .. code-block:: abnf @@ -529,15 +522,15 @@ following: - Names for anonymous types (array, function, and union types); or - Alternative names for existing types. -Scopes of type aliases are module or namespace level scopes. Names of all type -aliases must follow the uniqueness rules of :ref:`Declarations` in the current -context. +Scopes of type aliases are package, module, or namespace level scopes. Names of +all type aliases must follow the uniqueness rules of +:ref:`Distinguishable Declarations` in the current context. .. index:: type alias anonymous type array - declaration + distinguishable declaration function union type scope @@ -582,12 +575,14 @@ meaning nor introduces a new type. function max(x: Vector): number { let m = x[0] for (let v of x) - if (v > m) m = v + if (v > m) v = m return m } - let x: Vector = [2, 3, 1] - console.log(max(x)) // output: 3 + function main() { + let x: Vector = [3, 2, 1] + console.log(max(x)) // ok + } .. index:: alias @@ -693,7 +688,7 @@ Variable Declarations .. meta: frontend_status: Partly - todo: arrays never have default values + todo: arrays never have default values todo: raise error for non initialized arrays: let x: number[];console.log(x) todo: fix grammar change - ident '?' is not allowed, readonly is not here @@ -776,8 +771,8 @@ Every variable in a program must have an initial value before it can be used: + If the type of a variable is ``T``, and ``T`` has a *default value* (see :ref:`Default Values for Types`), then the variable is initialized with the default value. - + If a variable has no default value, then its value must be set by the - :ref:`Simple Assignment Operator` before any use of the variable. + + If a variable has no default value, then a value must be set by the + :ref:`Simple Assignment Operator` before attempting to use the variable. .. index:: value @@ -795,17 +790,19 @@ Every variable in a program must have an initial value before it can be used: initializer expression non-initialized variable - -Invalid initialization is represented in the example below: - .. code-block-meta: expect-cte: .. code-block:: typescript :linenos: - let a = b // compile-time error: circular dependency - let b = a + let a = b // a uses b for its initialization + let b = a // b uses a for its initialization + + class A { + a = this.b // a uses b for its initialization + b = this.a // b uses a for its initialization + } | @@ -838,6 +835,9 @@ The syntax of *constant declarations* is presented below: identifier (':' type)? initializer ; +If a constant declaration belongs to the package (see :ref:`Packages`), then its +syntax and semantics can be slightly extended (see :ref:`Constants in packages`). + The type ``T`` of a constant declaration is determined as follows: - If ``T`` is the type specified in a type annotation (if any) of the @@ -931,6 +931,7 @@ If the type of the initializer expression cannot be inferred, then a initializer subtyping supertype + normalization type inference inferred type type annotation @@ -1042,8 +1043,9 @@ The syntax of *signature* is presented below: '(' parameterList? ')' returnType? ; -A function, method, or constructor can have several *overload signatures* (see -:ref:`Declarations with Overload Signatures`). +Overloading (see :ref:`Function, Method and Constructor Overloading`) is supported for +functions, methods and constructors. The signatures of overloaded entities are important +for their unique identification. .. index:: signature @@ -1107,7 +1109,7 @@ Several parameters can be *optional*, allowing to omit corresponding arguments in a call (see :ref:`Optional Parameters`). A :index:`compile-time error` occurs if an *optional parameter* precedes a -*required parameter*. +*required parameter* in the parameter list. The last parameter of a function or a method can be a single *rest parameter* (see :ref:`Rest Parameter`). @@ -1141,7 +1143,7 @@ Readonly Parameters .. meta: frontend_status: Done -If the parameter type is ``readonly`` array or tuple type, then +If the parameter type is ``readonly`` array or tuple type, then no assignment and no function or method call can modify elements of this array or tuple. Otherwise, a :index:`compile-time error` occurs: @@ -1185,11 +1187,11 @@ Optional Parameters .. code-block:: abnf optionalParameter: - identifier (':' type)? '=' expression + identifier ':' type '=' expression | identifier '?' ':' type ; -The first form contains an ``expression`` that specifies a *default value*. It is +The first form contains an expression that specifies a *default value*. It is called a *parameter with default value*. The value of the parameter is set to the *default value* if the argument corresponding to that parameter is omitted in a function or method call: @@ -1213,34 +1215,6 @@ omitted in a function or method call: pair(1, 2) // prints: 1 2 pair(1) // prints: 1 7 -This form with the *default value* can be used only for functions or methods -with an implementation body provided. Otherwise, a :index:`compile-time error` -occurs. - -.. code-block:: typescript - :linenos: - - function foo (p: number|undefined = undefined): void // compile-time error - function foo (...p: Any[]): Any {} - - class X { - foo (p: number|undefined = undefined): void // compile-time error - foo (...p: Any[]): Any {} - } - -If type annotation is omitted, then the parameter type is inferred from -the type of the ``expression``. If the type cannot be inferred, then a -:index:`compile-time error` occurs. - -.. code-block:: typescript - :linenos: - - function foo (p = new Object) {} // the type of 'p' is Object - function foo (p = {f: 1}) {} // compile-time error, type of 'p' cannot be inferred - - - - The second form is a short-cut notation and ``identifier '?' ':' type`` effectively means that ``identifier`` has type ``T | undefined`` with the default value ``undefined``. @@ -1297,8 +1271,7 @@ The syntax of *rest parameter* is presented below: A :index:`compile-time error` occurs if a rest parameter: - Is not the last parameter in a parameter list; -- Has a type that is not an array type, a tuple type, nor a type - parameter constrained by an array or a tuple type. +- Has a type that is neither an array type nor a tuple type. A call of entity with a rest parameter of array type ``T[]`` (or ``FixedArray``) can accept any number of arguments @@ -1308,17 +1281,17 @@ of types that are assignable (see :ref:`Assignability`) to ``T``: rest parameter function method - constructor - lambda - spread operator - prefix parameter name - syntax + rest parameter + array type parameter list array type tuple type assignability + lambda + constructor argument + prefix .. code-block:: typescript :linenos: @@ -1359,10 +1332,12 @@ as a prefix before the array argument: argument prefix spread operator - spread expression function + method array argument array type + entity + spread expression A call of entity with a rest parameter of tuple type [``T``:sub:`1` ``, ..., T``:sub:`n`] can accept only ``n`` arguments of types @@ -1370,12 +1345,16 @@ that are assignable (see :ref:`Assignability`) to the corresponding ``T``:sub:`i`: .. index:: - call rest parameter + function + lambda + assignability + method + parameter name tuple type + parameter list type argument - assignability .. code-block:: typescript :linenos: @@ -1389,23 +1368,6 @@ that are assignable (see :ref:`Assignability`) to the corresponding sum(1, 2, "a") // compile-time error: wrong type of the 3rd argument sum(1, 2, 3) // returns 6 -It is legal though meaningless to declare a function with an optional -parameter followed by a rest parameter of a tuple type. -However, use of such function without explicitly set optional and -rest parameters will cause compile-time error: - -.. code-block:: typescript - :linenos: - - // optional tuple + rest tuple - function g(opt?: [number, string], ...tail: [number,string]) { // OK - // ... - } - - g() // CTE - no rest tuple - g([1, "str"]) // CTE - no rest tuple - g([ 1, "str"], 1, "str") // OK - If an argument of tuple type [``T``:sub:`1` ``, ..., T``:sub:`n`] is to be passed to a call of entity with the rest parameter, then a spread expression (see :ref:`Spread Expression`) @@ -1426,9 +1388,6 @@ prefix before the tuple argument: // returns 6 .. index:: - optional parameter - tuple type - entity argument prefix spread expression @@ -1458,47 +1417,6 @@ as a prefix before the fixed-size array argument: sum(...x) // spread an fixed-size array 'x' // returns 6 - -If constrained by an array or a tuple type, a type parameter can be used with -generics as a *rest parameter*. - -.. code-block:: typescript - :linenos: - - function sum>(...numbers: T): number { - let res = 0 - for (let n of numbers) - res += n - return res - } - -**Note**. Any call to a function, method, constructor, or lambda with a rest -parameter implies that a new array or tuple is created from the arguments -provided. - -.. code-block:: typescript - :linenos: - - function foo(...array_parameter: number[], ...tuple_parameter: [number, string]) { - // array_parameter is a new array created from the arguments passed - // tuple_parameter is a new tuple created from the arguments passed - array_parameter[0] = 1234 - tuple_parameter[0] = 1234 - console.log (array_parameter[0], tuple_parameter[0]) // 1234 1234 is the output - } - - const array_argument: number[] = [1,2,3,4] - const tuple_argument: [number, string] = [1,"234"] - - console.log (array_argument[0], tuple_argument[0]) // 1 1 is the output - - foo (...array_argument, ...tuple_argument) - // array_argument is spread into a sequence of its elements - // tuple_argument is spread into a sequence of its elements - - console.log (array_argument[0], tuple_argument[0]) // 1 1 is the output - - .. index:: argument fixed-size array type @@ -1529,22 +1447,24 @@ top-level variable within the body of that function or method: .. code-block:: typescript :linenos: - let x: number = 1 - function foo (x: string) { - // 'x' refers to the parameter and has type string + class T1 {} + class T2 {} + class T3 {} + + let variable: T1 + function foo (variable: T2) { + // 'variable' has type T2 and refers to the function parameter } class SomeClass { - method (x: boolean) { - // 'x' refers to the method parameter and has type boolean + method (variable: T3) { + // 'variable' has type T3 and refers to the method parameter } } - x++ // 'x' refers to the global variable .. index:: shadowing parameter accessibility - access top-level variable access function body @@ -1554,7 +1474,6 @@ top-level variable within the body of that function or method: method function parameter method parameter - boolean type | @@ -1566,11 +1485,11 @@ Return Type .. meta: frontend_status: Done -Function, method, or lambda return type defines the resultant type of the -function, method, or lambda execution (see :ref:`Function Call Expression`, -:ref:`Method Call Expression`, and :ref:`Lambda Expressions`). During the -execution, the function, method, or lambda can produce a value of a type -that is assignable to the return type (see :ref:`Assignability`). +Function or method return type defines the static type of the result of the +function or method execution (see :ref:`Function Call Expression` and +:ref:`Method Call Expression`). During the execution, the function or method +can produce a value of a type assignable (see :ref:`Assignability`) to the +return type. The syntax of *return type* is presented below: @@ -1584,51 +1503,121 @@ If function or method return type is not ``void`` (see :ref:`Type void`), and the execution path of the function or method body has no return statement (see :ref:`Return Statements`), then a :index:`compile-time error` occurs. -A :index:`compile-time error` occurs if lambda return type is not ``never`` -(see :ref:`Type never`), and the execution path of a function, method, or -lambda body has no return statement (see :ref:`Return Statements`). - A special form of return type with the keyword ``this`` as type annotation can be used in class instance methods only (see :ref:`Methods Returning this`). -If function, method, or lambda return type is not specified, then it is -inferred from its body (see :ref:`Return Type Inference`). If there is no body, -then the function, method, or lambda return type is ``void`` (see -:ref:`Type void`). +If function or method return type is not specified, then it is inferred from +its body (see :ref:`Return Type Inference`). If there is no body, then the +function or method return type is ``void`` (see :ref:`Type void`). .. index:: return type function method - lambda - function call - function call expression - method call expression - lambda expression static type assignable type assignability return statement - syntax method body type void execution path return statement inferred type type inference - void type - never type - this keyword - type annotation - class instance method +| + +.. _Return Type Inference: + +Return Type Inference +===================== + +.. meta: + frontend_status: Done + +An omitted function or method return type can be inferred from the function, +or the method body. If the return type is omitted in a native function (see +:ref:`Native Functions`), then a :index:`compile-time error` occurs. + +The current version of |LANG| allows inferring return types at least under +the following conditions: + +- If there is no return statement, or if all return statements have no + expressions, then the return type is ``void`` (see :ref:`Type void`). +- If there are *k* return statements (where *k* is 1 or more) with + the same type expression *R*, then ``R`` is the return type. +- If there are *k* return statements (where *k* is 2 or more) with + expressions of types ``T``:sub:`1`, ``...``, ``T``:sub:`k`, then ``R`` is the + *union type* (see :ref:`Union Types`) of these types (``T``:sub:`1` | ... | + ``T``:sub:`k`), and its normalized version (see :ref:`Union Types Normalization`) + is the return type. +- If a function or a method is ``async`` (see :ref:`Async Functions and Methods`), + the return type is inferred by using the rules above, and the return type ``T`` + is not ``Promise``, then the return type is assumed to be ``Promise``. + +Future compiler implementations are to infer the return type in more cases. +The example below represents type inference: + +.. index:: + return type + function + method + function return type + method return type + native function + type inference + inferred type + method body + return statement + normalization + type expression + normalization + expression + function + implementation + compiler + union type + +.. code-block:: typescript + + // Explicit return type + function foo(): string { return "foo" } + + // Implicit return type inferred as string + function goo() { return "goo" } + + class Base {} + class Derived1 extends Base {} + class Derived2 extends Base {} + + function bar (condition: boolean) { + if (condition) + return new Derived1() + else + return new Derived2() + } + // Return type of bar will be Derived1|Derived2 union type + + function boo (condition: boolean) { + if (condition) return 1 + } + // That is a compile-time error as there is an execution path with no return + +If the compiler fails to recognize a particular type inference case, then +a corresponding :index:`compile-time error` occurs. + +.. index:: + inference + compiler + type inference + inferred type | -.. _Declarations with Overload Signatures: +.. _Overload Signatures: -Declarations with Overload Signatures -************************************* +Overload Signatures +******************* .. meta: frontend_status: None @@ -1637,24 +1626,41 @@ Declarations with Overload Signatures have several *overload signatures* followed by one implementation body. A call of an entity with overload signatures is always a call of the -implementation body. If the implementation body is missing, then a -:index:`compile-time error` occurs. +implementation body. If the implementation body is missing, or does +not immediately follow the declaration, then a :index:`compile-time error` +occurs. + +The example below has two overload signatures defined for a function: .. index:: - overload signature - declaration function - method - constructor - implementation body - call + overload signature + function header + implementation function + implementation -| +.. code-block:: typescript + :linenos: -.. _Function with Overload Signatures: + function foo(): void // 1st signature + function foo(x: string): void // 2nd signature + function foo(x: Object|null|undefined): void // 3rd - implementation signature + { + console.log(x) + } + + foo() // ok, call fits 1st and 3rd signatures + foo("aa") // ok, call fits 2nd and 3rd signatures + foo(undefined) // ok, call fits the 3rd signature + +The call of ``foo()`` is executed as a call of the implementation function +with the ``undefined`` argument. The call of ``foo(x)`` is executed as a call +of the implementation function with the ``x`` argument. + +.. _Function Overload Signatures: -Function with Overload Signatures -================================= +Function Overload Signatures +============================ .. meta: frontend_status: None @@ -1672,64 +1678,30 @@ is presented below (see also :ref:`Function Declarations`): 'async'? 'function' identifier typeParameters? signature ; -*Function with overload signatures* declared in a non-ambient context must have -an *implementation body* (it is then called *function with a body*). -Otherwise, a :index:`compile-time error` occurs. +The semantic rules for *overload signatures* and its implementation body +are described in :ref:`Overload Signatures Correctness Check`. -The semantic rules for *implementation bodies* are discussed in -:ref:`Overload Signatures Implementation Body`. - -A :index:`compile-time error` occurs if not all overload signatures and -implementation bodies (if any) are either exported or non-exported. - -The example below shows two overload signatures defined for a function: +If not all overload signatures are either exported or non-exported, then a +:index:`compile-time error` occurs. .. index:: - function with overload signature - overload signature - non-ambient context - implementation body - function with a body - function declaration - devlaration - syntax call implementation function - export + argument null + argument undefined + execution + signature function - -.. code-block:: typescript - :linenos: - - function foo(): void // 1st signature - function foo(x: string): void // 2nd signature - function foo(...args: Any[]): Any // implementation signature - { - console.log(args) - } - - foo() // ok, call fits the 1st signature - foo("aa") // ok, call fits the 2nd signature - foo(undefined) // compile-time error, implementation signature is not accessible - -The call of ``foo()`` is executed as a call of an implementation function -with an empty array argument. The call of ``foo(x)`` is executed as a call -of an implementation function with an argument in the form of an array with -the sole element ``x``. - -.. index:: - call - implementation function - array argument - argument - array + implementation + overload signature + compatibility | -.. _Class Method with Overload Signatures: +.. _Class Method Overload Signatures: -Class Method with Overload Signatures -===================================== +Class Method Overload Signatures +================================ .. meta: frontend_status: None @@ -1747,103 +1719,17 @@ is presented below (see also :ref:`Method Declarations`): methodModifier* identifier signature ; -*Method with overload signatures* declared in a non-ambient context must have -an *implementation body* (it is then called *method with a body*). Otherwise, -a :index:`compile-time error` occurs. +A :index:`compile-time error` occurs if the method implementation is not +present, or does not immediately follow the declaration. -.. index:: - class method - overload signature - method declaration - method with overload signature - syntax - non-ambient context - implementation body - method with a body - -The semantic rules for *implementation bodies* are discussed in -:ref:`Overload Signatures Implementation Body`. - -A :index:`compile-time error` also occurs if not **all** of the following -requirements are met: - -- Access modifiers of an overload signature and an implementation method are - the same; -- All overload signatures and an implementation method are either static or - non-static; -- All overload signatures and an implementation method are either final or - non-final; -- Overload signatures are not native (however, a native implementation method - is allowed); -- Overload signatures are not abstract. - -Two overload signatures defined for a method are represented in the example -below: +The semantic rules for *overload signatures* and its implementation body +are described in :ref:`Overload Signatures Correctness Check`. -.. index:: - method - implementation body - overload signature - implementation method - access modifier - implementation method - static implementation method - non-static implementation method - final implementation method - non-final implementation method - -.. code-block:: typescript - :linenos: - - class A { - foo(): void // 1st signature - foo(x: string): void // 2nd signature - foo(...args: Any[]): Any // implementation signature - { - console.log(args) - return new Object - } - } - const a = new A - a.foo() // ok, call fits the 1st signature - a.foo("aa") // ok, call fits the 2nd signature - a.foo(undefined) // compile-time error, implementation signature is not accessible +.. _Constructor Overload Signatures: -The call of ``a.foo()`` is executed as a call of the implementation method -with an empty array argument. The call of ``a.foo(x)`` is executed as a call -of an implementation method with an argument in the form of an array with the -sole element ``x``. - -.. code-block:: typescript - :linenos: - - // compile-time errors: mix of different accessibility statuses, - // mix of static and non-static - class Incorrect { - foo(): void // 1st signature - private foo(x: string): void // 2nd signature - protected foo(x: string): void // 3rd signature - static foo(x: Object): void // 4th signature - foo(...args: Any[]): Any // implementation signature - { return new Object } - } - -.. index:: - signature - implementation signature - access - call - implementation method - array argument - array element - -| - -.. _Constructor with Overload Signatures: - -Constructor with Overload Signatures -==================================== +Constructor Overload Signature +================================ .. meta: frontend_status: None @@ -1862,92 +1748,18 @@ is presented below (see also :ref:`Constructor Declaration`): accessModifier? 'constructor' signature ; -*Constructor with overload signatures* declared in a non-ambient context must -have an *implementation body* (it is then called *constructor with a body*). -A :index:`compile-time error` occurs in the following situations: - -- Implementation body is missing; -- Implementation body fails to follow a signature immediately; or -- Two or more signatures of an implementation body have different access - modifiers. - -The semantic rules for *implementation bodies* are discussed in -:ref:`Overload Signatures Implementation Body`. - -The example below shows two overload signatures defined for a constructor: - -.. index:: - constructor - overload signature - constructor with overload signature - implementation constructor - syntax - non-ambient context - implementation body - signature - access modifier - access - implementation body - -.. code-block:: typescript - :linenos: - - class A { - constructor () // 1st signature - constructor(x: string) // 2nd signature - constructor(...args: Any[]) // implementation signature - {} - } - - new A() // ok, call fits the 1st signature - new A("aa") // ok, call fits the 2nd signature - new A(undefined) // compile-time error, implementation signature is not accessible - - -The call of ``A()`` is executed as a call of an implementation constructor with -an empty array argument. The call of ``A(x)`` is executed as a call of an -implementation constructor with an argument in the form of an array with the -sole element ``x``. - -.. index:: - call - implementation constructor - array argument - array element - -| - -.. _Overload Signatures Implementation Body: - -Overload Signatures Implementation Body -======================================= +A :index:`compile-time error` occurs if at least two different overload +signatures or implementation signatures have different *access modifiers*. -*Implementation body* must have a signature as follows: +The semantic rules for *overload signatures* and its implementation body +are described in :ref:`Overload Signatures Correctness Check`. -- For functions or methods (see :index:`Type Any`): +.. _Overload Signatures Correctness Check: -.. code-block:: typescript - :linenos: - - (...args: Any[]): Any - -- For constructors: - -.. code-block:: typescript - :linenos: - - (...args: Any[]) - - -Otherwise, a :index:`compile-time error` occurs. +Overload Signatures Correctness Check +===================================== -.. index:: - implementation body - signature - any type - function - method - constructor +TBD | diff --git a/static_core/plugins/ets/doc/spec/5_generics.rst b/static_core/plugins/ets/doc/spec/5_generics.rst index e384723fd6..50c0548bf7 100644 --- a/static_core/plugins/ets/doc/spec/5_generics.rst +++ b/static_core/plugins/ets/doc/spec/5_generics.rst @@ -18,7 +18,7 @@ Generics .. meta: frontend_status: Partly -Class, interface, type alias, method, and function are program entities +Class, interface, type alias, method, function, and lambda are program entities that can be parameterized in |LANG| by one or several types. An entity so parameterized introduces a *generic declaration* (called *a generic* for brevity). @@ -28,7 +28,7 @@ Types used as generic parameters in a generic are called *type parameters* A *generic* must be instantiated in order to be used. *Generic instantiation* is the action that transforms a *generic* into a real program entity -(non-generic class, interface, union, array, method, or function), or +(non-generic class, interface, union, array, method, function, or lambda), or into another *generic instantiation*. Instantiation (see :ref:`Generic Instantiations`) can be performed either explicitly or implicitly. @@ -43,6 +43,7 @@ creating new types during compilation (see :ref:`Utility Types`). type alias method function + lambda entity parameterization generic @@ -91,7 +92,6 @@ specify its *in-* or *out-* variance (see :ref:`Type Parameter Variance`). variance out-variance in-variance - syntax The syntax of *type parameter* is presented below: @@ -117,9 +117,9 @@ The syntax of *type parameter* is presented below: '=' typeReference ('[]')? ; -A generic class, interface, type alias, method, or function defines a -set of parameterized classes, interfaces, unions, arrays, methods, or functions -respectively (see :ref:`Generic Instantiations`). A single type argument +A generic class, interface, type alias, method, function, or lambda defines a +set of parameterized classes, interfaces, unions, arrays, methods, functions, or +lambdas respectively (see :ref:`Generic Instantiations`). A single type argument can define only one set for each possible parameterization of the type parameter section. @@ -128,6 +128,7 @@ section. generic class generic interface generic function + lambda generic instantiation class interface @@ -137,7 +138,6 @@ section. array type alias method - syntax | @@ -151,37 +151,33 @@ Type Parameter Constraint If possible instantiations need to be constrained, then an individual *constraint* can be set for each type parameter after the keyword ``extends``. -A constraint can have the form of any type. +A constraint can have the form of any type. If no constraint is specified, +then the contraint is :ref:`Type Any`, so the lack of an explicit constraint +effectively means ``extends Any``. As consequence such type parameter +is not compatible with :ref:`Type Object`, and has no methods or fields +available for use. -If no constraint is specified, -then the constraint is :ref:`Type Any`, i.e., the lacking explicit constraint -effectively means ``extends Any``. As a consequence, the type parameter is not -compatible with :ref:`Type Object`, and has neither methods nor fields available -for use. - -If type parameter *T* has type constraint *S*, then the actual type of the -generic instantiation must be a subtype of *S* (see :ref:`Subtyping`). If the -constraint *S* is a non-nullish type (see :ref:`Nullish Types`), then *T* is -also non-nullish. +If type parameter *T* has type constraint +*S*, then the actual type of the generic instantiation must be a subtype of +*S* (see :ref:`Subtyping`). If the constraint *S* is a non-nullish type +(see :ref:`Nullish Types`), then *T* is also non-nullish. .. index:: constraint instantiation type parameter - extends keyword + keyword extends type reference + union normalization union type normalization object compatibility assignability nullish-type non-nullish-type - any type type argument generic instantiation instantiation - subtyping - subtype .. code-block:: typescript @@ -233,6 +229,8 @@ section depends on itself. .. index:: type parameter generic + generic declaration + type parameter .. code-block:: typescript :linenos: @@ -251,13 +249,13 @@ section depends on itself. data: T constructor (p: T) { this.data = p } foo () { - let o: Object = this.data // error: T not compatible with Object - console.log (this.data.toString()) // error: T has no methods or fields + let o: Object = this.data // error: as type T is not compatible with Object + console.log (this.data.toString()) // error: type T has no methods or fields } } class A1 extends A0 { - constructor (p: T) { super(p); this.data = p } + constructor (p: T) { this.data = p } override foo () { let o: Object = this.data // OK! console.log (this.data.toString()) // OK! @@ -288,12 +286,10 @@ in the examples below: .. index:: type parameter - default generic type type argument default type instantiation - type instantiation class function @@ -310,9 +306,11 @@ in the examples below: // Derived1 is semantically equivalent to Derived2 class Derived2 extends Base implements Interface { } - function foo(input: T): T { return input} - foo(1) // this call is semantically equivalent to next one - foo(1) + function foo(): T { + // ... + } + foo() // this call is semantically equivalent to the call below + foo() class C1 {} // That is a compile-time error, as T2 has default but T3 does not @@ -347,12 +345,10 @@ depending on the *subtyping* relationship between argument types. .. index:: type parameter variance - class - interface - generic interface generic class subtyping argument type + invariance instantiation When declaring *type parameters* of a generic type, special keywords ``in`` or @@ -362,7 +358,6 @@ type parameter (see :ref:`Invariance, Covariance and Contravariance`). Type parameters with the keyword ``out`` are *covariant* . Covariant type parameters can be used in the out-position only as follows: - - Constructors can have ``out`` type parameters as parameters; - Methods can have ``out`` type parameters as return types; - Fields that have ``out`` type parameters as type must be ``readonly``. - Otherwise, a :index:`compile-time error` occurs. @@ -370,28 +365,26 @@ parameters can be used in the out-position only as follows: .. index:: type parameter generic type - in keyword - out keyword + keyword in + keyword out variance modifier variance invariance covariance - covariant - readonly + contravariance Type parameters with the keyword ``in`` are *contravariant*. Contravariant type parameters can be used in the in-position only as follows: - - Methods can have ``in`` type parameters as parameter types. + - Methods can have ``in`` type parameters as parameter types. - Otherwise, a :index:`compile-time error` occurs. Type parameters with no variance modifier are implicitly *invariant*, and can occur in any position. .. index:: - contravariance type parameter - in keyword + keyword in contravariant in-position invariant @@ -401,20 +394,16 @@ occur in any position. :linenos: class X { - // T1 can be used in in-position only - foo (p: T1) {} // OK - foo1(p: T1): T1 { return p } // error: T1 in out-position - fldT1: T1 // error: T1 in invariant position + foo (p: T1) {...} - constructor (x: T2) { this.fldT2 = x } // OK - bar(x: T2) : T2 { return x } // CTE (x in in-position) - readonly fldT2: T2 // OK - bar1() : T2 { return this.fldT2 } // OK + // T2 can be used in out-position only + bar(): T2 {...} + readonly fld1: T2 // T3 can be used in any position (in-out, write-read) - fldT3: T3 - method (p: T3): T3 { this.fldT3 = p; return p} // OK + fld2: T3 + method (p: T3): T3 {...} } In case of function types (see :ref:`Function Types`), variance interleaving @@ -456,8 +445,8 @@ Generic Instantiations .. meta: frontend_status: Done -As mentioned before, a generic declaration defines a set -of corresponding non-generic entities. The +As mentioned before, a generic class, interface, type alias, method, function, +or lambda declaration defines a set of corresponding non-generic entities. The process of instantiation is designed to do the following: - Allow producing new generic or non-generic entities; @@ -465,7 +454,7 @@ process of instantiation is designed to do the following: of type, including the type argument itself. As a result of the instantiation process, a new class, interface, union, array, -method, or function is created. +method, function, or lambda is created. .. code-block:: typescript :linenos: @@ -478,20 +467,19 @@ method, or function is created. .. index:: generic class - generic instantiation interface type alias method function + lambda + lambda declaration instantiation - generic entity non-generic entity type parameter type argument class union array - interface | @@ -528,10 +516,6 @@ arguments: .. index:: type argument instantiation - union type - array type - tuple type - function type | @@ -570,26 +554,19 @@ type parameters to substitute corresponding type parameters of a generic: class Y extends X { // class Y extends X instantiated with number and T f1: X // X instantiated with Object and T f2: X // X instantiated with T and string - constructor() { - this.f1 = new X - this.f2 = new X - } } + let lambda = (p: T) => { console.log (p) } // Generic lambda defined + lambda ("string argument") // Generic lambda instantiated and called + .. index:: instantiation generic - generic instantiation - type type argument type parameter - array - function - method - string A :index:`compile-time error` occurs if type arguments are provided for -non-generic class, interface, type alias, method, or function. +non-generic class, interface, type alias, method, function, or lambda. In the explicit generic instantiation *G* <``T``:sub:`1`, ``...``, ``T``:sub:`n`>, *G* is the generic declaration, and <``T``:sub:`1`, ``...``, ``T``:sub:`n`> is @@ -608,19 +585,15 @@ parameterized declaration ranging over them. .. index:: type argument - non-generic class - non-generic interface - non-generic type alias - non-generic method - non-generic function - generic declaration class interface type alias method function + lambda generic instantiation + generic declaration assignability assignable type constraint @@ -684,31 +657,23 @@ in which a generic is referred. It is represented in the example below: function foo (x: G, y: G) {} // Generic function declaration foo (new Object, new Object) // Implicit generic function instantiation - // based on argument types: the type argument is inferred - - - function process (arg: P, cb?: (p: P) => R): P | R { - // return the data itself or if the processing function provied the - // result of processing - return cb != undefined ? cb (arg): arg - } - process (123, () => {}) // P is inferred as 'int', while R is 'void' + // based on argument types the type argument is inferred + let lambda = (p: T): void => {console.log (p)} // Generic lambda declaration + lambda(6) // Implicit generic lambda instantiation - -Implicit instantiation is only possible for generic functions and methods. +Implicit instantiation is only possible for generic functions, methods, and +lambdas. .. index:: instantiation type argument type inference - inferred type generic context - generic method - generic function method function + lambda | @@ -721,117 +686,13 @@ Utility Types frontend_status: Done |LANG| supports several embedded types, called *utility* types. Utility types -allow constructing new types by adjusting properties of initial types, for -which purpose notations identical to generics are used. If the initial types -are class or interface, then the resultant utility types are also handled as -class or interface types. -All utility type names are accessible as simple names (see :ref:`Accessible`) -in any compilation unit across all its scopes. Using these names as -user-defined entities causes a :index:`compile-time error` in accordance with -:ref:`Declarations`. An alphabetically sorted list of utility types is provided -below. +allow constructing new types by adjusting properties of initial types. If the +initial types are class or interface, then the resultant utility types are also +handled as class or interface types. .. index:: embedded type - class - interface - accessibility - compilation unit - user-defined entity - declaration - utility type - -| - -.. _Awaited Utility Type: - -Awaited Utility Type -==================== - -.. meta: - frontend_status: None - -Type ``Awaited`` constructs a type which includes no type ``Promise``. It -is similar to ``await`` in ``async`` functions, or to the method ``.then()`` -in *Promises*. Any occurence of type ``Promise`` is recursively removed until -a generic, a function, an array, or a tuple type is detected. If type ``Promise`` -is not a part of a type ``T`` declaration, then ``Awaited`` leaves ``T`` -intact. - -If ``T`` in ``Awaited`` is a type parameter, then subtyping for ``Awaited`` -is based on the subtyping for ``T``. In other words, ``Awaited`` -is a subtype of ``Awaited`` if ``T`` is a subtype of ``U``. The use of type -``Awaited`` is represented in the example below: - -.. code-block:: typescript - :linenos: - - type A = Awaited> // type A is string - - type B = Awaited>> // type B is number - - type C = Awaited> // type C is boolean | number - - type D = Awaited // type D is Object - - type E = Awaited|Promise|Promise>> - // type E is number|string|boolean - - type F = Awaited) => Promise>> - // type F is (p: Promise) => Promise> - - type G = Awaited>>> - // type F is Array> - - function foo (p: Awaited) {} - function bar (p: Awaited) { - foo (p) // is a valid call as Awaited <: Awaited - } - - -.. index:: utility type - awaited - promise - async function - method - -| - -.. _NonNullable Utility Type: - -NonNullable Utility Type -======================== - -.. meta: - frontend_status: None - -Type ``NonNullable`` constructs a type by excluding ``null`` and ``undefined`` -types. If type ``T`` contains neither ``null`` nor ``undefined``, then -``NonNullable`` leaves ``T`` intact. The use of type ``NonNullable`` is -represented in the example below: - -.. code-block:: typescript - :linenos: - - type X = Object | null | undefined - type Y = NonNullable // type of 'Y' is Object - - class A { - field: NonNullable // This is a non-nullable version of the type parameter - constructor (field: NonNullable) { - this.field = field - } - } - - const a = new A (new Object) - a.field // type of field is Object - -.. index:: - utility type - null type - undefined type - field | @@ -844,10 +705,9 @@ Partial Utility Type frontend_status: Done Type ``Partial`` constructs a type with all properties of ``T`` set to -optional. ``T`` must be a class or an interface type. Otherwise, a -:index:`compile-time error` occurs. No method (not even any getter or setter) -of ``T`` is a part of the ``Partial`` type. The use is represented in the -example below: +optional. ``T`` must be a class or an interface type. No method (not even any +getter or setter) of ``T`` is part of the ``Partial`` type. +It is represented in the example below: .. code-block:: typescript :linenos: @@ -879,13 +739,11 @@ analogous type as follows: .. index:: type property - optional property class type interface type method getter setter - distinct type Type ``T`` is not assignable to ``Partial`` (see :ref:`Assignability`), and variables of ``Partial`` are to be initialized with valid object @@ -903,23 +761,14 @@ It is represented in the example below: property: number } class A implements I { - _property: number - set property(property: number) { - console.log ("Setter called") - this._property = property - } - get property(): number { - console.log ("Getter called"); - return this._property - } + set property(property: number) { console.log ("Setter called") ... } + get property(): number { console.log ("Getter called") ... } } - function foo (partial: Partial) { partial.property = 42 // setter to be called console.log(partial.property) // getter to be called } - - foo ({property: 1}) // No getter or setter from class A is called + foo ({property: new SomeType}) // No getter or setter from class A is called // 42 is printed as object literal has its own setter and getter .. index:: @@ -931,12 +780,8 @@ It is represented in the example below: object literal class user-defined getter - built-in getter getter setter - user-defined setter - built-in setter - property | @@ -950,9 +795,9 @@ Required Utility Type Type ``Required`` is opposite to ``Partial``, and constructs a type with all properties of ``T`` set to required (i.e., not optional). ``T`` must be a -class or an interface type, otherwise a :index:`compile-time error` occurs. No -method (not even any getter or setter) of ``T`` is part of the ``Required`` -type. Its usage is represented in the example below: +class or an interface type. No method (not even any getter or setter) of ``T`` +is part of the ``Required`` type. +It is represented in the example below: .. code-block:: typescript :linenos: @@ -988,17 +833,11 @@ valid object literals. assignability assignable type property - required property method getter setter type object literal - class type - interface type - distinct type - initialization - variable | @@ -1012,10 +851,9 @@ Readonly Utility Type Type ``Readonly`` constructs a type with all properties of ``T`` set to ``readonly``. It means that the properties of the constructed value cannot be -reassigned. ``T`` must be a class or an interface type, otherwise a -:index:`compile-time error` occurs. No method (not even any getter or setter) -of ``T`` is part of the ``Readonly`` type. Its usage is represented in the -example below: +reassigned. ``T`` must be a class or an interface type. No method (not even +any getter or setter) of ``T`` is part of the ``Readonly`` type. It is +represented in the example below: .. code-block:: typescript :linenos: @@ -1032,7 +870,6 @@ example below: .. index:: type - readonly type utility type type readonly constructed value @@ -1077,27 +914,21 @@ Type ``K`` is restricted to numeric types (see :ref:`Numeric Types`), type these types. A :index:`compile-time error` occurs if any other type, or literal of any other -type is used in place of this type. - -Its usage is represented in the example below: +type is used in place of this type: .. index:: record utility type utility type value container - restriction union type numeric type - enum type string type literal - string literal type compile-time error type key - union type - + type string .. code-block:: typescript :linenos: @@ -1111,7 +942,7 @@ Its usage is represented in the example below: enum Strings { A = "AA", B = "BB"} type R7 = Record // ok enum Numbers { A, B} - type R8 = Record // ok + type R7 = Record // ok Type ``V`` has no restrictions. @@ -1120,12 +951,12 @@ A special form of object literals is supported for instances of type ``Record`` Access to ``Record`` values is performed by an *indexing expression* like *r[index]*, where *r* is an instance of type ``Record``, and *index* is the -expression of type ``K`` (see :ref:`Record Indexing Expression` for detail). +expression of type ``K``. See :ref:`Record Indexing Expression` for details. -Variables of type ``Record`` can be initialized by a valid object -literal of Record type (see :ref:`Object Literal of Record Type`) where the -literal is valid if the type of key expression is compatible with key type -``K``, and the type of value expression is compatible with the value type ``V``. +Variables of type ``Record`` can be initialized with help of valid object +literals of record type (see :ref:`Object Literal of Record Type`). Where +literal is valid if type of key expression is compatible with key type ``K`` +and type of value expression is compatible with value type ``V``. .. code-block:: typescript :linenos: @@ -1145,7 +976,6 @@ In the example above, ``K`` is a union of literal types and thus the result of an indexing expression is of type ``V``. In this case it is ``number``. .. index:: - restriction object literal literal instance @@ -1163,37 +993,6 @@ an indexing expression is of type ``V``. In this case it is ``number``. | -.. _ReturnType Utility Type: - -ReturnType Utility Type -======================= - -.. meta: - frontend_status: None - -Type ``ReturnType`` constructs a new type from the return type of a function -type ``T`` (see :ref:`Function Types`). A :index:`compile-time error` occurs if -a non-function type except type ``never`` is provided. The usage is represented -in the example below: - -.. code-block:: typescript - :linenos: - - type MyString = ReturnType<()=> string> // OK - type Incorrect = ReturnType // Compile-time error - - function foo

>() {} - /* OK, default type for the second type parameter is the return type of - the function type provided as the first type argument */ - - foo<()=>number>() // R is number - - type anAny = ReturnType // anAny is Any - type aNever = Return Type // aNever is never - - -| - .. _Utility Type Private Fields: Utility Type Private Fields @@ -1234,43 +1033,6 @@ example below: type access accessibility - field name - -| - -.. _Nesting Utility Types: - -Nesting Utility Types -=========================== - -.. meta: - frontend_status: Partly - -If more than one utility types are required then they can be nested as in example below: - -.. code-block:: typescript - :linenos: - - interface Issue { - title?: string - } - - const myIssue: Required> = { - title: "One" - }; - console.log(myIssue.title) // safe: required property - myIssue.title = "Two" // compile-time error: readonly property - -.. index:: - utility type - private field - nesting - readonly property - required property - type - access - accessibility - .. raw:: pdf diff --git a/static_core/plugins/ets/doc/spec/6_conversions.rst b/static_core/plugins/ets/doc/spec/6_conversions.rst index 9df828c277..645ac3c891 100644 --- a/static_core/plugins/ets/doc/spec/6_conversions.rst +++ b/static_core/plugins/ets/doc/spec/6_conversions.rst @@ -18,8 +18,128 @@ Contexts and Conversions .. meta: frontend_status: Done -This Chapter defines expression contexts and conversions that can be applied -to expressions in different contexts. +This Chapter defines evaluation of type of expressions depending +on expression contexts and set of conversions that can be applied +to expressions. + +.. _Type of Expression: + +Type of Expression +****************** + +.. meta: + frontend_status: Done + +Every expression written in the |LANG| programming language has a type that +is evaluated at compile time. + +In most contexts, an expression must be *compatible* with a type expected in +that context. This type is called the *target type*. + +If no target type is expected in the context, then the expression +is called a *standalone expression*: + +.. code-block:: typescript + :linenos: + + let a = expr // no target type is expected + + function foo() { + expr // no target type is expected + } + +Otherwise, the expression is *non-standalone*: + +.. index:: + inferred type + expression + type inference + compatible expression + standalone expression + context + target type + +.. code-block-meta: + skip + +.. code-block:: typescript + :linenos: + + let a: number = expr // target type of 'expr' is number + + function foo(s: string) {} + foo(expr) // target type of 'expr' is string + +The type of some expressions cannot be inferred (see :ref:`Type Inference`) +from the expression itself (see :ref:`Object Literal` as an example). +A :index:`compile-time error` occurs if such an expression +is used as a *standalone expression*. + +There are two ways to facilitate the compatibility of a *non-standalone +expression* with its surrounding context: + +#. The type of some non-standalone expressions can be inferred from the + target type (a type of expression can be different in different contexts). + +#. In the :ref:`Assignment-like Contexts` inferred expression type + can be different from the target type, then + performing an implicit *conversion* can ensure :ref:`Assignability`. + The conversion from type ``S`` to type ``T`` causes a type ``S`` expression + to be handled as a type ``T`` expression at compile time. + +.. index:: + expression + standalone expression + non-standalone expression + compatible type + compatibility + surrounding context + context + inferred type + conversion + assignability + assignable type + compile time + +A :index:`compile-time error` occurs if neither produces an appropriate +expression type. + +The rules that determine whether a *target type* allows an implicit +*conversion* vary for different kinds of contexts and types of expressions. +The *target type* can influence not only the type of the expression but also, +in some cases, its runtime behavior. + +Some cases of conversion require action at runtime to check the +validity of conversion, or to translate the runtime expression value +into a form that is appropriate for the new type ``T``. + +.. index:: + runtime behavior + expression + expression type + expression value + target type + context + runtime behavior + value + conversion + +If the type of the expression is ``readonly``, then the target type must +also be ``readonly``. Otherwise, a :index:`compile-time error` occurs: + +.. code-block:: typescript + :linenos: + + let readonly_array: readonly number[] = [1, 2, 3] + + foo1(readonly_array) // OK + foo2(readonly_array) // compile-time error + + function foo1 (p: readonly number[]) {} + function foo2 (p: number[]) {} + + let writable_array: number [] = [1, 2, 3] + foo1 (writable_array) // OK, as always safe Contexts can be of the following kinds: @@ -30,17 +150,22 @@ Contexts can be of the following kinds: - :ref:`Numeric Operator Contexts` with all numeric operators ('``+``', '``-``', etc.). .. index:: - context - conversion expression - string + readonly + target type assignment-like context - numeric operator + assignment + expression value + string concatenation concatenation + context + operator + numeric operator + conversion + type | - .. _Assignment-like Contexts: Assignment-like Contexts @@ -74,12 +199,9 @@ Assignment-like Contexts assignment-like context assignment context call context - variable declaration constant declaration constant - field field declaration - assignment assignment context expression value expression @@ -88,14 +210,9 @@ Assignment-like Contexts constructor call lambda call method call - call context - type - type inference - interface field formal parameter array literal object literal - initial value value variable constant @@ -141,10 +258,8 @@ occurs. .. index:: expression type - expression target type assignability - conversion | @@ -167,7 +282,7 @@ String Operator Contexts - An operand of a floating-point type (see :ref:`Floating-Point Types and Operations`) is converted to type ``string`` with a value that represents the operand in - the decimal form without the loss of information. + the decimal form (without the loss of information). - An operand of type ``boolean`` is converted to type ``string`` with the values ``true`` or ``false``. @@ -177,13 +292,13 @@ String Operator Contexts if values of enumeration are of type ``string``. - The operand of a nullish type that has a nullish value is converted as - follows: + described below: - - Operand ``null`` is converted to string ``null``. - - Operand ``undefined`` is converted to string ``undefined``. + - The operand ``null`` is converted to string ``null``; + - The operand ``undefined`` is converted to string ``undefined``. -- An operand of a reference type or an ``enum`` type with non-*string* values - is converted by applying the method call ``toString()``. +- An operand of a reference type or ``enum`` type is converted by applying the + method call ``toString()``. If there is no applicable conversion, then a :index:`compile-time error` occurs. @@ -202,14 +317,12 @@ The target type in this context is always ``string``: floating-point type loss of information enumeration type - string type - nullish type + string boolean decimal string conversion operand null operator undefined - method call context .. code-block:: typescript @@ -221,6 +334,8 @@ The target type in this context is always ``string``: console.log(15 + " steps") // prints "15 steps" let x: string | null = null console.log("string is " + x) // prints "string is null" + let c = c'X' + console.log("char is " + c) // prints "char is X" | @@ -238,8 +353,8 @@ Numeric contexts use numeric types conversions expression can be converted to target type ``T`` while the arithmetic operation for the values of type ``T`` is being defined. -An operand of enumeration type (see :ref:`Enumerations`) can be used in -a numeric context if values of this enumeration are of type ``int``. +An operand of an enumeration type (see :ref:`Enumerations`) can be used in +the numeric context if values of this enumeration are of type ``int``. The type of this operand is assumed to be ``int``. .. index:: @@ -248,13 +363,14 @@ The type of this operand is assumed to be ``int``. predefined type numeric type conversion + primitive type argument expression target type string conversion string context type int -Numeric contexts take the following forms: +Numeric contexts actually take the following forms: - :ref:`Unary Expressions`; - :ref:`Multiplicative Expressions`; @@ -294,7 +410,7 @@ Implicit Conversions todo: Forbidden Conversion - note: Not exhaustively tested, should work This section describes all implicit conversions that are allowed. Each -conversion is allowed in a particular context (e.g., if an expression +conversion is allowed in a particular context (for example, if an expression that initializes a local variable is subject to :ref:`Assignment-like Contexts`, then the rules of this context define what specific conversion is implicitly chosen for the expression). @@ -326,12 +442,12 @@ Widening Numeric Conversions - Values of a smaller numeric type to a larger type (see :ref:`Numeric Types`); -- Values of *enumeration* type (if enumeration constants of this type are - of a numeric type) to the same or a larger numeric type. +- Values of an *enumeration* type (if enumeration constants of this type are + of numeric type) to the same or a wider numeric type. .. index:: widening - numeric conversion + primitive conversion conversion numeric type value @@ -361,9 +477,9 @@ Widening Numeric Conversions | numeric constants| | +------------------+------------------------------------------------------+ -The above conversions cause no loss of information about the overall magnitude -of a numeric value. Some least significant bits of the value can be lost only -in conversions from an integer type to a floating-point type if the IEEE 754 +These conversions cause no loss of information about the overall magnitude of +a numeric value. Some least significant bits of the value can be lost only in +conversions from an integer type to a floating-point type if the IEEE 754 *round-to-nearest* mode is used correctly. The resultant floating-point value is properly rounded to the integer value. @@ -380,7 +496,7 @@ is properly rounded to the integer value. IEEE 754 enumeration constant widening - numeric conversion + primitive conversion rounding | @@ -393,13 +509,9 @@ Enumeration to Constants Type Conversions .. meta: frontend_status: Done -The following conversions never cause a runtime error: - -- Value of *enumeration* type without explicit base type is converted to - the corresponding integer type (see :ref:`Enumerations`). -- Value of *enumeration* type with explicit numeric base type - (see :ref:`Enumeration with Explicit Type`) is converted to the base type. - +A value of an *enumeration* type is converted to type ``int`` +if enumeration constants of this type are of type ``int``. +This conversion never causes runtime errors. .. code-block:: typescript :linenos: @@ -413,16 +525,15 @@ The following conversions never cause a runtime error: .. index:: enumeration type - numeric base type - base type conversion - integer type constant runtime error type int -A value of *enumeration* type with ``string`` constants is converted to type ``string``. This conversion never causes -a runtime error. + +A value of ``enumeration`` type is converted to type ``string`` if enumeration +constants of this type are of type ``string``. +This conversion never causes runtime errors. .. code-block:: typescript :linenos: @@ -433,13 +544,13 @@ a runtime error. .. index:: enumeration type - string type + type string conversion constant runtime error -A value of *enumeration* type with an explicitly declared type of constants -is converted to the declared type. This conversion never causes a runtime error. +A value of an *enumeration* type with explicitly declared type of its constants +is converted to the declared type. This conversion never causes runtime errors. .. code-block:: typescript :linenos: @@ -451,11 +562,78 @@ is converted to the declared type. This conversion never causes a runtime error. .. index:: enumeration type conversion - value constant - type declaration runtime error + +| + +.. _Constant to Enumeration Conversions: + +Constant to Enumeration Conversions +=================================== + +.. meta: + frontend_status: None + +A constant expression of some integer type is converted to *enumeration* type if: + +- Enumeration constants are of type ``int``; +- Value of the constant expression is equal to the value of one of the + enumeration type constants. + +This conversion never causes runtime errors. + +.. code-block:: typescript + :linenos: + + enum IntegerEnum {a, b, c} + let e: IntegerEnum = 1 // ok, e is set to IntegerEnum.b + e = 3 // compile-time error, there is no constant with this value + + const one = 2 + e = one // ok, e is set to IntegerEnum.c + +A similar conversion of a string type expression also works as follows: + +.. code-block:: typescript + :linenos: + + enum StringEnum {A = "a", B = "b", C = "c"} + let e: StringEnum = "b" // OK, , e is set to StringEnum.B + e = "d" // compile-time error, there is no constant with this value + e = StringEnum.B // OK + +.. index:: + constant expression + integer type + conversion + enumeration type + enumeration constant + type int + string type + expression + +A similar conversion is applcable for constants of the *enumeration* explicitly +declared type. This conversion never causes runtime errors. + +.. code-block:: typescript + :linenos: + + enum DoubleEnum: double {a = 1.0, b = 2.0, c = 3.141592653589} + let dbl_enum: DoubleEnum = DoubleEnum.a + dbl_enum = 1.0 // OK + dbl_enum = 5.0 // compile-time error, there is no constant with this value + +.. index:: + constant expression + conversion + enumeration type + enumeration constant + expression + + + | .. _Numeric Casting Conversions: @@ -467,12 +645,18 @@ Numeric Casting Conversions frontend_status: Done A *numeric casting conversion* occurs if the *target type* and the expression -type are both ``numeric``. -The context for a *numeric casting conversion* is where conversion methods -are used as defined in the standard library (see :ref:`Standard Library`). +type are both ``numeric``. +There are two contexts when *numeric casting conversion* are applied: + +- Using conversion methods defined in the standard library + (see :ref:`Standard Library`); + +- Or, implicitly in the following arithmetic operations: + :ref:`Postfix Increment`, :ref:`Postfix Decrement`, + :ref:`Prefix Increment`, :ref:`Prefix Decrement`. -The explicit use of methods for *numeric cast conversions* is represented in -the following example: +The following example illustrates explicit use of +methods for *numeric cast conversions*: .. code-block-meta: not-subset @@ -480,12 +664,12 @@ the following example: .. code-block:: typescript :linenos: - function process_int(an_int: int) { /* ... */ } + function process_int(an_int: int) { ... } let pi = 3.14 process_int(pi.toInt()) -A numeric casting conversion never causes a runtime error. +These conversions never cause runtime errors. Numeric casting conversion of an operand of type ``double`` to target type ``float`` is performed in compliance with the IEEE 754 rounding rules. This @@ -512,14 +696,6 @@ Double infinity is converted to the same-signed floating-point infinity. float infinity infinity double floating-point infinity - double infinity - double NaN - Nan - float NaN - IEEE 754 - rounding rule - conversion - infinity A numeric conversion of a floating-point type operand to target types ``long`` or ``int`` is performed by the following rules: @@ -543,10 +719,6 @@ A numeric casting conversion of a floating-point type operand to types .. index:: target type floating-point operand - floating-point type - long type - int type - NaN numeric conversion byte short @@ -561,7 +733,6 @@ A numeric casting conversion of a floating-point type operand to types floating-point type floating-point infinity rounding rules - round-toward-zero A numeric casting conversion from an integer type to a smaller integer type ``I`` discards all bits except the *N* lowest ones, where *N* is @@ -572,9 +743,8 @@ value can differ from that of the original value. .. index:: IEEE 754 floating-point type - numeric casting conversion operand - conversion + NaN positive infinity target type negative infinity diff --git a/static_core/plugins/ets/doc/spec/7_expressions.rst b/static_core/plugins/ets/doc/spec/7_expressions.rst index 9276004869..8c876db5a2 100644 --- a/static_core/plugins/ets/doc/spec/7_expressions.rst +++ b/static_core/plugins/ets/doc/spec/7_expressions.rst @@ -18,7 +18,7 @@ Expressions .. meta: frontend_status: Partly -This Chapter describes the meanings of expressions and the rules for the +This chapter describes the meanings of expressions and the rules for the evaluation of expressions, except the expressions related to coroutines (see :ref:`Coroutines (Experimental)`) and expressions described as experimental (see :ref:`Lambda Expressions with Receiver`). @@ -27,7 +27,6 @@ evaluation of expressions, except the expressions related to coroutines evaluation expression coroutine - lambda expression with receiver The syntax of *expression* is presented below: @@ -75,13 +74,7 @@ The syntax of *expression* is presented below: | conditionalOrExpression ; -.. index:: - expression - coroutine - lambda expression with receiver - syntax - -The syntax below introduces several productions to be used by other +The syntax below introduce several productions to be used by other expression syntax rules: .. code-block:: abnf @@ -95,12 +88,10 @@ expression syntax rules: ``objectReference`` refers to one of the following three options: - Class that is to handle static members; - - ``super`` that is to access constructors declared in the superclass, or the overridden method version of the superclass; - -- *primaryExpression* that is to refer to a variable - after evaluation, unless the manner of the +- *primaryExpression* that is to refer to an instance variable of a class, + interface, or function type after evaluation, unless the manner of the evaluation is altered by the chaining operator '``?.``' (see :ref:`Chaining Operator`). @@ -111,19 +102,20 @@ If the form of *primaryExpression* is *super*, then the pattern "``super?.``" is handled as a :index:`compile-time error`. .. index:: - syntax - expression - static member - class - access constructor + field + constructor superclass - method overriding + method variable + expression + instance variable + class + interface + function type evaluation chaining operator pattern - super The syntax of *arguments* is presented below: @@ -142,16 +134,12 @@ The syntax of *arguments* is presented below: '...'? expression ; -The *arguments* grammar rule refers to the list of call arguments. Only +The *arguments* grammar rule refers to the list of arguments of a call. Only the last argument can have the form of a spread expression (see :ref:`Spread Expression`). .. index:: argument - call argument - syntax - expression - call grammar rule spread expression @@ -178,7 +166,6 @@ The result of a program expression *evaluation* denotes the following: expression variable lvalue - value assignment A variable or a value are equally considered the *value of the expression* @@ -211,125 +198,6 @@ with values that can be determined at compile time. | -.. _Type of Expression: - -Type of Expression -================== - -.. meta: - frontend_status: Done - -Every expression in the |LANG| programming language has a type. The type of an -expression is defined at compile time. - -In most contexts, an expression must be *compatible* with the type expected in -a context. This type is called *target type*. If no target type is available -in a context, then the expression is called a *standalone expression*: - -.. code-block:: typescript - :linenos: - - let a = expr // no target type is available - - function foo() { - expr // no target type is available - } - -Otherwise, the expression is *non-standalone*: - -.. index:: - inferred type - expression - evaluation - compile time - compatibility - type inference - compatible expression - standalone expression - non-standalone expression - context - target type - -.. code-block-meta: - skip - -.. code-block:: typescript - :linenos: - - let a: number = expr // target type of 'expr' is number - - function foo(s: string) {} - foo(expr) // target type of 'expr' is string - -In some cases, the type of an expression cannot be inferred (see -:ref:`Type Inference`) from the expression itself (see -:ref:`Object Literal` as an example). If such an expression is used as a -*standalone expression*, then a :index:`compile-time error` occurs: - -.. code-block:: typescript - :linenos: - - class P { x: number, y: number } - - let x = { x: 10, y: 10 } // standalone object literal - compile time error - let y: P = { x: 10, y: 10 } // OK, type of object literal is inferred - -The evaluation of an expression type requires completing the following steps: - -#. Collect information for type inference (type annotation, - generic constraints, etc); - -#. Perform :ref:`Type Inference`; - -#. If the expression type is not yet inferred at a previous step, and the - expression is a literal in the general sense, including :ref:`Array Literal`, - then an attempt is made to evaluate the type from the expression itself. - -.. index:: - expression - standalone expression - expression type - context - evaluation - array literal - inferred type - string - type annotation - generic - constraint - type inference - object - literal - -A :index:`compile-time error` occurs if none of these steps produces an -appropriate expression type. - -If the expression type is ``readonly``, then the target type must -also be ``readonly``. Otherwise, a :index:`compile-time error` occurs: - -.. code-block:: typescript - :linenos: - - let readonly_array: readonly number[] = [1, 2, 3] - - foo1(readonly_array) // OK - foo2(readonly_array) // compile-time error - - function foo1 (p: readonly number[]) {} - function foo2 (p: number[]) {} - - let writable_array: number [] = [1, 2, 3] - foo1 (writable_array) // OK, as always safe - -.. index:: - expression - expression type - readonly - target type - type - -| - .. _Normal and Abrupt Completion of Expression Evaluation: Normal and Abrupt Completion of Expression Evaluation @@ -345,41 +213,36 @@ in the following sections. An expression evaluation *completes normally* if all computational steps are performed without throwing an error. -On the contrary, an expression evaluation *completes abruptly* if an error is -thrown in the process. The information on the cause of an abrupt completion -is provided in the value attached to the error object. +On the contrary, an expression *completes abruptly* if the expression +evaluation throws an error. + +The information about the causes of an abrupt completion can be available +in the value attached to the error object. .. index:: normal completion abrupt completion evaluation expression - error - error object value Runtime errors can occur as a result of expression or operator evaluation as follows: +- If an *array reference expression* has the value ``null``, then an *array + indexing expression* (see :ref:`Array Indexing Expression`) throws + ``NullPointerError``. - If the value of an array index expression is negative, or greater than, or equal to the length of the array, then an *array indexing expression* (see - :ref:`Array Indexing Expression`) throws ``RangeError``. -- If the type of a value being assigned to a fixed-size array element is not - a subtype of an array element type, then an :ref:`Assignment` throws - *ArrayStoreError*. -- If a :ref:`Cast Expression` conversion cannot be performed at runtime, then - it throws ``ClassCastError``. -- If a right-hand expression has the zero value, then the integer division or - integer remainder (see :ref:`Division` and :ref:`Remainder`) operator throws - ``ArithmeticError``. + :ref:`Array Indexing Expression`) throws ``ArrayIndexOutOfBoundsError``. +- If a conversion cannot be performed at runtime, then a + :ref:`Cast Expression` throws ``ClassCastError``. +- If the right-hand expression has the zero value, then integer + division (see :ref:`Division`), or integer remainder (see :ref:`Remainder`) + operators throw ``ArithmeticError``. .. index:: predefined operator - evaluation - expression - operator evaluation - expression evaluation - operator runtime error array reference expression value @@ -387,9 +250,6 @@ follows: error array indexing expression array - fixed-size array - subtype - array length runtime cast expression integer division @@ -397,23 +257,31 @@ follows: operator remainder operator array element + reference type + array literal + method call expression + prefix + postfix + increment operator + decrement operator array element type + cast assignment -An error during the evaluation of an expression can be caused by a possible -hard-to-predict and hard-to-handle linkage and virtual machine error. +Possible hard-to-predict and hard-to-handle linkage and virtual machine errors +can cause errors during the evaluation of an expression. Abrupt completion of the evaluation of a subexpression results in the following: -- Immediate abrupt completion of an expression that contains the subexpression - (if the evaluation of the contained subexpression is required +- Immediate abrupt completion of the expression that contains such a + subexpression (if the evaluation of the contained subexpression is required for the evaluation of the entire expression); and - Cancellation of all subsequent steps of the normal mode of evaluation. The terms *complete normally* and *complete abruptly* can also denote -normal and abrupt completion of the execution of a statement (see +normal and abrupt completion of the execution of statements (see :ref:`Normal and Abrupt Statement Execution`). A statement can complete -abruptly for many reasons in addition to an error being thrown. +abruptly for a variety of reasons in addition to an error being thrown. .. index:: normal completion @@ -421,7 +289,6 @@ abruptly for many reasons in addition to an error being thrown. execution statement virtual machine - error expression subexpression evaluation @@ -440,11 +307,10 @@ Order of Expression Evaluation The operands of an operator are evaluated from left to right in accordance with the following rules: -- The order of evaluation depends on the assignment operator (see - :ref:`Assignment`). +- for order of evaluation assignment operator see :ref:`Assignment`. -- Any right-hand expression is evaluated only after the left-hand expression - of a binary operator is fully evaluated. +- Any right-hand expression is evaluated only after the left-hand expression of a + binary operator is fully evaluated. - Any part of the operation can be executed only after every operand of an operator (except conditional operators '``&&``', '``||``', and '``?:``') @@ -454,23 +320,20 @@ the following rules: :ref:`Division`), or integer remainder '``%``' (see :ref:`Remainder`) can throw ``ArithmeticError`` only after the evaluations of both operands complete normally. - - The |LANG| programming language follows the order of evaluation as indicated explicitly by parentheses, and implicitly by the precedence of operators. - This rule particularly applies for infinity and ``NaN`` values of - floating-point calculations. - |LANG| considers integer addition and multiplication as provably associative. - However, floating-point calculations must not be naively reordered because + This rule particularly applies for infinity and ``NaN`` values of floating-point + calculations. + |LANG| considers integer addition and multiplication as provably associative; + however, floating-point calculations must not be naively reordered because they are unlikely to be computationally associative (even though they appear mathematically associative). .. index:: operand - operator - assignment operator abrupt completion - normal completion evaluation + operator conditional operator integer division integer remainder @@ -503,7 +366,7 @@ Operator Precedence frontend_status: Partly todo: fix 'await' precedence -The table below summarizes the entire information on the precedence and +The table below summarizes all information on the precedence and associativity of operators. Each section on a particular operator also contains detailed information. @@ -584,6 +447,7 @@ also contains detailed information. - right-to-left + .. index:: precedence bitwise operator @@ -598,16 +462,6 @@ also contains detailed information. prefix operator logical operator relational operator - exponentiation - member access - chaining - access - call - ternary operator - bitwise operator - unary operator - typeof operator - await operator | @@ -636,13 +490,11 @@ right-hand argument expression is evaluated. expression normal completion comma-separated argument expression - parenthesis method call constructor call - class instance - creation expression + class instance creation expression instance - function call + function call expression abrupt completion | @@ -670,16 +522,13 @@ evaluation of the following expressions requires specific explanation: evaluation expression method call expression - class instance - method call - array + class instance creation expression + array creation expression indexing expression assignment indexing lambda lambda expression - resizable array - creation expression | @@ -691,15 +540,12 @@ Literal .. meta: frontend_status: Done -*Literals* (see :ref:`Literals`) denote fixed and unchanging values. Type of -a literal is the type of an expression. +Literals (see :ref:`Literals`) denote fixed and unchanging values. Type of +a literal (see :ref:`Literals`) is the type of an expression. .. index:: literal - expression value - literal - type | @@ -720,8 +566,8 @@ syntax rule as follows: qualifiedName typeArguments? ; -Type of a *named reference* expression is the type of the entity to which a -*named reference* refers. +Type of a *named reference* expression is the type of the entity a +*named reference* refers to. *QualifiedName* (see :ref:`Names`) is an expression that consists of dot-separated names. If *qualifiedName* consists of a single identifier, then @@ -730,7 +576,6 @@ it is called a *simple name*. .. index:: expression named reference - qualified name syntax entity dot-separated name @@ -752,236 +597,82 @@ If *typeArguments* are provided, then *qualifiedName* is a valid instantiation of the generic method or function. Otherwise, a :index:`compile-time error` occurs. -A :index:`compile-time error` also occurs if a name referred by *qualifiedName* -is one of the following: +A :index:`compile-time error` also occurs in the following situations: -- Undefined or inaccessible; -- Named constructor (see :ref:`Constructor Names`). +- If a name referred by *qualifiedName* is undefined or inaccessible; or +- If ambiguity occurs while resolving a name except the function or method + overloading case (see :ref:`Function, Method and Constructor Overloading`). Type of a *named reference* is the type of an expression. -If a *named reference* refers to a function name, it is called :ref:`Function Reference`. -If a *named reference* refers to a method name, it is called :ref:`Method Reference`. +If a *named reference* refers to a non-static method of a class or an interface +then the named reference is bounded with the object of that class or interface. .. index:: simple name entity - declaration compilation unit - variable - parameter - function - method - qualified name - imported entity - exported entity + compile-time error namespace - class - interface - record indexing expression - instantiation - generic method - generic function - named constructor named reference - name - function reference - method reference - -| - -.. _Function Reference: - -Function Reference -================== - -A *function reference* refers to a declared or imported function. -Type of a *function reference* is derived from the function signature: - -.. code-block:: typescript - :linenos: - - function foo(n: number): string { return n.toString() } - let func = foo // type of func is '(n: number) => string' - let x = func(1) // foo() called via reference - -A *function reference* can refer to a generic function but only -if :ref:`Explicit Generic Instantiations` is present, otherwise -a :index:`compile-time error` occurs: - -.. code-block:: typescript - :linenos: - - function gen (x: T) {} - - let a = gen // ok - let b = gen // compile-time error: no explicit type arguments - -.. index:: - function reference - function signature - declared function - imported function - generic function - generic instantiation - type argument - -A :index:`compile-time error` occurs if an *overload alias* is -used in a named reference: - -.. code-block:: typescript - :linenos: - - function foo1(n: number) {} - function foo2(s: string) {} - overload foo { foo1, foo2 } - - foo(1) // OK, overload call - let x = foo // Error: ref to overload - let y = foo2 // ok, ref to foo2 - -A name of a :ref:`Function with Overload Signatures` can be used -as named reference. The type of a *function reference* is derived -from a signature of implementation body -(see :ref:`Overload Signatures Implementation Body`): - -.. code-block:: typescript - :linenos: - - function foo(n: number) - function foo(s: string) - function foo(...x: Any[]): Any {} - - let x = foo // ok, type is (...x: Any[]) => Any - -.. index:: + expression overloading - overload alias - named reference - function - overload signature - function reference - implementation body - -| - -.. _Method Reference: - -Method Reference -================ - -A *method reference* refers to a *static* or *instance* method -of a class or an interface. -Type of a *method reference* is derived from the method signature: + generic method + ambiguity .. code-block:: typescript :linenos: - class C { - static foo(n: number) {} - bar (s: string): boolean { return true } - } - - // Method reference to a static method - const m1 = C.foo // type of 'm1' is (n: number) => void - - // Method reference to an instance method - const m2 = new C().bar // type of 'm1' is (s: string) => boolean - -.. index:: - method reference - static method - instance method - class - interface - method signature - -If *method reference* refers to an instance method, that the named reference -is bounded with the used instance of that class or interface. - -.. code-block:: typescript - :linenos: + import * as compilationUnitName from "someFile" - class C { - field = 123 - method(): number { return this.field } + class Type { + static method() {} + method () { + let local = this.method // Qualified name referring an instance method + } } - let c1 = new C - let c2 = new C - let m1 = c1.method // 'c1' is bounded - let m2 = c2.method // 'c2' is bounded - c1.field = 42 - console.log (m1(), m2()) // Outputs: 42 123 - -A *method reference* can refer to a generic method only if a generic -instantiation is explicitly present (see :ref:`Explicit Generic Instantiations`). -Otherwise, a :index:`compile-time error` occurs: - -.. index:: - method reference - instance method - named reference - class - interface - generic method - generic instantiation - method signature - -.. code-block:: typescript - :linenos: - - class C { - gen (x: T) {} + const m1 = Type.method // Qualified name referring a static method + const m2 = (new Type).method + + function foo (parameter: Type) { + let local: Type = parameter /* 'parameter' here is the + expression in the form of simple name, type of 'parameter' is the + explicitly declared function parameter type */ + local = new Type () /* 'local' here is the expression in the + form of simple name */ + local = compilationUnitName.someExportedVariable /* qualifiedName here + refers to a variable imported from a compilation unit */ + let func = foo /* foo is a simple name of the function declared in this + module, type of 'func' is the function type derived from the function + 'foo()' signature. func itself is a new function object */ + + goo() // goo is an undefined name - compile-time error + let bar_ref = bar // bar is an ambiguous reference - compile-time error } - let a = new C().gen // ok - let b = new C().gen // compile-time error: no explicit type arguments + function bar (p: string) {} + function bar (p: number) {} -A :index:`compile-time error` occurs if a method *overload alias* is -used in a named reference: + function generic_function () {} + let instantiation = generic_function /* type of 'instantiation' is + a function type derived from the signature of instantiated function + 'generic_function ()' */ -.. code-block:: typescript - :linenos: - class C { - foo1(n: number) {} - foo2(s: string) {} - overload foo { foo1, foo2 } + class aClass { + field = 123 + method(): number { return this.field } } - - let f = new C().foo // compile-time error - -.. index:: - type argument - method - overload alias - named reference - -A name of a :ref:`Class Method with Overload Signatures` or -:ref:`Interface Method Overload Signatures` can be used as a named reference. -The type of a *method reference* is derived from the signature of an -implementation body (see :ref:`Overload Signatures Implementation Body`): - -.. code-block:: typescript - :linenos: - - class C { - foo1(n: number) - foo2(s: string) - foo(...x: Any[]): Any {) + const anObject = new aClass + const aMethod = anObject.method + anObject.field = 42 + console.log (aMethod()) // Outputs 42 + + let global: Object = goo() + function goo() { + console.log (global) // compile-time or runtime error } - let f = new C().foo // ok, type is (...x: Any[]) => Any - -.. index:: - class - method - overload signature - interface - named reference - method reference - signature - implementation body | @@ -1012,7 +703,7 @@ The syntax of *array literal* is presented below: ; An *array literal* is a comma-separated list of *initializer expressions* -enclosed in square brackets '``[``' and '``]``'. A trailing comma after the last +enclosed in '``[``' and '``]``'. A trailing comma after the last expression in an array literal is ignored: .. index:: @@ -1020,12 +711,9 @@ expression in an array literal is ignored: array tuple expression - class value - syntax initializer expression trailing comma - bracket .. code-block:: typescript :linenos: @@ -1033,7 +721,7 @@ expression in an array literal is ignored: let x = [1, 2, 3] // ok let y = [1, 2, 3,] // ok, trailing comma is ignored -The number of initializer expressions enclosed in square brackets of the array +The number of initializer expressions enclosed in braces of the array initializer determines the length of the array to be constructed. If sufficient space is allocated for a new array, then a one-dimensional @@ -1043,7 +731,7 @@ are initialized to the values specified by initializer expressions. .. index:: initializer expression brace - array length + length of array array initializer array one-dimensional array @@ -1052,11 +740,12 @@ are initialized to the values specified by initializer expressions. initializer expression value -On the contrary, the evaluation of the array initializer completes abruptly if: +On the contrary, the evaluation of the array initializer completes abruptly +in the following situations: -- Space allocated for a new array is insufficient, and +- If the space allocated for a new array is insufficient, and ``OutOfMemoryError`` is thrown; or -- Some initialization expression completes abruptly. +- If some initialization expression completes abruptly. .. index:: evaluation @@ -1077,24 +766,21 @@ Type of an *array literal expression* is inferred by the following rules: initializer expression execution value - nested literal array element array literal expression - array literal array type type inference - If a context is available, then type is inferred from the context. If successful, then type of an array literal is the inferred type ``T[]``, ``Array``, or tuple. -- Otherwise, type is inferred from the types of array literal elements. +- Otherwise, type is to be inferred from the types of array literal + elements. More details of both cases are presented below. .. index:: type inference - inferred type - tuple context array literal array element @@ -1141,23 +827,17 @@ of an assignment, call parameter type, or type of a cast expression: .. index:: - type - inferred type - type inference - type annotation - variable - variable declaration - assignment - cast expression - call parameter type - two-dimensional array - array initialization - array literal literal + string literal + instance + error + assignability + inheritance context array + tuple -Possible kinds of context are represented in the following example: +The following example illustrates possible kinds of context: .. code-block:: typescript :linenos: @@ -1165,23 +845,29 @@ Possible kinds of context are represented in the following example: let array: number[] = [1, 2, 3] // assignment context function foo (array: number[]) {} foo ([1, 2, 3]) // call context - let b = [1, 2, 3] as number[] // casting conversion + [1, 2, 3] as number[] // casting conversion + +.. index:: + type inference + context + array type + array literal + type + type annotation + variable declaration + assignment + call parameter type + cast expression All valid conversions are applied to the initializer expression, i.e., each initializer expression type must be assignable (see :ref:`Assignability`) to the array element type. Otherwise, a :index:`compile-time error` occurs. .. index:: - array - assignment - context - function - casting conversion - initializer expression conversion + initializer expression assignability - array element - type + array element type .. code-block:: typescript :linenos: @@ -1209,28 +895,23 @@ union type. Otherwise, a :index:`compile-time error` occurs: .. code-block:: typescript :linenos: - let union_of_arrays_int: int[] | string[] = [1, 2] // OK, literal is int[] - // Compatible with union - let union_of_arrays: number[] | string[] = [1, 2] // Error, literal is int[] - // incompatible with union + let union_of_arrays: number[] | string[] = [1, 2] // OK, type of literal is number[] let incorrect_union_of_arrays: number[] | string[] = [1, 2, "string"] - /* Error: (number|string)[] (type of the literal) is not compatible with + /* compile-time error: (number|string)[] (type of the literal) is not compatible with number[] | string[] (type of the variable) */ .. index:: - tuple - type - context + tuple type literal expression compatibility context - array literal + literal expression + type + array literal union type type inference - inferred type - variable If the type used in the context is a *fixed-size array type* (see :ref:`Fixed-size Array Types`), and each initializer expression type is @@ -1242,19 +923,11 @@ compatible with the array element type, then an array literal is of let array: FixedArray = [1, 2] - -If the type used in the context is a readonly array, then an array literal -is of readonly array type. - .. index:: fixed-size array type initializer expression array element array literal - type - context - readonly - array | @@ -1266,45 +939,40 @@ Array Type Inference from Types of Elements .. meta: frontend_status: Done -Where no context is set, and thus the type of an array literal cannot be -inferred from the context (see :ref:`Type of Expression`), the type of array -literal ``[`` ``expr``:sub:`1`, ``...`` , ``expr``:sub:`N` ``]`` is inferred -from the initialization expression instead by using the following algorithm: - +When type of an array literal ``[`` ``expr``:sub:`1`, ``...`` , ``expr``:sub:`N` ``]`` +cannot be inferred from the context, then the following algorithm is +used to infer it from initialization expressions: .. #. If there is no expression (*N == 0*), then type is ``Object[]``. -#. If array literal (*N == 0*) includes no element, then the type of +#. If there are no elements in the array literal (*N == 0*), then type of the array literal cannot be inferred, and a :index:`compile-time error` occurs. -#. If at least one element of an expression type cannot be determined, then - the type of the array literal cannot be inferred, and a +#. If type of at least one of element expression cannot be determined, then + type of the array literal cannot be inferred, and a :index:`compile-time error` occurs. -#. If each initialization expression is of a numeric type (see - :ref:`Numeric Types`), then the array literal type is ``number[]``. +#. If each initialization expression is of numeric type (see + :ref:`Numeric Types`), then the type of the array literal is ``number[]``. -#. If all initialization expressions are of the same type ``T``, - then the array literal type is ``T[]``. +#. If all initialization expressions are of the same type ``T``, then the + type of the array literal is ``T[]``. -#. Otherwise, the array literal type is constructed as the union type - ``T``:sub:1 ``| ... | T``:sub:`N`, - where ``T``:sub:`i` is the type of *expr*:sub:`i`, and then: +#. Otherwise, the type of array literal is constructed as the union type + ``T``:sub:1 ``| ... | T``:sub:N, + where ``T``:sub:i is the type of *expr*:sub:i and then: - - If ``T``:sub:`i` is a literal type, then it is replaced for its supertype; + - If ``T``:sub:i is a literal type, then it is replaced for its supertype; - - If ``T``:sub:`i` is a union type comprised of literal types, then each - constituent literal type is replaced for its supertype. - - - :ref:`Union Types Normalization` is applied to the resultant union type - after the above replacements. + - If ``T``:sub:i is a union type that contains literal types, + then each literal type is replaced for its supertype. + - :ref:`Union Types Normalization` is applied + to the resultant union type after these replacements. .. index:: - context type inference - inferred type array element array literal type @@ -1314,13 +982,10 @@ from the initialization expression instead by using the following algorithm: numeric type union type normalization union type - supertype - .. code-block:: typescript :linenos: - type A = number let u : "A" | "B" = "A" let a = [] // compile-time error, type cannot be inferred @@ -1349,9 +1014,8 @@ expression (see :ref:`New Expressions`). object literal expression instance - class class instance - instance creation expression + creation expression The syntax of *object literal* is presented below: @@ -1434,10 +1098,6 @@ methods: const o1: Base1 = { m() {} } // compile-time error const o2: Base2 = { m() {} } // compile-time error -.. index:: - object literal - method - A :index:`compile-time error` occurs if a class has a private or a protected method, and its object literal contains same-name methods with override-compatible signatures (see :ref:`Override-Compatible Signatures`): @@ -1464,17 +1124,8 @@ override-compatible signatures (see :ref:`Override-Compatible Signatures`): o.method (new Derived) // OK o.method (new Base) // compile-time error -If a class or an interface has some method implementation, then its object -literal can either skip providing a new method implementation, or -provide its own version of method implementation: - -.. index:: - overriding - signature - compatibility - interface - method implementation - +If a class or an interface has some method implementaion, then its object +literal can skip providing a new implemention of this method: .. code-block:: typescript :linenos: @@ -1482,59 +1133,26 @@ provide its own version of method implementation: class Base { method () { console.log ("method() from Base is called") } } - const x1: Base = {} // Valid literal of type Base - x1.method () - - const x2: Base = { // Valid literal of type compatible to Base - method () { console.log ("method() from object literal is called") } - } - x2.method () + const x: Base = {} // Valid literal of type Base + x.method () interface I { method () { console.log ("method() from I is called") } } - const x3: I = {} // Valid literal of anonymous class type - x3.method () + const x: I = {} // Valid literal of anonymous class type + x.method () - const x4: I = { // Valid literal of anonymous class type - method () { console.log ("method() from object literal is called") } - } - x4.method () Type of an *object literal expression* is always some class ``C`` that is inferred from the context. A type inferred from the context can be either a -class (see :ref:`Object Literal of Class Type`), or an anonymous class created -for the inferred interface type (see :ref:`Object Literal of Interface Type`). - -Thus any reference to ``this`` in an object literal method is the reference to -the type of the object literal, i.e., the class defined above. - -.. index:: - object literal - object literal expression - class type - inferred type - context - interface type - this - class - -.. code-block:: typescript - :linenos: - - class A { - method () { - this /* refers to class A type */ - const b: B = { method () { this /* refers to class B type */ } } - } - } - +named class (see :ref:`Object Literal of Class Type`), or an anonymous class +created for the inferred interface type (see +:ref:`Object Literal of Interface Type`). A :index:`compile-time error` occurs if: -- Type of an object literal cannot be inferred from the context (see - :ref:`Type of Expression` for an example); +- Type of an object literal cannot be inferred from the context; - The inferred type is not a class or interface type; - The context is a union type, and an object literal can be treated as value of several of union component types; or @@ -1545,15 +1163,16 @@ A :index:`compile-time error` occurs if: .. index:: object literal expression type inference - inferred type - class type - interface type - context - union type - object literal - union component type + named class abstract method abstract class + anonymous class + context + class type + anonymous class + interface type + compile-time error + inferred type .. code-block:: typescript :linenos: @@ -1615,7 +1234,6 @@ A :index:`compile-time error` occurs if the identifier does not name an class compile-time error accessible member field - type .. code-block:: typescript :linenos: @@ -1646,13 +1264,9 @@ such fields can be skipped in the object literal. .. index:: expression name-value pair - assignability - type + compatibility field type class field - value - default - field object literal initializer @@ -1675,10 +1289,8 @@ These situations are presented in the examples below: .. index:: parameterless constructor - class accessibility context - class-composite context object literal .. code-block:: typescript @@ -1701,7 +1313,7 @@ These situations are presented in the examples below: let c: C = {} /* compile-time error - constructor is not accessible */ -If a class has accessors (see :ref:`Class Accessor Declarations`) for a property, +If a class has accessors (see :ref:`Accessor Declarations`) for a property, and its setter is provided, then this property can be used as a part of an object literal. Otherwise, a :index:`compile-time error` occurs: @@ -1720,8 +1332,6 @@ object literal. Otherwise, a :index:`compile-time error` occurs: .. index:: accessor - accessor declaration - property setter object literal @@ -1753,15 +1363,14 @@ same fields as the interface ``I`` properties. .. index:: interface type type inference - inferred type context object literal anonymous class interface field -Any properties that are optional can be skipped in an object literal. -The values of such optional properties are set to ``undefined`` as follows: +If some interface properties are of an optional type, then such properties can +be skipped in an object literal, their values are set to ``undefined``: .. code-block:: typescript :linenos: @@ -1774,21 +1383,17 @@ The values of such optional properties are set to ``undefined`` as follows: let b: Person = {name: "Bob", age: 25} // 'sex' field will have 'undefined' value -Properties that are non-optional cannot be skipped in an object literal, +Properties of a non-optional type cannot be skipped in an object literal, despite some property types having default values (see :ref:`Default Values for Types`). If a non-optional property (e.g., *age* in the example above) is skipped, then a :index:`compile-time error` occurs. -If interface type ``I`` contains a method, then an object literal must provide -this method with its implementation as follows: +Interface type ``I`` must contain properties only. If interface type ``I`` +contains a method, then a :index:`compile-time error` occurs as follows: .. index:: object literal interface type - optional property - non-optional property - default value - value interface property undefined value union type @@ -1804,10 +1409,9 @@ this method with its implementation as follows: name: string foo() } - let i1 : I = {name: "Bob"} // compile-time error, method foo() is not defined - let i2 : I = {name: "Bob", foo() {console.log ("Hi!")} } // OK + let i : I = {name: "Bob"} // compile-time error, interface has methods -If an interface has accessors (see :ref:`Interface Properties`) for some +If an interface has accessors (see :ref:`Accessor Declarations`) for some property, and the property is used in an object literal, then a :index:`compile-time error` occurs: @@ -1850,11 +1454,10 @@ type: .. index:: object literal generic type - utility type record type type property - value type - key type + type value + type key initialization value @@ -1907,9 +1510,7 @@ must be listed in the object literal. Otherwise, a :index:`compile-time error` occurs: .. index:: - syntax - key type - value + key union type literal object literal @@ -1956,7 +1557,6 @@ is to be performed by the following steps: object literal evaluation named class - class anonymous class interface parameterless constructor @@ -1967,8 +1567,8 @@ is to be performed by the following steps: name-value pair field value - initial value expression + assignment literal type readonly field @@ -1990,7 +1590,7 @@ initialized class instance if so do all name-value pairs. | -.. _Spread Expression: +.. _spread Expression: Spread Expression ***************** @@ -2000,10 +1600,9 @@ Spread Expression *Spread expression* can be used only within an array literal (see :ref:`Array Literal`) or argument passing. The *expression* must be of -array type (see :ref:`Array Types`), tuple type (see :ref:`Tuple Types`), -any type which has the iterator defined (see :ref:`Iterable Types`), or union -type (see :ref:`Union Types`) which consists only of types mentioned before -after normalization. Otherwise, a :index:`compile-time error` occurs. +array type (see :ref:`Array Types`) or tuple type (see :ref:`Tuple Types`) or +any type which has iteraror defined (see :ref:`Iterable Types`). +Otherwise, a :index:`compile-time error` occurs. The syntax of *spread expression* is presented below: @@ -2013,14 +1612,14 @@ The syntax of *spread expression* is presented below: '...' expression ; -A *spread expression* for arrays, tuples, or iterable types can be evaluated +A *spread expression* for arrays or tuples or iterable types can be evaluated as follows: - By the compiler at compile time if *expression* is constant (see :ref:`Constant Expressions`); - At runtime otherwise. -An array, tuple, or iterable object referred by the *expression* is broken by +An array or tuple or iterable object referred by the *expression* is broken by the evaluation into a sequence of values. This sequence is used where a *spread expression* is used. It can be an assignment, a call of a function, method, or constructor. A sequence of types of these values is the type of the @@ -2033,97 +1632,59 @@ method, or constructor. A sequence of types of these values is the type of the expression array type tuple type - iterator iterable type - syntax runtime compiler evaluation - constant - value call function method constructor assignment -A spread expression for arrays is represented in the example below: - .. code-block:: typescript :linenos: let array1 = [1, 2, 3] let array2 = [4, 5] let array3 = [...array1, ...array2] // spread array1 and array2 elements - // while building new array literal at compile time + // while building new array literal during compile-time console.log(array3) // prints [1, 2, 3, 4, 5] + foo (...array2) // spread array2 elements into arguments of the foo() call function foo (...array: number[]) { console.log (array) } - foo (...array2) // spread array2 elements into arguments of the foo() call + run_time_spread_application1 (array1, array2) // prints [1, 2, 3, 42, 4, 5] function run_time_spread_application1 (a1: number[], a2: number[]) { console.log ([...a1, 42, ...a2]) // array literal will be built at runtime } - run_time_spread_application1 (array1, array2) // prints [1, 2, 3, 42, 4, 5] - - -A spread expression for tuples is represented in the example below: - -.. code-block:: typescript - :linenos: - let tuple1: [number, string, boolean] = [1, "2", true] let tuple2: [number, string] = [4, "5"] - // spread tuple1 and tuple2 elements - let tuple3: [number, string, boolean, number, string] = [...tuple1, ...tuple2] - // while building new tuple object at compile time - console.log(tuple3) // prints [1, 2, true, 4, 5] + let tuple3: [number, string, boolean, number, string] = [...tuple1, ...tuple2] // spread tuple1 and tuple2 elements + // while building new tuple object during compile-time + console.log(tuple3) // prints [1, "2", true, 4, "5"] + bar (...tuple2) // spread tuple2 elements into arguments of the foo() call function bar (...tuple: [number, string]) { console.log (tuple) } - bar (...tuple2) // spread tuple2 elements into arguments of the foo() call + run_time_spread_application2 (tuple1, tuple2) // prints [1, "2", true, 42, 4, "5"] function run_time_spread_application2 (a1: [number, string, boolean], a2: [number, string]) { console.log ([...a1, 42, ...a2]) // such array literal will be built at runtime } - run_time_spread_application2 (tuple1, tuple2) // prints [1, 2, true, 42, 4, "5"] - -Example below presents how spread expression works for union types: - -.. code-block:: typescript - :linenos: - - type UnionType = Array | Array - function bar (...u: UnionType) { // bar() can accept either elements of array of numbers or array of strings - console.log (u) - } - bar (1, 2, 3) // create array of numbers from number type arguments - bar ("a", "bb", "ccc") // create array of strings from string type arguments - bar (1, "a", 2, "bb") // compile-time error as Array is not compatible with UnionType - - -A spread expression for a class that implements Iterable is represented in -the example below: - -.. code-block:: typescript - :linenos: - class A implements Iterable { // variables of type A can be spread - // To check code with TS, commment line with `$_iterator()` - // and uncomment one with `[Symbol.iterator]()` $_iterator(): Iterator { - // [Symbol.iterator](): Iterator { return new MyIteratorResult(this.data) } private data: T[] - constructor (...data: T[]) { this.data = data } + constructor (...data: T[]) { this.data = data } } class MyIteratorResult implements Iterator { private data: T[] @@ -2146,16 +1707,11 @@ the example below: display (... new A (1, "aaa", true)) // Spread A with any objects display (... new A) // Spread A with no objects - type UnionOfIterable = A | new A - function show (...p: UnionOfIterable) { console.log (p) } - show (... new A (1, 2, 3)) // Spread A with numbers - show (... new A ("aaa", "bbb")) // Spread A with strings - **Note**. If an argument is spread at the call site, then an appropriate -parameter must be of the rest kind (see :ref:`Rest Parameter`). A -:index:`compile-time error` occurs if an argument is spread into a sequence of -ordinary non-optional parameters as follows: +parameter must be of the rest kind (see :ref:`Rest Parameter`). If an argument +is spread into a sequence of ordinary non-optional parameters, then a +:index:`compile-time error` occurs: .. code-block:: typescript :linenos: @@ -2172,14 +1728,10 @@ ordinary non-optional parameters as follows: .. index:: call site - argument spread - call site - rest parameter parameter tuple array - non-optional parameter | @@ -2205,7 +1757,6 @@ the contained expression. .. index:: parenthesized expression type - syntax value contained expression @@ -2219,6 +1770,10 @@ the contained expression. .. meta: frontend_status: Done +Keyword ``this`` can be used as an expression in the body of an instance +method of a class (see :ref:`Method Body`) or an interface (see +:ref:`Default Interface Method Declarations`). The type of *this* expression +is the appropriate class or interface type. The syntax of *this expression* is presented below: @@ -2228,20 +1783,11 @@ The syntax of *this expression* is presented below: 'this' ; -The keyword ``this`` can be used as an expression in the body of an instance -method of a class (see :ref:`Method Body`) or an interface (see -:ref:`Default Interface Method Declarations`). A corresponding class or -interface type is the type of *this* expression. If a method is declared in an -object literal (see :ref:`Object Literal`), then the type of the object literal -is the type of ``this``. - The keyword ``this`` can be used in a lambda expression only if it is allowed -in the context in which the lambda expression occurs. The type of ``this`` is -the type of a class or an interface in which it is declared, but not the type -of the surrounding object literal type, if any. +in the context in which the lambda expression occurs. -The keyword ``this`` in a *direct call* expression ``this(`` *arguments* ``)`` -can only be used in an explicit constructor call statement (see +The keyword ``this`` in a *direct call* ``this(`` *arguments* ``)`` expression +can only be used in the explicit constructor call statement (see :ref:`Explicit Constructor Call`). The keyword ``this`` can also be used in the body of a function with receiver @@ -2251,25 +1797,16 @@ declared type of the parameter ``this`` in a function. A :index:`compile-time error` occurs if the keyword ``this`` appears elsewhere. .. index:: - syntax - this keyword + keyword this expression instance method method body class - interface - class type interface type lambda expression - object literal direct call expression constructor - context constructor call statement - function with receiver - parameter - function - declared type The keyword ``this`` used as a primary expression denotes a value that is a reference to the following: @@ -2284,54 +1821,19 @@ The class of the actual object referred to at runtime can be ``T`` if ``T`` is a class type, or a subclass of ``T`` (see :ref:`Subtyping`) . .. index:: - this keyword + keyword this primary expression value instance method instance method call object - parameter lambda body - context - subclass - subtyping + surrounding context class runtime class type class -The semantics of ``this`` in different contexts is represented in the example -below: - -.. code-block:: typescript - :linenos: - - interface anInterface { - method() { - this // type of 'this' is anInterface - } - } - class aClass implements anInterface { - method() { - this // type of 'this' is aClass - } - field = (): void => { - this // type of 'this' is aClass - } - } - class AnotherClass { - anotherMethod() { - const obj: aClass = { // Object literal - method () { - this // type of 'this' is aClass - }, - field: (): void => { - this // type of 'this' is AnotherClass - } - } - } - } - | .. _Field Access Expression: @@ -2352,8 +1854,6 @@ in detail in :ref:`Accessing Current Object Fields` and in access field object reference - superclass - syntax The syntax of *field access expression* is presented below: @@ -2381,18 +1881,16 @@ Type of a *field access expression* is the type of a member field. .. index:: access - field access expression field + field access expression safe field access nullish object reference object reference abrupt completion non-nullish type - identifier reference type member field accessible member field - accessibility | @@ -2426,11 +1924,11 @@ expression* of a static field in a class is as follows: evaluation static field access static field + field access expression field access initializer block field - readonly field - field access + readonly class b. *Instance* field access (*objectReference* is evaluated in the form *primaryExpression*) @@ -2448,19 +1946,16 @@ Only the *primaryExpression* type (not class type of an actual object referred at runtime) is used to determine the field to be accessed. .. index:: - instance field instance field access - class field access field access expression interface readonly - variable evaluation access runtime - class type - object + initializer + instance initializer constructor field access class type @@ -2476,7 +1971,7 @@ Accessing SuperClass Properties frontend_status: Done The form ``super.identifier`` is valid when accessing the superclass property -via accessor (see :ref:`Class Accessor Declarations`). +via accessor (see :ref:`Accessor Declarations`). A :index:`compile-time error` occurs if identifier in 'super.identifier' denotes a field. @@ -2499,9 +1994,6 @@ denotes a field. .. index:: access - accessor - accessor declaration - superclass superclass property identifier field @@ -2526,9 +2018,6 @@ execution to perform a call in case of an instance method. instance method class interface - dynamic dispatch - dispatch - call The syntax of *method call expression* is presented below: @@ -2544,6 +2033,9 @@ form called *trailing lambda call* (see :ref:`Trailing Lambdas` for details). A method call with '``?.``' (see :ref:`Chaining Operator`) is called a *safe method call* because it handles nullish values safely. +Resolving a method at compile time is more complicated than resolving a field +because method overloading (see :ref:`Class Method Overloading`) can occur. + There are several steps that determine and check the method to be called at compile time (see :ref:`Step 1 Selection of Type to Use`, :ref:`Step 2 Selection of Method`, and @@ -2551,15 +2043,15 @@ compile time (see :ref:`Step 1 Selection of Type to Use`, .. index:: syntax - method call expression block trailing lambda call - trailing lambda method call - chaining operator safe method call nullish value + method resolution + method overloading compile time + field resolution | @@ -2593,9 +2085,6 @@ method. Three forms of *object reference* are possible: constraint superclass method call - class - interface - union | @@ -2607,19 +2096,25 @@ Step 2: Selection of Method .. meta: frontend_status: Done -After the type to use is known, the method to call must be determined. -If a method name in the call refers an *overload declaration* (see -:ref:`Overload Declarations`), then -:ref:`Overload Resolution for Overload Declarations` is used -to select the method to call. -A :index:`compile-time error` occurs if no method is available to call. +After the type to use is known, the method to call must be determined. |LANG| +supports overloading, and more than one method can be accessible under the +method name used in the call. + +All accessible methods (see :ref:`Accessible`) are called +*potentially applicable candidates*, and :ref:`Overload Resolution` is used to +select the method to call. If *overload resolution* can definitely select a +single method, then this method is called. +A :index:`compile-time error` occurs in the following cases: + +- If no method is available for the call, or +- If there is more than one applicable method, thus causing ambiguity. .. index:: overload resolution - call - overload declaration method call - + potentially applicable candidate + accessible method + access | @@ -2647,16 +2142,11 @@ semantic checks must be performed: :index:`compile-time error` occurs. .. index:: - method - method modifier - call - class - static method method call semantic check static method call - abstract method abstract method call + type argument | @@ -2681,15 +2171,12 @@ Type of a *method call expression* is the return type of the method. let x = A.method() // compile-time error as void cannot be used as type annotation A.method () // OK - let y = new A().method() // compile-time error as void cannot be used as type annotation - new A().method() // OK + let y = new A.method() // compile-time error as void cannot be used as type annotation + new A.method() // OK .. index:: method call expression method return type - return type - static method - instance method type annotation | @@ -2725,19 +2212,14 @@ following: .. index:: function call expression - expression function call function type trailing lambda call lambda expression expression type function type - syntax nullish type chaining operator - block - expression type - chaining operator If the operator '``?.``' (see :ref:`Chaining Operator`) is present, and the *expression* evaluates to a nullish value, then: @@ -2753,36 +2235,50 @@ The function call is *safe* because it handles nullish values properly. expression evaluation nullish value - call argument semantic correctness check undefined function call -If the form of expression in the call is *qualifiedName*, and *qualifiedName* -refers an *overload declaration* (:ref:`Overload Declarations`), then -:ref:`Overload Resolution for Overload Declarations` is used -to select the function to call. -A :index:`compile-time error` occurs if no function is available to call. +The following important situations depend on the form of expression in a call, +and require different semantic checks: + +- The form of expression in the call is *qualifiedName*, and *qualifiedName* + refers to an accessible function (:ref:`Function Declarations`), or to a set + of accessible overloaded functions. + + In this case, all accessible functions (see :ref:`Accessible`) are + *potentially applicable candidates*. :ref:`Overload Resolution` is used to + select the function to call. If *overload resolution* can definitely select a + single function, then this function is called. -Semantic check for call is performed in accordance with -:ref:`Compatibility of Call Arguments`. +A :index:`compile-time error` occurs in the following cases: + +- If no function is available to call; +- If there is more than one applicable function, thus causing ambiguity; or +- All other forms of expression. + + In this case, *overload resolution* is not required as the expression + determines the entity to call unambiguously. Semantic check is performed + in accordance with :ref:`Compatibility of Call Arguments`. .. index:: call expression qualified name + accessible function + overloaded function overload resolution - overload declaration - function - call expression semantic check compatibility function call - call argument + potentially applicable candidate + accessibility + qualified name + function -Various forms of function calls are represented in the example below: +The example below represents different forms of function calls: .. code-block:: typescript :linenos: @@ -2813,17 +2309,8 @@ Type of a *function call expression* is the return type of the function. .. index:: function call function call expression - call - static method - instance method return type function - parameter - functional object - argument - callee - type annotation - return type | @@ -2836,9 +2323,10 @@ Indexing Expressions frontend_status: Done *Indexing expressions* are used to access elements of arrays (see -:ref:`Array Types`), strings (see :ref:`Type string`), and ``Record`` instances -(see :ref:`Record Utility Type`). Indexing expressions can also be applied to -instances of indexable types (see :ref:`Indexable Types`). +:ref:`Array Types`), strings (see :ref:`Type string`) and +``Record`` instances (see :ref:`Record Utility Type`). +Indexing expressions can also be applied to instances of indexable types (see +:ref:`Indexable Types`). The syntax of *indexing expression* is presented below: @@ -2858,9 +2346,6 @@ Any *indexing expression* has two subexpressions as follows: indexable type access array element - string - record - utility type array type subexpression object reference expression @@ -2878,7 +2363,7 @@ indexing expression, then: The result of the entire primary expression is then ``undefined``. If no '``?.``' is present in an indexing expression, then object reference -expression must be of array type or ``Record`` type. Otherwise, a +expression must be an array type or the ``Record`` type. Otherwise, a :index:`compile-time error` occurs. .. index:: @@ -2889,7 +2374,6 @@ expression must be of array type or ``Record`` type. Otherwise, a expression primary expression nullish type - array type record type reference expression nullish value @@ -2905,38 +2389,28 @@ Array Indexing Expression frontend_status: Partly todo: implement floating point index support - #14001 -*Index expression* for array indexing must be one of integer types, namely -``byte``, ``short``, or ``int``. Otherwise, a :index:`compile-time error` -occurs. +*Index expression* for array indexing must be of a numeric type (see +:ref:`Numeric Types`). +If an *index expression* is of type ``number`` or other floating-point type, +and the fractional part differs from 0, then errors occur as follows: + +- A runtime error, if the situation is identified during program execution; + and +- A :index:`compile-time error`, if the situation is detected during + compilation. .. index:: array indexing - integer type + numeric type index expression + floating-point type runtime error compilation -The conversion of ``byte`` and ``short`` types (see -:ref:`Widening Numeric Conversions`) is performed on an *index expression* to -ensure that the resultant type is ``int``. Otherwise, a -:index:`compile-time error` occurs. - -Other numeric types (``long``, ``float``, and ``double``/``number``) must be -converted explicitly by applying the methods defined in the classes of the -:ref:`Standard Library`. - -.. code-block:: typescript - :linenos: - - const a = ["Alice", "Bob", "Carol"] - function demo (l: long, f: float, d: double, n: number) { - console.log ( - a[l.toInt()], a[f.toInt()], - a[d.toInt()], a[n.toInt()] - ) // OK to access array using index expression conversion methods - } - +A numeric types conversion (see :ref:`Widening Numeric Conversions`) is +performed on an *index expression* to ensure that the resultant type is ``int``. +Otherwise, a :index:`compile-time error` occurs. If the chaining operator '``?.``' (see :ref:`Chaining Operator`) is present, and after its application the type of *object reference expression* @@ -2951,21 +2425,14 @@ It is essential that, if type ``T`` is a reference type, then the fields of array elements can be modified by changing the resultant variable fields: .. index:: - conversion - type numeric types conversion - widening conversion index expression chaining operator - numeric type object reference expression - method - class array type array reference expression array indexing expression variable - field reference type @@ -2977,21 +2444,20 @@ array elements can be modified by changing the resultant variable fields: names[1] = "Martin" console.log(names[1]) // prints Martin - console.log (names["1"]) // compile-time error as index of non-numeric type - class RefType { field: number = 42 } const objects: RefType[] = [new RefType(), new RefType()] - const obj = objects [1] - obj.field = 777 // change the field in the array element + const object = objects [1] + object.field = 777 // change the field in the array element console.log(objects[0].field) // prints 42 console.log(objects[1].field) // prints 777 let an_array = [1, 2, 3] - let element = an_array [3.5] // compile-time error as index is not integer + let element = an_array [3.5] // Compile-time error function foo (index: number) { - let element = an_array [index] // compile-time error as index is not integer + let element = an_array [index] + // Runtime-time error if index is not integer } An array indexing expression evaluated at runtime behaves as follows: @@ -3002,20 +2468,19 @@ An array indexing expression evaluated at runtime behaves as follows: - If the evaluation completes normally, then the index expression is evaluated. The resultant value of the object reference expression refers to an array. - If the index expression value of an array is less than zero, greater than - or equal to that array’s *length*, then ``RangeError`` is thrown. + or equal to that array’s *length*, then the ``ArrayIndexOutOfBoundsError`` + is thrown. - Otherwise, the result of the array access is a type ``T`` variable within the array selected by the value of the index expression. .. code-block:: typescript :linenos: - function setElement(names: string[], i: int, name: string) { - names[i] = name // runtime error, if 'i' is out of bounds + function setElement(names: string[], i: number, name: string) { + names[i] = name // run-time error, if 'i' is out of bounds } .. index:: - non-numeric type - integer type array indexing expression index expression evaluation @@ -3026,35 +2491,28 @@ An array indexing expression evaluated at runtime behaves as follows: normal completion reference expression variable - array access - access - array length | .. _String Indexing Expression: -String Indexing Expression -========================== +_String Indexing Expression +=========================== .. meta: frontend_status: Partly todo: return type is string -*Index expression* for string indexing must be of one of integer types, namely -``byte``, ``short``, or ``int``. The same rules apply as in +*Index expression* for array indexing must be of a numeric type (see +:ref:`Numeric Types`), the rules are the same as for :ref:`Array Indexing Expression`. -If the index expression value of a string is less than zero, greater than -or equal to that string’s *length*, then ``RangeError`` is thrown. +If the index expression value of an array is less than zero, greater than +or equal to that string’s *length*, then the ``ArrayIndexOutOfBoundsError`` +is thrown. .. index:: string indexing - index expression - integer type - array indexing expression - string - string length value type @@ -3062,29 +2520,20 @@ or equal to that string’s *length*, then ``RangeError`` is thrown. :linenos: console.log("abc"[1]]) // prints: b - console.log("abc"[3]]) // runtime exception - -The result of a string indexing expression is a value of ``string`` type. - -**Note.** String value is immutable, and is not allowed to change a value of -a string element by indexing. + console.log("abc"[3]]) // run-time exception + +The result of an string indexing expression is a value of ``string`` type. +**Note.** String value is immutable, it is not allowed to change a value of +string element by indexing. + .. code-block:: typescript :linenos: - let x = "abc" - x[1] = "d" // compile-time error, string value is immutable - -.. index:: - indexing expression - value - string type - string value - value - string element - indexing - -| + let x = "abc" + x[1] = "d" // compile-time error, string value is immutable + +| .. _Record Indexing Expression: @@ -3124,11 +2573,7 @@ The result of the indexing expression is of type ``Value``. .. index:: index expression indexing expression - record type - utility type - value - key type - union type + key literal type literal value @@ -3151,10 +2596,11 @@ The result of an indexing expression is of type ``Value | undefined``. .. index:: index expression - key type indexing expression literal compiler + object + key restriction @@ -3187,9 +2633,9 @@ The result of an indexing expression is of type ``Value | undefined``. index expression literal key - string compiler value + indexing expression Type of *y* in the code above is ``string | undefined``. The value of *y* is ``undefined``. @@ -3226,17 +2672,13 @@ is formed as an *identifier* of type *string*. console.log(x.key2) // the same as console.log(x['key2']) + .. index:: - string - undefined - evaluation - expression type value reference type key indexing expression - record indexing expression index expression object reference expression abrupt completion @@ -3244,11 +2686,6 @@ is formed as an *identifier* of type *string*. literal record instance mapped value - field - field access expression - identifier - string type - identifier | @@ -3280,14 +2717,6 @@ the type of the entire primary expression is the union ``undefined`` | access value nullish type - context - field access - function call - indexing expression - expression - undefined - null - method call primary expression non-nullish type @@ -3326,14 +2755,17 @@ an assignment (see :ref:`Assignment`) or expression chaining operator nullish value nullish type - context - expression assignment postfix prefix decrement increment - + function call + method call + primary expression + evaluation + access + value | @@ -3366,15 +2798,11 @@ The creation of array instances is an experimental feature discussed in syntactical form expression expression type - class - array instance instantiation - class instance expression - object + class instance creation expression array instance array creation expression - resizable array The syntax of *new class instance expression* is presented below: @@ -3403,14 +2831,10 @@ It optionally lists all actual arguments for the constructor. (see :ref:`Error Handling`, :ref:`Constructor Declaration`). .. index:: - class instance expression class instance creation expression - syntax instantiation instance - class constructor - argument initialization The execution of a class instance creation expression is performed as follows: @@ -3427,7 +2851,7 @@ A :index:`compile-time error` occurs if ``typeReference`` is a type parameter. **Note**. If a *class instance creation expression* with no argument is used as object reference in a method call expression, then empty parentheses -'``()``' are to be used. +'*()*' are to be used. .. code-block:: typescript :linenos: @@ -3436,7 +2860,6 @@ as object reference in a method call expression, then empty parentheses new A.method() // compile-time error new A().method() // OK - (new A).method() // OK let a = new A // OK @@ -3445,11 +2868,6 @@ as object reference in a method call expression, then empty parentheses instance instantiation constructor - constructor call - constructor body - method - class - expression initialization type parameter method call expression @@ -3476,9 +2894,7 @@ The syntax of *instanceof expression* is presented below: Any ``instanceof`` expression in the form ``expr instanceof T`` is of type ``boolean``. .. index:: - syntax instanceof expression - boolean operand operator instanceof operator @@ -3510,21 +2926,14 @@ by :ref:`Type Erasure`. let c = new C c.foo() -The ``type`` of an ``instanceof`` expression is used for *smart cast* -(see :ref:`Smart Casts and Smart Types`) if applicable. +The ``type`` of an ``instanceof`` expression is used for *smart typing* +(see :ref:`Smart Types`) if applicable. .. index:: instanceof expression subtype - type - evaluation - subtyping type erasure - type reference - operand - semantic check - type cast - smart cast + smart typing instantiated generic type generic type type name @@ -3541,7 +2950,9 @@ The ``type`` of an ``instanceof`` expression is used for *smart cast* .. meta: frontend_status: Done -The syntax of *cast expression* is as follows: +*Cast expression* in the form ``expr instanceof target`` applies *cast operator* +``as`` to an expression by issuing a value of a specified ``target`` type. The +syntax of *cast expression* is as follows: .. code-block:: abnf @@ -3549,62 +2960,75 @@ The syntax of *cast expression* is as follows: expression 'as' type ; -*Cast expression* in the form ``expr as target`` applies the *cast operator* -``as`` to ``expr`` by issuing the value of a specified ``target`` type. Thus -the cast expression type is always the ``target`` type. - .. code-block:: typescript :linenos: class X {} let x1 : X = new X() - let ob : Object = x1 as Object // Object is the target type - let x2 : X = ob as X // X is the target type + let ob : Object = x1 as Object + let x2 : X = ob as X .. index:: cast expression - target type operand + instanceof cast operator -A :index:`compile-time error` occurs if the ``target`` type is type ``never``: +The following cases are considered for an *expr as T* in a sequence as follows: -.. code-block:: typescript - :linenos: +- If ``expr`` is a constant expression (see :ref:`Constant Expressions`), + :ref:`Array literal`, or :ref:`Object Literal`, then an attempt is made to + apply :ref:`Type Inference in Cast Expression`; - 1 as never // compile-time error +- If the ``target`` type is an enumeration type (see :ref:`Enumerations`), + then an attempt is made to apply :ref:`Casting to Enumeration`; + +- Otherwise, :ref:`Runtime Checking in Cast Expression` is applied. .. index:: - never type - target type + cast operator + cast expression + expression + conversion + value + runtime + casting context + type -A :index:`compile-time error` occurs if ``target`` type is not preserved by -:ref:`Type Erasure`. +Cast expression type is always the ``target`` type. +A :index:`compile-time error` occurs if the ``target`` type is type ``never`` +as it can cause a type-safety violation as follows: -There are two cases of *cast expression* described in the following sections -below: +.. code-block:: typescript + :linenos: -- If ``expr`` is a constant expression (see :ref:`Constant Expressions`), - :ref:`Array literal`, or :ref:`Object Literal`, then see - :ref:`Type Inference in Cast Expression`; + 1 as never // compile-time error -- Otherwise, see :ref:`Runtime Checking in Cast Expression`. +.. index:: + type never + type-safety violation + target type + cast expression -If none of conditions stated in the sections are satisfied a -:index:`compile-time error` occurs. +The result of a cast expression is a value, not a variable (even if the operand +expression is a variable). +A :index:`compile-time error` occurs if the cast operator cannot convert the +compile-time type of the operand to the ``target`` type specified by the cast +operator. .. index:: - constant expression cast expression - object literal - array literal - type inference - expression - runtime - + target type + value + variable + operand expression + variable + operand value + cast operator + casting conversion | @@ -3613,9 +3037,6 @@ If none of conditions stated in the sections are satisfied a Type Inference in Cast Expression ================================= -.. meta: - frontend_status: Partly - The following combinations of ``expr`` and ``target`` are considered for the ``expr as target`` expression: @@ -3636,24 +3057,6 @@ The following combinations of ``expr`` and ``target`` are considered for the *interface type*, or :ref:`Record Utility Type` (see the subsections of :ref:`Object Literal` for detail). - -.. index:: - cast expression - type inference - expression - constant expression - numeric type - value - enumeration type - constant - interface type - record type - utility type - class type - interface type - object literal - - This kind of a *cast expression* results in inferring the target type for ``expr``, and never causes a runtime error by itself. However, the evaluation of array literal elements or object literal properties can cause a runtime error. @@ -3667,16 +3070,20 @@ example below: let x = 1 as byte // ok let y = 128 as byte // compile-time error -.. index:: - inferred type - type inference - evaluation - runtime error - array literal - object property - cast - constant expression - numeric type +Casting for constant expressions to enumeration types is represented in the +example below: + +.. code-block:: typescript + :linenos: + + enum NumE {A, B} + enums StrE {S1 = "aaa", S2 = "bbb"} + + let x = 1 as NumE // ok, it is E.B + let y = 2 as NumE // compile-time error + + let u = "aaa" as StrE // ok, it is StrE.S1 + let v = "abc" as StrE // compile-time error Casting for array literals of *numeric types* is represented in the example below: @@ -3694,14 +3101,40 @@ below: Examples with object literals are provided in :ref:`Object literal`. -.. index:: - cast - array literal - numeric type - target type - assignability - check - object literal +| + +.. _Casting to Enumeration: + +Casting to Enumeration +====================== + +There are two cases where an ``expr as target`` expression is used to convert +an expression value to the ``target`` enumeration type: + +- If the *enumeration base type* is an integer type, and the + expression is of integer type; or + +- If the *enumeration base type* is type ``string``, and the + expression is of string type. + +In both cases, the check is performed at runtime: + +- If the value of ``expr`` is the value of some constant of the enumeration + type, then the value is converted to the enumeration type; + +- Otheriwise, a runtime error occurs. + +.. code-block:: typescript + :linenos: + + enum NumE {A, B} + + function foo(x: int): NumE { + return x as NumE + } + + foo(1) // ok + foo(2) // runtime error occurs in 'foo' | @@ -3710,37 +3143,23 @@ Examples with object literals are provided in :ref:`Object literal`. Runtime Checking in Cast Expression =================================== -.. meta: - frontend_status: Partly - If none of the previous kinds of *cast expression* can be applied, then -``expr as target`` checks if the type of ``expr`` is a subtype of +``expr as target`` checks that the type of ``expr`` is a subtype of ``target`` (see :ref:`Subtyping`). -If the *actual type* of ``expr`` is a subtype of ``target`` (see -:ref:`Subtyping`), then the result of an ``as`` expression is the result of -the evaluated ``expr``. Otherwise, ``ClassCastError`` is thrown. +The result of an ``as`` expression is the result of the evaluated ``expr`` +if the *actual type* of ``expr`` is a subtype of ``target`` (see :ref:`Subtyping`). +Otherwise, ``ClassCastError`` is thrown. -If ``target`` type is not preserved by :ref:`Type Erasure`, then the check is -performed against an *effective type* of the ``target`` type. As the -*effective type* is less specific than ``target`` in the case described, -the usage of the resulting value can cause type violation, and ``ClassCastError`` -is thrown as a consequence (see :ref:`Type Erasure` for detail). +If ``target`` type is not preserved by :ref:`Type Erasure`, the check is +performed against an *effective type* of the ``target`` type. As, +in the described case an *effective type* is less specific than ``target``, +usage of the resulting value may lead to type violations and +``ClassCastError`` thrown as a consequence. See :ref:`Type Erasure` for more details. Semantically, a *cast expression* of this kind is coupled tightly with :ref:`Instanceof Expression`: -.. index:: - runtime check - cast expression - target type - type - subtype - sybtyping - type erasure - check - effective type - - If the result of ``x instanceof T`` is ``true``, then ``x as T`` never causes a runtime error; @@ -3752,24 +3171,19 @@ Semantically, a *cast expression* of this kind is coupled tightly with This situation is represented in the following example: -.. index:: - runtime error - type erasure - runtime - .. code-block:: typescript :linenos: function foo (x: Object) { - x as string + console.log(x as string) } foo("aa") // OK - foo(1) // runtime error is thrown in foo by 'as' operator application + foo(1) // runtime error is thrown in foo :ref:`Instanceof Expression` can be used to prevent runtime errors. Moreover, -the :ref:`Instanceof Expression` makes *cast conversion* unnecessary in many -cases as *smart cast* is applied (see :ref:`Smart Casts and Smart Types`): +in many cases :ref:`Instanceof Expression` makes *cast conversion* unnecessary +as *smart casting* is applied (see :ref:`Smart Types`): .. code-block:: typescript :linenos: @@ -3784,19 +3198,12 @@ cases as *smart cast* is applied (see :ref:`Smart Casts and Smart Types`): // no need to cast, type of 'x' is 'Person' here console.log(x.name) } else { - console.log("not a Person") + console.log("no name") } } printName(new Person("Bob")) // output: Bob - printName(1) // output: not a Person - -.. index:: - runtime error - operator - expression - cast conversion - smart cast + printName(1) // output: no name | @@ -3818,28 +3225,30 @@ The syntax of *typeof expression* is presented below: Any ``typeof`` expression is of type ``string``. -If *typeof expression* refers to a name of an overloaded function or method, +If *typeof expression* refers to a name of the overloaded function or method, then a :index:`compile-time error` occurs. -The evaluation of a *typeof expression* starts with the ``expression`` +The evaluation of a *typeof expression* starts with the ``expression`` evaluation. If this evaluation causes an error, then the ``typeof`` expression evaluation terminates abruptly. Otherwise, the value of a ``typeof expression`` is defined as follows: -1. TypeOf expression value known at compile time +1. **Expression type defined at compile time** .. index:: - syntax typeof expression - expression - string type + type string evaluation compile time - value +---------------------------------+-------------------------+-----------------------------+ -| Expression of Type | TypeOf result | Code Example | +| Type of Expression | Resulting String | Code Example | +=================================+=========================+=============================+ +| ``number`` | "number" | .. code-block:: typescript | +| | | | +| | | let n: number = ... | +| | | typeof n | ++---------------------------------+-------------------------+-----------------------------+ | ``string`` | "string" | .. code-block:: typescript | | | | | | | | let s: string = ... | @@ -3879,35 +3288,25 @@ is defined as follows: | interface or array | | let x: C | null = ... | | | | typeof x | +---------------------------------+-------------------------+-----------------------------+ -| enumeration type | name of enumeration | .. code-block:: typescript | -| | base type | | -| | | enum C {R, G, B} | +| ``enum`` | "number" or "string", | .. code-block:: typescript | +| | depending of constant | | +| | type | enum C {R, G, B} | | | | let c: C = ... | -| | | typeof c // "int" | -+---------------------------------+-------------------------+-----------------------------+ -| ``number``, ``double`` | "number" | .. code-block:: typescript | -| | | | -| | | let n: number = ... | -| | | typeof n | -+---------------------------------+-------------------------+-----------------------------+ -| Other numeric types: | "byte", "short", "int", | .. code-block:: typescript | -| | "long" or "float", | | -| ``byte``, ``short``, ``int``, | depending on type of | let x: byte = ... | -| ``long``, ``float`` | expression | typeof x // "byte" | +| | | typeof c | +---------------------------------+-------------------------+-----------------------------+ -| ``char`` | "char" | .. code-block:: typescript | +| Numeric types: | "number" | .. code-block:: typescript | | | | | -| | | let x: char = ... | -| | | typeof x | +| | | let x: byte = ... | +| ``byte``, ``short``, ``int``, | | typeof x | +| ``long``, ``float``, ``double`` | | ... | +---------------------------------+-------------------------+-----------------------------+ -2. TypeOf expression value determined at runtime +| -The result is a name of the actual type used at runtime for the following -expression types: +2. **Expression type defined at runtime** +------------------------+-----------------------------+ -| Expression of Type | Code Example | +| Type of Expression | Code Example | +========================+=============================+ | Object | .. code-block:: typescript | | | | @@ -3937,9 +3336,6 @@ expression types: .. index:: union type type parameter - expression - type - constructor | @@ -3979,8 +3375,8 @@ type of *e*. .. index:: ensure-not-nullish expression - postfix - prefix + postfix expression + prefix expression expression operator nullish type @@ -4059,7 +3455,6 @@ mixed with conditional-and or conditional-or operators without parentheses. union type non-nullish type expression - type nullish-coalescing operator conditional-and operator conditional-or operator @@ -4089,24 +3484,20 @@ The syntax of *unary expression* is presented below: | '!' expression ; -All expressions with *unary operators* (except postfix increment and postfix +All expressions with unary operators (except postfix increment and postfix decrement operators) group right-to-left for '``~+x``' to have the same meaning as '``~(+x)``'. -The type of *unaryExpression* is not necessarily the same as the type -of the *expression* provided. Further in the text, the type of -*unaryExpression* is stated explicitly for each *unary operator*. +Type of any *unary Expression* is the type of the ``expression`` provided. .. index:: unary expression unary operator expression postfix + postfix increment operator decrement operator - type - -| .. _Postfix Increment: @@ -4138,33 +3529,33 @@ then: .. index:: postfix - expression increment expression increment operator expression conversion variable - type - evaluation numeric type convertible expression value operand - numeric casting conversion + normal completion Otherwise, the *postfix increment expression* completes abruptly, and no incrementation occurs. The value of the *postfix increment expression* is the value of the variable -*before* a new value is stored. +*before* the new value is stored. .. index:: variable + conversion numeric types conversion postfix increment expression abrupt completion expression + variable + postfix increment expression incrementation | @@ -4195,10 +3586,7 @@ If evaluation of the operand expression completes at runtime, then: postfix decrement expression decrement operator - convertible type - numeric type variable - value expression conversion runtime @@ -4214,20 +3602,21 @@ Otherwise, the *postfix decrement expression* completes abruptly, and no decrementation occurs. The value of the *postfix decrement expression* is the value of the variable -*before* a new value is stored. +*before* the new value is stored. .. index:: subtraction value variable conversion - numeric casting abrupt completion numeric types conversion abrupt completion decrementation decrement expression postfix + variable + value | @@ -4257,8 +3646,6 @@ If evaluation of the operand *expression* completes normally at runtime, then: increment operator increment expression expression - operator - convertible type variable expression normal completion @@ -4273,7 +3660,7 @@ Otherwise, the *prefix increment expression* completes abruptly, and no incrementation occurs. The value of the *prefix increment expression* is the value of the variable -*after* a new value is stored. +*before* the new value is stored. .. index:: value @@ -4324,14 +3711,12 @@ If evaluation of the operand *expression* completes normally at runtime, then: Otherwise, the *prefix decrement expression* completes abruptly, and no decrementation occurs. The value of the *prefix decrement expression* remains -the value of the variable *after* a new value is stored. +the value of the variable *before* a new value is stored. .. index:: evaluation runtime expression - subtraction - prefix normal completion conversion decrement expression @@ -4356,30 +3741,20 @@ Type of the operand expression with the unary operator '``+``' must be convertible (see :ref:`Implicit Conversions`) to a numeric type (see :ref:`Numeric Types`). Otherwise, a :index:`compile-time error` occurs. -A numeric types conversion is performed on the operand to ensure that the -resultant type is that of the unary plus expression. The result of a unary plus -expression is always a value, not a variable (even if the result of the operand -expression is a variable). - -Numeric widening occurs on the *expression* before a *unary plus* operator -is applied. The type of the *unary plus* is determined as follows: - - - Type of result is `int` for `byte`, `short`, and `int`. - - Type of result is the same as that of the initial *expression* for `long`, - `float`, and `double``. +The numeric types conversion is +performed on the operand to ensure that the resultant type is that of the +unary plus expression. The result of a unary plus expression is always a value, +not a variable (even if the result of the operand expression is a variable). +Type of the *unary plus expression* is the type of the expression provided. .. index:: unary plus operator - unary plus expression - operator - convertible type operand expression unary operator conversion numeric type - numeric widening numeric types conversion unary plus operator @@ -4402,19 +3777,17 @@ Type of the operand expression with the unary operator '``-``' must be convertible (see :ref:`Widening Numeric Conversions`) to a numeric type (see :ref:`Numeric Types`). Otherwise, a :index:`compile-time error` occurs. -Numeric widening occurs on the *expression* before a *unary minus* operator is -applied. The type of the *unary minus* is determined as follows: - -- Type of result is `int` for `byte`, `short`, and `int`. -- Type of result is the same as that of the initial *expression* for `long`, - `float`, and `double``. - +The numeric types conversion +is performed on the operand to ensure that the resultant type is that of the +unary minus expression. The result of a unary minus expression is a value, not a variable (even if the result of the operand expression is a variable). The unary negation operation is always performed on, and the result is drawn from the same value set as the promoted operand value. +Type of the *unary minus expression* is the type of the expression provided. + .. index:: unary minus @@ -4427,7 +3800,6 @@ from the same value set as the promoted operand value. numeric types conversion expression operand - operand value normal completion value variable @@ -4464,7 +3836,6 @@ cases to consider are as follows: unary minus negation promoted value - promotion operand operation integer value @@ -4492,14 +3863,12 @@ Bitwise Complement of a numeric type or type ``bigint``. If the type of the operand is ``double`` or ``float``, then it is truncated -first to ``long`` or ``int``, respectively. +first to the appropriate integer type. If the type of the operand is ``byte`` or ``short``, then the operand is -widened to ``int``. +converted to ``int``. If the type of the operand is ``bigint``, then no conversion is required. -Type of result is determined as follows: -- ``int`` for ``byte``, ``short``, ``int``, and ``float``. -- ``long`` for ``long`` and ``double``. +The resultant type of this operator is the type of its operand. The result of a unary bitwise complement expression is a value, not a variable (even if the result of the operand expression is a variable). @@ -4509,21 +3878,16 @@ complement of the value of the operand. In all cases, *~x* equals *(-x)-1*. .. index:: - bitwise complement bitwise complement expression - expression numeric type - bigint type operator - bitwise complement operator + complement operator operand unary operator integer type unary bitwise complement expression variable runtime - truncation - conversion | @@ -4548,18 +3912,13 @@ converted) operand value is ``false``, and ``false`` if the operand value .. index:: logical complement operator - logical complement - logical complement expression - conditional expression - extended conditional expression expression operand operand value operator unary operator - complement expression boolean type - value + compile-time error unary logical complement expression predefined numeric types conversion @@ -4593,66 +3952,30 @@ Type of each operand in a multiplicative operator must be convertible (see :ref:`Numeric Operator Contexts`) to a numeric type (see :ref:`Numeric Types`). Otherwise, a :index:`compile-time error` occurs. -.. index:: - multiplicative expression - multiplicative operator - syntax - convertible type - numeric type - -A numeric types conversion (see :ref:`Widening Numeric Conversions`) +The numeric types conversion (see :ref:`Widening Numeric Conversions`) is performed on both operands to ensure that the resultant type is the type of the multiplicative expression. -The resultant type of an expression is inferred by the largest type -after promoting ``byte`` and ``short`` operands to ``int``: - -- ``double`` if any operand is ``double``; -- ``float`` if any operand is ``float`` and there is no ``double`` operand; -- ``long`` if any operand is ``long`` and there is no ``double`` nor ``float`` - operand; -- ``int`` if all operands are of type ``byte``, ``short``, or ``int``. - -This situation is represented in the following example: - -.. index:: - numeric types conversion - widening numeric conversion - operand - multiplicative expression - inferred type - type inference - promotion - -.. code-block:: typescript - :linenos: - - // Code below prints true 4 times - let byte1: byte = 1 - let byte2: byte = 1 - let long1: long = 1 - let float1: float = 1 - let double1: double = 1 - - let res_byte = byte1 * byte2 // int - console.log(res_byte instanceof int) - - let res_long = byte1 * long1 // long - console.log(res_long instanceof long) - - let res_float = byte1 * float1 // float - console.log(res_float instanceof float) - - let res_double = byte1 * double1 // double - console.log(res_double instanceof double) - The result of a unary bitwise complement expression is a value, not a variable (even if the operand expression is a variable). .. index:: - bitwise complement expression + multiplicative expression + conversion + convertibility + context + conversion + numeric type + multiplicative operator + multiplicative expression + numeric type value + unary bitwise complement expression + operand expression variable + numeric type + numeric types conversion + multiplicative operator operand expression | @@ -4677,7 +4000,7 @@ Integer multiplication is associative when all operands are of the same type. Floating-point multiplication is not associative. -Type of a *multiplication expression* is the 'largest' (see +Type of a *multiplication expression* is the 'heaviest' (see :ref:`Numeric Types`) type of its operands. If overflow occurs during integer multiplication, then: @@ -4697,9 +4020,7 @@ IEEE 754 arithmetic: operand commutative operation expression - operand expression side effect - integer integer multiplication associativity two’s-complement format @@ -4742,7 +4063,7 @@ despite possible overflow, underflow, or loss of information. finite value multiplication signed infinity - round-to-nearest mode + round-to-nearest rounding underflow floating-point type @@ -4753,6 +4074,7 @@ despite possible overflow, underflow, or loss of information. error loss of information IEEE 754 + rounding | @@ -4784,21 +4106,20 @@ satisfies :math:`|d\cdot{}q|\leq{}|n|`. - Negative, where \|n| :math:`\geq{}` \|d|, and *n* and *d* have opposite signs. .. index:: - division division operator binary operator operand dividend divisor + round-toward-zero integer division integer operand numeric types conversion - widening numeric conversion numeric type integer value -The only one special case that does not comply with this rule is where integer -overflow occurs. The result equals the dividend if the dividend is a negative +Only a single special case does not comply with this rule: the integer overflow +occurs, and the result equals the dividend if the dividend is a negative integer of the largest possible magnitude for its type, while the divisor is *-1*. No error is thrown in this case despite the overflow. However, if the divisor value is *0* in an integer division, then ``ArithmeticError`` is @@ -4820,8 +4141,8 @@ IEEE 754 arithmetic: floating-point division divisor overflow - error integer division + floating-point division NaN infinity operand @@ -4844,23 +4165,18 @@ IEEE 754 arithmetic: - A finite value is divided by infinity; and - Zero is divided by any other finite value. -- If neither ``NaN`` nor infinity is involved, then the exact mathematical - quotient is computed. - - If the magnitude of the product is too large to represent, then the - operation overflows, and the result is an appropriately signed infinity. - .. index:: NaN operand division signed infinity finite value - infinity - NaN - overflow - magnitude +- If neither ``NaN`` nor infinity is involved, then the exact mathematical + quotient is computed. + + If the magnitude of the product is too large to represent, then the + operation overflows, and the result is an appropriately signed infinity. The quotient is rounded to the nearest value in the chosen value set by using the IEEE 754 *round-to-nearest* mode. The |LANG| programming @@ -4871,7 +4187,7 @@ The evaluation of a floating-point division operator '``/``' never throws an error despite possible overflow, underflow, division by zero, or loss of information. -The type of the *division expression* is the '*largest*' numeric type (see +The type of the *division expression* is the '*heaviest*' numeric type (see :ref:`Numeric Types`) of its operands. @@ -4880,9 +4196,7 @@ The type of the *division expression* is the '*largest*' numeric type (see NaN overflow floating-point division - round-to-nearest mode - numeric type - operand + round-to-nearest rounding underflow floating-point type @@ -4913,12 +4227,11 @@ The remainder operator in |LANG| accepts floating-point operands (unlike in C and C++). The remainder operation on integer operands produces a result value, i.e., -:math:`(a/b)*b+(a\%b)` equals *a*. Numeric type conversion on remainder +:math:`(a/b)*b+(a\%b)` equals *a*. The numeric type conversion on remainder operation is discussed in :ref:`Widening Numeric Conversions`. .. index:: binary operator - operand remainder operator dividend divisor @@ -4930,7 +4243,6 @@ operation is discussed in :ref:`Widening Numeric Conversions`. value integer operand numeric type - widening numeric conversion This equality holds even in the special case where the dividend is a negative integer of the largest possible magnitude of its type, and the divisor is *-1* @@ -4963,13 +4275,11 @@ can compute the IEEE 754 remainder operation. divisor remainder operator remainder operation - operator truncation integer remainder value floating-point remainder operation floating-point operation - standard library division truncation rounding @@ -4996,7 +4306,6 @@ with the IEEE 754 arithmetic: .. index:: floating-point remainder operation remainder operation - operand NaN infinity divisor @@ -5018,7 +4327,7 @@ The evaluation of the floating-point remainder operator '``%``' never throws an error, even if the right-hand operand is zero. Overflow, underflow, or loss of precision cannot occur. -The type of the *remainder expression* is the '*largest*' numeric type (see +The type of the *remainder expression* is the '*heaviest*' numeric type (see :ref:`Numeric Types`) of its operands. @@ -5036,7 +4345,6 @@ The type of the *remainder expression* is the '*largest*' numeric type (see error overflow loss of precision - numeric type | @@ -5060,16 +4368,6 @@ NaN in the following cases: The binary operator '``**``' is equivalent to Math.pow(), except it also accepts BigInts as operands. -.. index:: - exponentiation - binary operator - operand - base - exponent - NaN - infinity - integer - floating-point remainder | @@ -5106,22 +4404,18 @@ Type of each operand of the binary operator '``-``' must be convertible :ref:`Numeric Types`) in all cases. Otherwise, a :index:`compile-time error` occurs. -Type of *Additive expression* is determined as follows: +Type of *Additive expression* is ``string`` or the 'heaviest' (see +:ref:`Numeric Types`) type of its operands. -- ``string`` if any operand is of type ``string``; -- Type inferred after widening operands of numeric types by the rules explained - in the example in :ref:`Multiplicative Expressions`. .. index:: additive expression additive operator - syntax - sting type operand - sting concatenation - convertible type + string + string concatenation operator - widening numeric conversion + conversion numeric type binary operator @@ -5148,10 +4442,7 @@ then a new ``string`` object is created (see :ref:`New Expressions`). .. index:: string concatenation - string type string - string object - operand string operand string conversion operator context @@ -5172,7 +4463,7 @@ Additive Operators for Numeric Types frontend_status: Done todo: The sum of two infinities of opposite sign should be NaN, but it is -NaN -A numeric types conversion (see :ref:`Widening Numeric Conversions`) +The numeric types conversion (see :ref:`Widening Numeric Conversions`) performed on a pair of operands ensures that both operands are of a numeric type. If the conversion fails, then a :index:`compile-time error` occurs. @@ -5184,7 +4475,7 @@ of two numeric operands. Type of an additive expression performed on numeric operands is the largest type (see :ref:`Numeric Types`) to which operands of that -expression are converted (see the example in :ref:`Multiplicative Expressions`). +expression are converted. If the promoted type is ``int`` or ``long``, then integer arithmetic is performed. @@ -5194,19 +4485,16 @@ is performed. .. index:: additive operator conversion - numeric types conversion - numeric widening conversion numeric type numeric operand binary operator - operand - addition - additive expression promoted type - promoting integer arithmetic floating-point arithmetic integer + type operand + addition + subtraction expression If operand expressions have no side effects, then addition is a commutative @@ -5220,7 +4508,7 @@ If overflow occurs on an integer addition, then: - Result is the low-order bits of the mathematical sum as represented in a sufficiently large two’s-complement format. -- Sign of the result is opposite to that of the mathematical sum of +- Sign of the result is different than that of the mathematical sum of the operands’ values. The result of a floating-point addition is determined in compliance with the @@ -5231,7 +4519,6 @@ IEEE 754 arithmetic as follows: expression side effect addition - integer addition commutative operation operation low-order bit @@ -5310,7 +4597,6 @@ possible overflow, underflow, or loss of information. integer value loss of information numeric type operand - numeric type binary operator subtraction negation @@ -5351,14 +4637,12 @@ Both operands of a *shift expression* must be of numeric types or type ``bigint``. If the type of one or both operands is ``double`` or ``float``, then the -operand or operands are truncated first to ``long`` or ``int``, respectively. +operand or operands are truncated first to the appropriate integer type. If the type of the left-hand-side operand is ``byte`` or ``short``, then the operand is converted to ``int``. If both operands are of type ``bigint``, then no conversion is required. A :index:`compile-time error` occurs if one operand is type ``bigint``, and the other one is a numeric type. -Also, a :index:`compile-time error` occurs if '``>>>``' (unsigned right shift) -is applied to operands of type ``bigint``. The result of a *shift expression* is of the type to which its first operand converted. @@ -5371,14 +4655,11 @@ converted. signed right shift unsigned right shift operand - syntax shift distance numeric type - bigint type truncation integer type bigint - conversion If the left-hand-side operand is of the promoted type ``int``, then only five lowest-order bits of the right-hand-side operand specify the shift distance @@ -5402,8 +4683,6 @@ overflow. .. index:: shift expression promoted type - promotion - lowest-order bit operand shift distance bitwise logical AND operator @@ -5439,14 +4718,12 @@ zero-extension, where: .. index:: value sign-extension - integer division right shift truncation integer division operator zero-extension operand - operand type expression | @@ -5485,78 +4762,51 @@ relational expression depends on types of operands. It is a types described below. .. index:: + numerical relational operator relational operator relational expression - syntax boolean type expression operand - operand type type | -.. _Numeric Conversions for Operands: - -Numeric Conversions for Operands -================================ - -.. meta: - frontend_status: Done - -If at least one operand is of ``bigint`` type, then the other operand is -converted to ``bigint`` by using a ``BigInt()`` function. Otherwise, numeric -types conversion (see :ref:`Widening Numeric Conversions`) is performed on each -operand to ensure all operands are of the the largest numeric type of operands -(see :ref:`Numeric Types`). - - -.. index:: - numeric conversion - numeric types conversion - widening numeric conversion - operand - bigint type - numeric type - conversion - -| - -.. _Numeric Relational Operators: +.. _Numerical Relational Operators: -Numeric Relational Operators -============================ +Numerical Relational Operators +============================== .. meta: frontend_status: Done -Type of each operand in a numeric relational operator must be convertible -to a numeric type (see :ref:`Numeric Types`) or to a ``bigint`` type. +Type of each operand in a numerical relational operator must be convertible +to a numeric type (see :ref:`Numeric Types`) or to ``bigint`` type. Otherwise, a :index:`compile-time error` occurs. -Numeric conversions for operands (see :ref:'Numeric conversions for operands') -are performed on all operands. +Numeric types conversions (see :ref:`Widening Numeric Conversions`) are +performed on each operand. If at least one operand is of ``bigint`` type, then +the other operand is converted to ``bigint`` by using a ``BigInt()`` function. -Depending on the converted type of operands, a comparison is performed as follows: +Depending on the heaviest type of operands, a comparison is performed as follows: -- Signed integer comparison, if the converted operand type is ``int`` +- Signed integer comparison, if the converted type of the operand is ``int`` or ``long``. -- Floating-point comparison, if the converted operand type is ``float`` +- Floating-point comparison, if the converted type of the operand is ``float`` or ``double``. -- Bigint comparison, if the converted operand type is ``bigint``. +- Bigint comparison, if the converted type of the operand is ``bigint``. .. index:: - numeric relational operator + numerical relational operator operand - convertible type conversion numeric type numeric types conversion predefined numeric types conversion - bigint type + bigint signed integer comparison floating-point comparison bigint comparison @@ -5608,7 +4858,6 @@ floating-point, or bigint operands other than ``NaN``: .. index:: integer operand floating-point operand - bigint operand NaN operator value @@ -5641,7 +4890,6 @@ Results of all string comparisons are defined as follows: .. index:: operator string comparison - string relational operator string value | @@ -5658,28 +4906,18 @@ Results of all boolean comparisons are defined as follows: - Operator '``<``' delivers ``true`` if the left-hand-side operand is ``false`` and the right-hand-side operand is true, or ``false`` otherwise. -- Operator '``<=``' delivers: - - - ``true`` when both operands are ``true``, or the left-hand-side operand - is ``false`` (for any right-hand value) - - ``false`` when the left-hand-side operand is ``true`` and the - right-hand-side operand is ``false``. - +- Operator '``<=``' delivers ``true`` if the left-hand-side operand is ``false`` + and the right-hand-side operand is ``true`` or ``false``, or ``false`` otherwise. - Operator '``>``' delivers ``true`` if the left-hand-side operand is ``true`` and the right-hand-side operand is ``false``, or ``false`` otherwise. -- Operator '``>=``' delivers: - - - ``true`` when both operands are ``false``, or the left-hand-side operand - is ``true`` (for any right-hand-side value) - - ``false`` when the left-hand-side operand is ``false`` and the - right-hand-side operand is ``true``. +- Operator '``>=``' delivers ``true`` if the left-hand-side operand is ``true`` + and the right-hand-side operand is ``false`` or ``true``, or ``false`` otherwise. .. index:: operator operand relational operator boolean comparison - boolean relational operator | @@ -5691,24 +4929,19 @@ Enumeration Relational Operators .. meta: frontend_status: Done -If both operands are of the same enumeration type (see :ref:`Enumerations`), -then :ref:`Numeric Relational Operators` or :ref:`String Relational Operators` +If both operands are of the same Enumeration type (see :ref:`Enumerations`), +then :ref:`Numerical Relational Operators` or :ref:`String Relational Operators` are used depending on the kind of enumeration constant value ( :ref:`Enumeration Integer Values` or :ref:`Enumeration String Values`). Otherwise, a :index:`compile-time error` occurs. .. index:: - enumeration relational operator + enumeration operator enumeration constant - enumeration type value string value relational operator - numeric relational operator - string relational operator - enumeration constant value - enumeration integer value - enumeration string value + boolean comparison constant value | @@ -5732,186 +4965,124 @@ The syntax of *equality expression* is presented below: expression ('==' | '===' | '!=' | '!==') expression ; +Any equality expression is of type ``boolean``. The result of operators '``==``' +and '``===``' is ``true`` if operands are *equal* as shown below. Otherwise, the +result is ``false``. + Equality operators group left-to-right. Equality operators are commutative if operand expressions cause no side effects. -Similarly to relational operators, equality operators return ``true`` or -``false`` but the latter have a lower precedence (:math:`a < b==c < d` is -``true`` if both :math:`a < b` and :math:`c < d` have the same ``truth`` value). - -Any equality expression is of type ``boolean``. +Equality operators are similar to relational operators, except for their +lower precedence (:math:`a < b==c < d` is ``true`` if both :math:`a < b` +and :math:`c < d` have the same ``truth`` value). .. index:: equality operator equality expression - syntax boolean type - side effect - commutative operator relational operator - precedence -The results produced by ``a != b`` and ``!(a == b)`` is the same in all cases. -The results produced by ``a !== b`` and as ``!(a === b)`` is the same. +In all cases, ``a != b`` produces the same result as ``!(a == b)``, and +``a !== b`` produces the same result as ``!(a === b)``. -The result of the operators '``==``' and '``===``' is the same in all cases +The result of operators '``==``' and '``===``' is the same in all cases, except when comparing the values ``null`` and ``undefined`` (see -:ref:`Extended Equality with null or undefined`). - -A comparison that uses the operators '``==``' and '``===``' is evaluated to -``true`` with the following: - -.. index:: - operator - comparison - value - evaluation - -- Operands of :ref:`Type boolean` of the same value; - -- Operands of :ref:`Type string` or string literal type - (see :ref:`String Literal Types`) with the same contents; - -- Operands after a numeric conversion (see - :ref:`Numeric Conversions for Operands`) are of :ref:`Type bigint` of the - same value; +:ref:`Reference Equality`). -- Operands of :ref:`Type char` of the same value (both operands represent the - same Unicode code point); +The variant of equality evaluation to be used depends on types of the +operands used as follows: -- Operands after a numeric conversion (see - :ref:`Numeric conversions for operands`) are of :ref:`Numeric Types` of the - same value except ``NaN`` (see :ref:`Numeric Equality Operators` for - detail); - -- Operands of the same enumeration type (see :ref:`Enumerations`) - that have the same numeric values or the same string contents, - depending on the type of enumeration constant values; - -- Function references that refer to the same functional object (see - :ref:`Function Type Equality Operators` for detail). +- *Value equality* is applied to entities of :ref:`Value Types`, + type ``string`` (see :ref:`Type string`) and type ``bigint`` (see + :ref:`Type bigint`). +- *Reference Equality based on actual (dynamic) type* is applied to values of + type ``Object`` (:ref:`Type Object`), values of union types + (:ref:`Union Types`), type parameters (:ref:`Type Parameters`), and if at + least one type is of interface type (:ref:`Interfaces`). +- *Reference equality* is applied to entities of all other reference types + (see :ref:`Reference Types`). .. index:: - operand - boolean type + operator value - string literal type - numeric conversion - bigint type - NaN - numeric equality operator + value equality + primitive type + value type enumeration type - numeric value - string - equality operator - function type + bigint + reference equality + object + type parameter -In all other cases, if a comparison of values of types ``A`` and ``B`` is -always known to evaluate to ``false`` at compile time (when types -do not overlap), then a :index:`compile-time error` occurs. Otherwise, -the result of the comparison is evaluated at runtime, i.e., during program -execution. +Operators '``===``' and '``==``', or '``!==``' and '``!=``' are used for: -This semantics is represented in the examples below: +- :ref:`Numerical Equality Operators` if both operands are + of :ref:`Numeric Types`); -.. code-block:: typescript - :linenos: +- :ref:`String Equality Operators` if both operands are of type ``string``; - class X {} - new X() == new X() // false, two different instances of class X - new X() === new X() // false, two different instances of class X - let x1 = new X() - let x2 = x1 - x1 == x2 // true, as x1 and x2 refer to the same instance - x1 === x2 // true, the same instance +- :ref:`Bigint Equality Operators` if both operands are of type ``bigint``; - let x = 5 - x == 5 // true, values are compared +- :ref:`Boolean Equality Operators` if both operands are of type ``boolean``; - new Number(5) === new Number(5) // true, values are equal - new Number(5) == new Number(6) // false, values are not equal +- :ref:`Character Equality Operators` if both operands are of type ``char``; - 1 == "a" // compile-time error, as type int and type string do not overlap +- :ref:`Enumeration Equality Operators` if both operands are of an enumeration + type; - class X {} - class Y {} +- :ref:`Function type Equality Operators` if both operands are of a function + type; - new X() == new Y() // compile-time error, as type X and type Y do not overlap +- :ref:`Reference Equality based on actual type` if at least one operand is of + ``Object`` type, union type, interface type, or is a type parameter; +- :ref:`Reference Equality` if both operands are of compatible reference types, + except types ``string``, ``bigint``, ``Object``, union types, and type + parameters; -An evaluation of equality expressions always uses the actual types of operands -as in the example below: +- :ref:`Extended Equality with null or undefined` if one operand is ``null`` or + ``undefined``. -.. index:: - comparison - value - type - evaluation - runtime - semantics - instance - class - string type - overlapping - equality expression - operand +- Otherwise, a :index:`compile-time error` occurs. .. code-block:: typescript :linenos: - function equ(a: Object, b: Object): boolean { - return a == b - } - - equ(1, 1) // true, values are compared - equ(1, 2) // false, value are compared - - equ("aa", "aa") // true, string contexts are compared - equ(1, "aa") // false, not compatible types - - interface I1 {} - interface I2 {} - - function equ1 (i1: I1, i2: I2) { - return i1 == i2 // to be resolved during program execution - } - class A implements I1, I2 {} - const a = new A - equ1 (a, a) // true, the same values - - -An equality with values of two union types is represented in the example below: - -.. code-block:: typescript - :linenos: - - function f1(x: number | string, y: boolean | null): boolean { - return x == y // compile-time error, always evaluates to false - } - - function f2(x: number | string, y: boolean | "abc"): boolean { - return x == y // ok, can be evaluated to true - } + // Entities of value types are not comparable between each other + 5 == "5" // compile-time error + 5 == true // compile-time error + "5" == true // compile-time error .. index:: - implementation - resolution - equality + value equality + comparison + operand + operator + numerical equality + enumeration + equality operator + numeric type + string + equality operator + boolean type + type parameter + object + reference type union type - function + type parameter | -.. _Numeric Equality Operators: +.. _Numerical Equality Operators: -Numeric Equality Operators -========================== +Numerical Equality Operators +============================ .. meta: frontend_status: Done -Type of each operand in a numeric equality operator must be convertible +Type of each operand in a numerical equality operator must be convertible (see :ref:`Implicit Conversions`) to a numeric type (see :ref:`Numeric Types`). Otherwise, a :index:`compile-time error` occurs. @@ -5929,17 +5100,11 @@ The floating-point equality test must be performed in accordance with the following IEEE 754 standard rules: .. index:: - numeric equality - numeric equality operator - widening conversion - convertible type - conversion + numerical equality value equality operator numeric type numeric types conversion - widening numeric conversion - operand converted type floating-point equality test operand @@ -5947,7 +5112,7 @@ following IEEE 754 standard rules: integer equality test IEEE 754 widening - numeric conversion + primitive conversion - The result of '``==``' or '``===``' is ``false`` but the result of '``!=``' is ``true`` if either operand is ``NaN``. @@ -5974,6 +5139,8 @@ or floating-point operands other than ``NaN``: right-hand-side operand, then the operator '``!=``' or '``!==``' produces the value ``true``. Otherwise, the result is ``false``. +The following example illustrates *numerical equality*: + .. code-block:: typescript :linenos: @@ -5989,70 +5156,433 @@ or floating-point operands other than ``NaN``: .. index:: NaN + value equality + floating-point value + floating-point operand + numerical equality + positive infinity + negative infinity positive zero negative zero - floating-point value equality operator - value - positive infinity - negative infinity - floating-point operand - integer operand - value equality - numeric equality - integer operand + integer operand + +| + +.. _String Equality Operators: + +String Equality Operators +========================= + +.. meta: + frontend_status: Done + +Type of one operand must be of type ``string``, other operand must +be convertible (see :ref:`Implicit Conversions`) to ``string`` type. + +Two strings are equal if they represent the same sequence of characters: + +.. code-block:: typescript + :linenos: + + "abc" == "abc" // true + "abc" === "ab" + "c" // true + + function foo(s: string) { + console.log(s == "hello") + } + foo("hello") // prints "true" + +.. index:: + value equality + string + string equality operator + operand + convertibility + +| + +.. _Bigint Equality Operators: + +Bigint Equality Operators +========================== + +.. meta: + frontend_status: Done + +*Bigint equality* is used for operands of type ``bigint``. + +Two ``bigints`` are equal if they have the same value: + +.. code-block:: typescript + :linenos: + + let x = 2n + x == 2n // true + +.. index:: + value equality + bigint equality operator + bigint + equality operator + boolean equality + operand + value + +| + +.. _Boolean Equality Operators: + +Boolean Equality Operators +========================== + +.. meta: + frontend_status: Done + +*Boolean equality* is used for operands of type ``boolean``. + +If both operands are +either ``true`` or ``false``, then the result of ':math:`==`' or ':math:`===`' +is ``true``. Otherwise, the result is ``false``. + +If both operands are either ``true`` or ``false``, then the result of '``!=``' +or '``!==``' is ``false``. Otherwise, the result is ``true``. + +.. index:: + value equality + boolean type + boolean equality + boolean equality operator + equality operator + value equality operator + operand + +| + +.. _Enumeration Equality Operators: + +Enumeration Equality Operators +============================== + +.. meta: + frontend_status: Done + +If both operands are of the same enumeration type (see :ref:`Enumerations`), +then :ref:`Numerical Equality Operators` or :ref:`String Equality Operators` +are used depending on the kind of enumeration constant value +(:ref:`Enumeration Integer Values` or :ref:`Enumeration String Values`). +Otherwise, a :index:`compile-time error` occurs. + +.. index:: + value equality + enumeration type + enumeration constant value + constant value + +| + +.. _Function Type Equality Operators: + +Function Type Equality Operators +================================ + +.. meta: + frontend_status: None + +If both operands refer to the same function object, then the comparison +returns ``true``. Otherwise, it is ``false``. + + +.. code-block:: typescript + :linenos: + + function foo() {} + function bar() {} + function goo(p: number) {} + + foo == foo // true, same function object + foo == bar // false, different function objects + foo == goo // false, different function objects + + class A { + method() {} + static method() {} + foo () {} + } + const a = new A + a.method == a.method // true, same function object + A.method == A.method // true, same function object + + const aa = new A + a.method == aa.method /* false, different function objects + as 'a' and 'aa' are different bounded objects */ + a.method == a.foo // false, different function objects + + +.. index:: + function type + + +| + +.. _Reference Equality Based on Actual Type: + +Reference Equality Based on Actual Type +======================================= + +.. meta: + frontend_status: Done + +If an operand of an equality operator is of type ``Object``, a union type, +an interface type, or is a type parameter, then the operator is evaluated at +runtime, and is based on the actual type of this operand. If the other operand +is of a type other than that above, then the static type of this operand is +used for evaluation. + +If actual types of objects are compatible, then the corresponding evaluation of +equality operator is used. Otherwise, the result of the operators '``==``' and +'``===``' is ``false``. + +.. index:: + reference equality + union type + operand + compatibility + equality operator + object + type parameter + evaluation + operator + +| + +.. _Object Type Equality Operators: + +Object Type Equality Operators +------------------------------ + +.. meta: + frontend_status: Done + +A value of type ``Object`` can be compared to a value of any reference type. + +The following example illustrates an equality with a value of type ``Object``: + +.. code-block:: typescript + :linenos: + + function equToString(a: Object, b: string): boolean { + return a == b + } + + equToString("aa", "aa") // true, string equality + equToString(1, "aa") // false, not compatible types + + function equ(a: Object, b: Object): boolean { + return a == b + } + + equ(1, 1) // true, numerical equality + equ(1, 2) // false, numerical equality + + equ("aa", "aa") // true, string equality + equ(1, "aa") // false, not compatible types + +.. index:: + object type + equality operator + value + compatible type + compatibility + +**Note**. The actual type of an ``Object`` value can be none of the following: + +- Union type, as only the current value of a union type variable can be assigned + to an ``Object`` variable; + +- Type parameter, if it has no type constraint (see + :ref:`Type Parameter Constraint`) as in the example below: + +.. code-block:: typescript + :linenos: + + function check(a: Object) {} + + class MyType {} + + class G { + foo(x: A, y: B) { + check(x) // compile-type error, A is not assignable to Object + check(y) // ok, B is assignable to Object as its constraint does + } + } + +.. index:: + value + union type + variable + type constraint + assignment + constraint + type parameter + object type + +| + +.. _Union Equality Operators: + +Union Equality Operators +------------------------ + +Where one operand is of type ``T``:sub:`1`, and the other operand is of type +``T``:sub:`2`, while ``T``:sub:`1`, ``T``:sub:`2`, or both are a union type, +then a :index:`compile-time error` occurs if ``T``:sub:`1` and ``T``:sub:`2` +have no overlap (i.e., if no value belongs to both ``T``:sub:`1` and +``T``:sub:`2`). + +**Note**. Any union type has an overlap with a value of type ``Object``. + +The following example illustrates an equality with values of two union types: + +.. code-block:: typescript + :linenos: + + function f1(x: number | string, y: boolean | null): boolean { + return x == y // compile-time error, types have no overlap + } + + function f2(x: number | string, y: boolean | "abc"): boolean { + return x == y // ok, types have overlap - value "abc" + } + +.. index:: + union equality + equality operator + type + operand + union type + value + object type + +If actual types of values are compatible, then the corresponding evaluation of +an equality operator is used. Otherwise, the result of the operators '``==``' +and '``===``' is ``false``: + +.. code-block:: typescript + :linenos: + + function equ(x: number | string, y: string): boolean { + return x == y + } + + console.log(equ("aa", "aa")) // string equality: prints true + console.log(equ("ab", "aa")) // string equality: prints false + console.log(equ(1, "aa")) // different types: prints false + +.. index:: + compatibility + evaluation + equality operator + value + operator + +| + +.. _Type Parameter Equality Operators: + +Type Parameter Equality Operators +--------------------------------- + +.. meta: + frontend_status: Done + +If one operand is a type parameter, then the other operand can be of any +reference type, including type parameter. + +If actual object types are compatible, then the corresponding evaluation of an +equality operator is used. Otherwise, the result of the operators '``==``' and +'``===``' is ``false``: + +.. code-block:: typescript + :linenos: + + function equ(x: A, y: A): boolean { + return x == y + } + + console.log(equ("aa", "aa")) // string equality: prints true + console.log(equ(1, 2)) // numerical equality: prints false + +.. index:: + equality operator + type parameter + operand + reference type + compatibility + evaluation | -.. _Function Type Equality Operators: +.. _Reference Equality: -Function Type Equality Operators -================================ +Reference Equality +================== .. meta: - frontend_status: Done + frontend_status: Partly + todo: adapt latest specification changes -If both operands refer to the same function object, then the comparison -returns ``true``. -When comparing method references, not only the same method must be used, -but also its bounded instances must be equal. +Reference equality compares operands of two reference types except types +``string``, ``bigint``, ``Object``, union types, and type parameters. The +extended semantics is discussed in :ref:`Extended Equality with null or undefined`. -.. code-block:: typescript - :linenos: +A :index:`compile-time error` occurs if: - function foo() {} - function bar() {} - function goo(p: number) {} +- Any operand is not of a reference type; - foo == foo // true, same function object - foo == bar // false, different function objects - foo == goo // false, different function objects +- There is no implicit conversion (see :ref:`Implicit Conversions`) that + can convert type of either operand to the type of the other operand. - class A { - method() {} - static method() {} - foo () {} - } - const a = new A - a.method == a.method // true, same function object - A.method == A.method // true, same function object +The result of '``==``' or '``===``' is ``true`` if both operand values: - const aa = new A - a.method == aa.method /* false, different function objects - as 'a' and 'aa' are different bounded objects */ - a.method == a.foo // false, different function objects +- Are ``null``; +- Are ``undefined``; or +- Refer to the same object, array, or function. +In addition, the result of the '``==``' operator is ``true`` if one operand +value is ``null``, and the other operand value is ``undefined``. Otherwise, +the result is ``false``. This semantics is illustrated by the example below: .. index:: - function type equality operator - equality operator - function object - instance - bounded instance - method reference - function - bounded object + reference equality + reference type + union type + extended equality + operand + entity + null + undefined + array + operator + operand value + semantics + +.. code-block:: typescript + :linenos: + + class X {} + new X() == new X() // false, two different object of class X + new X() === new X() // false, the same + let x1 = new X() + let x2 = x1 + x1 == x2 // true, as x1 and x2 refer to the same object + x1 === x2 // true, the same + new Number(5) === new Number(5) // true, value equality is used + new Number(5) == new Number(6) // false, value equality is used + + null == undefined // true + null === undefined // false | @@ -6067,42 +5597,67 @@ Extended Equality with ``null`` or ``undefined`` |LANG| provides extended semantics for equalities with ``null`` and ``undefined`` to ensure better alignment with |TS|. -If one operand in an equality expression is ``null``, and other is ``undefined``, -then the operator '``!=``' returns ``true``, and the operator '``!==``' returns -``false``: +Any entity can be compared to ``null`` by using the operators '``==``' and +'``===``'. This comparison can return ``true`` only for the entities of +*nullable* types if they actually have the ``null`` value during program +execution. In all other cases the comparison to ``null`` returns ``false``. .. index:: extended equality - null - undefined semantics - alignment - operand - equality expression - equality operator + nullable type + null + operator + entity + +Operators '``!=``' and '``!==``' return ``true`` for any entity of +*non-nullable* types, and for *nullable* entities if they actually have no +``null`` value during program execution. + +These situations are to be known at compile time. + +Similarly, an equality comparison to ``undefined`` returns ``false`` if the +variable being compared is neither type ``undefined`` nor a union type with +``undefined`` as one of its types. + +The following comparisons evaluate to ``false`` at compile time: .. code-block-meta: .. code-block:: typescript :linenos: - function foo(x: Object | null, y: Object | null | undefined) { - console.log(x == y, x === y) - } - - foo(null, undefined) // output: true, false - foo(null, null) // output: true, true - + 5 == null // false + 5 == undefined // false + ((): void => {}) == null // false -Comparison the values ``null`` and ``undefined`` directly is also allowed: + class X {} + new X() == null // false -.. code-block-meta: +The following comparison is evaluated at runtime: .. code-block:: typescript :linenos: - console.log(null == undefined) // output: true - console.log(null === undefined) // output: false + function foo (p1: string | null, p2: T) { + console.log (p1 == undefined, p1 == null, p2 == undefined, p2 == null) + } + let nullable: string|null = "a string" + let undefinedable: Object|undefined = undefined + + foo (nullable, undefinedable) // Output: false false true true + +.. index:: + entity + non-nullable type + nullable type + null + variable + equality + comparison + undefined + evaluation + runtime | @@ -6147,13 +5702,10 @@ type, or two operands of the ``boolean`` type. Otherwise, a logical expression type boolean operand expression - syntax exclusive OR operator inclusive OR operator AND operator commutative operator - operator - commutative operator boolean type side effect numeric type @@ -6170,15 +5722,15 @@ Integer Bitwise Operators .. meta: frontend_status: Done -Integer bitwise operators are '``&``', '``^``', and '``|``' applied to operands +Bitwise operators '``&``', '``^``', and '``|``' are applied to operands of numeric types or type ``bigint``. If the type of one or both operands is ``double`` or ``float``, then the operand or operands are truncated first to the appropriate integer type. If the type of any operand is ``byte`` or ``short``, then the operand is converted to ``int``. -If operands are of different integer types, then the operand of a smaller type -is converted to a larger type (see :ref:`Numeric types`) by using +If operands are of different integer types, then the operand of the smaller type +is converted to the larger type (see :ref:`Numeric types`) by using :ref:`Widening Numeric Conversions`. If both operands are of type ``bigint``, then no conversion is required. A :index:`compile-time error` occurs if one operand of type ``bigint``, and the @@ -6195,9 +5747,8 @@ The resultant value of '``|``' is the bitwise inclusive OR of the operand values .. index:: integer bitwise operator numeric types conversion - widening numeric conversion - bigint type numeric type + conversion convertibility types conversion bitwise exclusive OR operand @@ -6219,8 +5770,8 @@ Boolean Logical Operators .. meta: frontend_status: Done -Boolean logical operators are '``&``', '``^``', and '``|``' applied to operands -of type ``boolean``. +Type of the bitwise operator expression is ``boolean``. Both operands of +operator '``&``', '``^``', or '``|``' must be of type ``boolean``. If both operand values are ``true``, then the resultant value of '``&``' is ``true``. Otherwise, the result is ``false``. @@ -6236,6 +5787,10 @@ Thus, *boolean logical expression* is of the boolean type. .. index:: boolean operator logical operator + bitwise operator expression + conversion + numeric types conversion + numeric type operand value boolean logical expression boolean type @@ -6254,8 +5809,8 @@ The *conditional-and* operator '``&&``' is similar to '``&``' (see :ref:`Bitwise and Logical Expressions`) but evaluates its right-hand-side operand only if the value of the left-hand-side operand is ``true``. -The computation results of '``&&``' and '``&``' on ``boolean`` operands are -the same. The right-hand-side operand of '``&&``' is not necessarily evaluated. +The results of computation of '``&&``' and '``&``' on ``boolean`` operands are +the same, but the right-hand-side operand in '``&&``' cannot be evaluated. The syntax of *conditional-and expression* is presented below: @@ -6279,11 +5834,9 @@ result, and the same side effects occur in the same order for any *a*, *b*, and bitwise expression logical expression boolean operand - syntax conditional evaluation evaluation expression - side effect A *conditional-and* expression is always of type ``boolean`` except the extended semantics (see :ref:`Extended Conditional Expressions`). @@ -6308,10 +5861,12 @@ expression. .. index:: conditional-and expression conditional-and operator + compile-time error boolean type - runtime - expression - operand + predefined numeric types conversion + numeric types conversion + numeric type + evaluation | @@ -6351,8 +5906,7 @@ expression type. .. index:: conditional-or expression conditional-or operator - operand - syntax + integer bitwise expression associativity expression side effect @@ -6385,8 +5939,11 @@ the same, but the right-hand-side operand in '``||``' cannot be evaluated. runtime boolean type expression - evaluation boolean operand + numeric types conversion + numeric type + semantics + conditional evaluation | @@ -6433,9 +5990,6 @@ first operand denotes a variable. .. index:: assignment assignment operator - syntax - assignment - assignment expression operand variable expression @@ -6449,7 +6003,6 @@ but the value of a variable after the assignment. variable assignment assignment expression - variable value runtime @@ -6465,46 +6018,32 @@ Simple Assignment Operator The form of a simple assignment expression is ``lhsExpression = rhsExpression``. -A :index:`compile-time error` occurs in the following situations: - - - Type of *rhsExpression* is not assignable (see :ref:`Assignability`) to - the type of the variable; or - - Type of *lhsExpression* is one of the following: +A :index:`compile-time error` occurs if type of *rhsExpression* +is not assignable (see :ref:`Assignability`) to +the type of the variable. Otherwise, the assignment expression is evaluated +at runtime in one of the following ways: - - ``readonly`` array (see :ref:`Readonly Parameters`), while the - converted type of *rhsExpression* is a non-``readonly`` array; - - ``readonly`` tuple (see :ref:`Readonly Parameters`), while the - converted type of *rhsExpression* is a non-``readonly`` tuple. +1. If *lhsExpression* is a field access expression + ``e.f`` (see :ref:`Field Access Expression`), possibly enclosed in parentheses, + then: -Otherwise, the assignment expression is evaluated at runtime in one of the -following ways: - -1. If *lhsExpression* is a field access expression ``e.f`` (see - :ref:`Field Access Expression`), possibly enclosed in parentheses, then: - - #. *lhsExpression* *e* is evaluated: if the evaluation of *e* completes - abruptly, then so does the assignment expression. - #. *rhsExpression* is evaluated: if the evaluation completes abruptly, then - so does the assignment expression. - #. If that evaluation completes normally, then the value of *rhsExpression* - is converted to the type of the field. In that case, the result of the - conversion is assigned to the field. + #. *lhsExpression* *e* is evaluated: if the evaluation of *e* + completes abruptly, then so does the assignment expression. + #. *rhsExpression* is evaluated: if the evaluation + completes abruptly, then so does the assignment expression. + #. Value of *rhsExpression* as computed above is assigned + to the variable denoted by ``e.f``. .. index:: simple assignment operator - assignment operator operator + assignable type assignability - readonly array - array - readonly tuple - tuple access + field access + field access expression runtime abrupt completion - normal completion - field - field type evaluation assignment expression variable @@ -6512,29 +6051,26 @@ following ways: 2. If the *lhsExpression* is an array reference expression (see :ref:`Array Indexing Expression`), possibly enclosed in parentheses, then: - #. Array reference subexpression of *lhsExpression* is evaluated. If this - evaluation completes abruptly, then so does the assignment expression. In - that case, *rhsExpression* and the index subexpression are not evaluated, - and no assignment occurs. - #. If the evaluation completes normally, then the index subexpression of - *lhsExpression* is evaluated. If this evaluation completes abruptly, then - so does the assignment expression. In that case, *rhsExpression* is not - evaluated, and no assignment occurs. - #. If the evaluation completes normally, then *rhsExpression* is evaluated. + #. Array reference subexpression of *lhsExpression* is evaluated. If this evaluation completes abruptly, then so does the assignment - expression, and no assignment occurs. + expression. In that case, *rhsExpression* and the index + subexpression are not evaluated, and the assignment does not occur. + #. If the evaluation completes normally, then the index subexpression of + *lhsExpression* is evaluated. If this evaluation completes abruptly, + then so does the assignment expression. In that case, *rhsExpression* + is not evaluated, and the assignment does not occur. + #. If the evaluation completes normally, then *rhsExpression* is + evaluated. If this evaluation completes abruptly, then so does the + assignment expression, and the assignment does not occur. #. If the evaluation completes normally, but the value of the index subexpression is less than zero, or greater than, or equal to the - *length* of the array, then ``RangeError`` is thrown, - and no assignment occurs. - #. If *lhsExpression* denotes indexing of *fixed-size array*, and - the type of *rhsExpression* is not a subtype of array element type, - then *ArrayStoreError* is thrown, and no assignment occurs. + *length* of the array, then ``ArrayIndexOutOfBoundsError`` is thrown, + and the assignment does not occur. #. Otherwise, the value of the index subexpression is used to select an element of the array referred to by the value of the array reference - subexpression and the value of *rhsExpression* is converted to the type - of the array element. In that case, the result of the conversion is - assigned to the array element. + subexpression. + + The value of *rhsExpression* is assigned to the array element. .. index:: operand @@ -6545,9 +6081,9 @@ following ways: assignment assignment expression abrupt completion - normal completion subexpression evaluation + array element array length variable conversion @@ -6555,34 +6091,33 @@ following ways: value set extended exponent reference type + assignable class assignability runtime - conversion 3. If *lhsExpression* is a record access expression (see :ref:`Record Indexing Expression`), possibly enclosed in parentheses, then: #. Object reference subexpression of *lhsExpression* is evaluated. If this evaluation completes abruptly, then so does the assignment - expression. In that case, *rhsExpression* and the index subexpression are - not evaluated, and no assignment occurs. + expression. + In that case, *rhsExpression* and the index subexpression are + not evaluated, and the assignment does not occur. #. If the evaluation completes normally, the index subexpression of *lhsExpression* is evaluated. If this evaluation completes abruptly, - then so does the assignment expression. In that case, *rhsExpression* is - not evaluated, and no assignment occurs. - #. If the evaluation completes normally, *rhsExpression* is evaluated. If - this evaluation completes abruptly, then so does the assignment - expression. In that case, no assignment occurs. - #. Otherwise, the value of the index subexpression is used as the ``key``, - and the value of *rhsExpression* converted to the type of the record - value is used as the ``value``. In that case, the assignment results in - storing the key-value pair in the record instance. + then so does the assignment expression. + In the last case, *rhsExpression* is not evaluated, and the + assignment does not occur. + #. If the evaluation completes normally, *rhsExpression* is + evaluated. If this evaluation completes abruptly, then so does the + assignment expression. In that case, the assignment does not occur. + #. Otherwise, the value of the index subexpression is used as the ``key``. + In that case, the value of *rhsExpression* is used as the ``value``, and + the key-value pair is stored in the record instance. .. index:: operand record access expression - record indexing expression - indexing expression parenthesis access expression reference subexpression @@ -6598,19 +6133,27 @@ following ways: key -If none of the above is true, then the following three steps are performed: +If none of the above is true, then the following three steps are required: -#. *lhsExpression* is evaluated to produce a variable. If the evaluation - completes abruptly, then so does the assignment expression. In that case, - *rhsExpression* is not evaluated, and no assignment occurs. +#. *lhsExpression* is evaluated to produce a variable. If the + evaluation completes abruptly, then so does the assignment expression. + In that case, *rhsExpression* is not evaluated, and the + assignment does not occur. -#. If the evaluation completes normally, then *rhsExpression* is evaluated. If - the evaluation completes abruptly, then so does the assignment expression. - In that case, no assignment occurs. +#. If the evaluation completes normally, then *rhsExpression* is + evaluated. If the evaluation completes abruptly, then so does the assignment + expression. In that case, the assignment does not occur. #. If that evaluation completes normally, then the value of *rhsExpression* - is converted to the type of the left-hand-side variable. In that case, the - result of the conversion is assigned to the variable. + is converted to the type of the left-hand-side variable. + In that case, the result of the conversion is stored into the variable. + A :index:`compile-time error` occurs if type of *lhsExpression* + is one of the following: + + - ``readonly`` array (see :ref:`Readonly Parameters`), while the + converted type of *rhsExpression* is a non-``readonly`` array; + - ``readonly`` tuple (see :ref:`Readonly Parameters`), while the + converted type of *rhsExpression* is a non-``readonly`` tuple. .. index:: evaluation @@ -6623,6 +6166,7 @@ If none of the above is true, then the following three steps are performed: variable readonly array readonly tuple + converted type | @@ -6645,7 +6189,7 @@ is equivalent to where ``T`` is type of *lhsExpression*, except that *lhsExpression* is evaluated only once. -While the nullish-coalescing assignment (``??=``) only evaluates the right +While the nullish coalescing assignment (``??=``) only evaluates the right operand, and assigns to the left operand if the left operand is ``null`` or ``undefined``. @@ -6676,8 +6220,6 @@ of the following ways: .. index:: compound assignment operator - compound assignment expression - nullish-coalescing assignment assignment operator indexing expression evaluation @@ -6709,7 +6251,7 @@ of the following ways: - If the evaluation completes normally, the value of the array reference subexpression refers to an array, and the value of the index subexpression is less than zero, greater than, or equal to - the *length* of the array, then ``RangeError`` is + the *length* of the array, then ``ArrayIndexOutOfBoundsError`` is thrown. In that case, no assignment occurs. - If the evaluation completes normally, then the value of the index @@ -6726,7 +6268,7 @@ of the following ways: determined at compile time: - - If ``T`` is a predefined value type, then ``S`` is the same as ``T``. + - If ``T`` is a primitive type, then ``S`` is the same as ``T``. The saved value of the array element, and the value of *rhsExpression* are used to perform the binary operation of the @@ -6756,9 +6298,11 @@ of the following ways: array element operand expression - array reference subexpression + array reference expression array indexing expression + reference subexpression evaluation + assignment subexpression index subexpression normal completion abrupt completion @@ -6767,7 +6311,7 @@ of the following ways: subexpression variable assignment operator - predefined value type + primitive type array element value operand @@ -6777,7 +6321,6 @@ of the following ways: conversion array element compound assignment operator - reference type string evaluation array @@ -6827,8 +6370,12 @@ of the following ways: abrupt completion normal completion assignment + object reference subexpression + reference subexpression + index subexpression key key-value pair + record indexing expression indexing expression record instance value @@ -6946,10 +6493,10 @@ The examples below represent different scenarios with standalone expressions: .. index:: conditional expression - union type normalization + normalization + union type evaluation operand expression - expression conversion standalone expression @@ -6963,9 +6510,9 @@ String Interpolation Expressions .. meta: frontend_status: Done -'*String interpolation expression*' is a multiline string literal, i.e., a -string literal delimited with backticks (see :ref:`Multiline String Literal` for -detail) that contains at least one *embedded expression*. +'*String interpolation expression*' is a multiline string literal (a string +literal delimited with backticks, see :ref:`Multiline String Literal` for +details) that contains at least one *embedded expression*. The syntax of *string interpolation expression* is presented below: @@ -6995,7 +6542,6 @@ operator (see :ref:`String Concatenation`): string literal backtick string type - syntax expression string curly brace @@ -7003,7 +6549,7 @@ operator (see :ref:`String Concatenation`): embedded expression string concatenation operator implicit conversion - curly brace + embedded expression .. code-block:: typescript :linenos: @@ -7042,10 +6588,9 @@ Lambda Expressions frontend_status: Done *Lambda expression* fully defines an instance of a function type (see -:ref:`Function Types`) by providing optional annotation usage -(see :ref:`Using Annotations`), optional ``async`` mark -(see :ref:`Async Lambdas`), mandatory lambda signature, and its body. The -declaration of *lambda expression* is generally similar to that of a function +:ref:`Function Types`) by providing optional ``async`` mark, type parameters +(see :ref:`Type Parameters`), mandatory lambda signature, and its body. The +definition of *lambda expression* is generally similar to that of a function declaration (see :ref:`Function Declarations`), except that a lambda expression has no function name specified, and can have types of parameters omitted. @@ -7054,7 +6599,8 @@ The syntax of *lambda expression* is presented below: .. code-block:: abnf lambdaExpression: - annotationUsage? 'async'? lambdaSignature '=>' lambdaBody + annotationUsage? + ('async'|typeParameters)? lambdaSignature '=>' lambdaBody ; lambdaBody: @@ -7096,9 +6642,7 @@ The usage of annotations is discussed in :ref:`Using Annotations`. async mark type parameter lambda signature - lambda body function declaration - optional annotation annotation The examples of usage are presented below: @@ -7108,6 +6652,7 @@ The examples of usage are presented below: (x: number): number => { return Math.sin(x) } // block as lambda body (x: number) => Math.sin(x) // expression as lambda body + (x: T, y: T) => { let local = x } // generic lambda e => e // shortest form of lambda A *lambda expression* evaluation creates an instance of a function type (see @@ -7146,7 +6691,7 @@ type annotations of formal parameters can be omitted. foo ((e1: Object, e2, e3) => e1) foo ((e1: Object, ...e2) => e1) - foo ((e1: Object, e2: Object) => e1) + foo ((e1: Object, e2: Object) => e1) function bar (a: (...p: T[]) => T) {} // Type can be omitted for the rest parameter @@ -7164,7 +6709,7 @@ A :index:`compile-time error` occurs if: - Lambda expression declares two formal parameters with the same name. - Formal parameter contains no type provided, and type cannot be derived - by :ref:`Type Inference`. + by type inference. .. index:: @@ -7173,8 +6718,6 @@ A :index:`compile-time error` occurs if: lambda expression function declaration type annotation - formal parameter - optional parameter type inference annotation scope @@ -7182,7 +6725,11 @@ A :index:`compile-time error` occurs if: shadowing parameter declaration evaluation - type inference + argument expression + initialization + variable + execution + lambda body | @@ -7213,43 +6760,39 @@ defined in a method, then ``this`` is *captured* by the lambda. A :index:`compile-time error` occurs if a local variable is used in a lambda body but is neither declared in nor assigned before it. -If a *lambda body* is a single ``expression``, then it is handled as follows: +If a *lambda body* is a single ``expression`` it is treated as -- If the expression is a *call expression* with return type ``void``, then - the body is equivalent to the block: ``{ expression }``. +- If the expression is a *call expression* with return type ``void`` + the body is equivalent to the block: ``{ expression }`` -- Otherwise, the body is equivalent to the block: ``{ return expression }``. +- Otherwise, the body is equivalent to the block: ``{ return expression }`` -If *lambda signature* return type is not ``void`` (see :ref:`Type void`) or -``never`` (see :ref:`Type never`), and the execution path of the lambda body -has no return statement (see :ref:`Return Statements`) or no single expression -as a body, then a :index:`compile-time error` occurs. +If *lambda signature* return type is not ``void`` (see :ref:`Type void`), and +the execution path of the lambda body has no return statement (see +:ref:`Return Statements`) or no single expression as a body, then a +:index:`compile-time error` occurs. .. index:: lambda body lambda - expression - block - method body - function body lambda expression - lambda expression call - this keyword - super keyword + keyword this + keyword super + this + super runtime evaluation method body function body lambda call - call expression - return type - captured by lambda - context + surrounding context accessibility lambda body lambda signature + instance member surrounding type return statement + assignment | @@ -7282,11 +6825,8 @@ the return type can be dropped off. lambda expression type function type lambda parameter - parameter - return type lambda return type - type inference - inferred type + inference lambda body | @@ -7301,18 +6841,17 @@ Runtime Evaluation of Lambda Expressions The evaluation of a lambda expression itself never causes the execution of the lambda body. If completing normally at runtime, the evaluation of a lambda -expression produces a new instance of a function type (see -:ref:`Function Types`) that corresponds to the lambda signature. In that case, -it is similar to the evaluation of a class instance creation expression (see -:ref:`New Expressions`). +expression produces a reference to an allocated and initialized new instance +of a function type (see :ref:`Function Types`) that corresponds to the lambda +signature. In that case, it is similar to the evaluation of a class instance +creation expression (see :ref:`New Expressions`). If the available space is not sufficient for a new instance to be created, then the evaluation of the lambda expression completes abruptly, and ``OutOfMemoryError`` is thrown. -During a lambda expression evaluation, the outer variables refrred by the -lambda expression are captured. This happens every time when the lambda -expression is evaluated: +During a lambda expression evaluation, the captured values of the +lambda expression are saved to the internal state of the created instance. .. index:: runtime evaluation @@ -7324,23 +6863,30 @@ expression is evaluated: lambda signature normal completion instance creation expression + initialization allocation - class instance instance abrupt completion error - captured variable - evaluation - - -.. code-block:: typescript - :linenos: - - function foo() { - let y: int = 1 - let x = () => { return y+1 } // 'y' is *captured*. - console.log(x()) // Output: 2 - } + captured value + internal state + lambda expression evaluation + + ++-----------------------------------------------+--------------+ +| Source Fragment | Output | ++===============================================+==============+ +| .. code-block:: typescript || | +| :linenos: | | +| | | +| function foo() { | | +| let y: int = 1 | 2 | +| let x = () => { return y+1 } | | +| console.log(x()) | | +| } | | ++-----------------------------------------------+--------------+ + +The variable 'y' is *captured* by the lambda. The captured variable is not a copy of the original variable. If the value of the variable captured by the lambda changes, then the original @@ -7353,66 +6899,58 @@ variable is implied to change: captured variable original variable -.. code-block:: typescript - :linenos: - - function foo() { - let y: int = 1 - let x = () => { y++ } // 'y' is *captured*. - console.log(y) // Output: 1 - x() - console.log(y) // Output: 2 - } - -This example highlights capturing within the function scope: - -.. code-block:: typescript - :linenos: - - function capturingFunction() { // Function scope - let v: number = 0 // A captured variable - return (p: number) => { - console.log ("Previous value: ", v, " new value: ", p) - v = p - } - } - - const func1 = capturingFunction () - const func2 = capturingFunction () - // Note: func1 and func2 are two different function type instances - - func1(11) // Previous value: 0 new value: 11 - func2(22) // Previous value: 0 new value: 22 - func1(33) // Previous value: 11 new value: 33 - func2(44) // Previous value: 22 new value: 44 - /* Note: - func1 calls work with their own version of variable 'v' - func2 calls work with their own version of variable 'v' - */ - -This example highlights capturing within the loop scope: - -.. code-block:: typescript - :linenos: ++-----------------------------------------------+--------------+ +| Source Fragment | Output | ++===============================================+==============+ +| .. code-block:: typescript || | +| :linenos: | | +| | | +| function foo() { | | +| let y: int = 1 | 1 | +| let x = () => { y++ } | | +| console.log(y) | 2 | +| x() | | +| console.log(y) | | +| } | | ++-----------------------------------------------+--------------+ - const l = () => {} - const storage = [l, l, l, l, l] // fill array with some lambdas +In order to make lambdas behave as required, the language implementation +can act as follows: - for (let index = 0; index < 5; index++) { - storage [index] = () => { console.log ("Index ", index) } - // Every lambda captures loop index variable - } - for (let index = 0; index < 5; index++) { - storage[index]() // Captured indices printed - } +- Replace the captured variable’s type for a proxy class that contains an + original reference (x: T for x: Proxy; x.ref = original-ref) if that + captured variable is of non-primitive type. +If the captured variable is defined as ``const``, then +proxying is not required. +If the captured formal parameter can be neither boxed nor proxied, then +the implementation can require addition of a local variable as follows: .. index:: - runtime - evaluation lambda - lambda expression + implementation + primitive type + proxy class + captured variable + captured variable type + non-primitive type + proxying + local variable + variable + ++-----------------------------------+-----------------------------------+ +| Source Code | Pseudo Code | ++===================================+===================================+ +| .. code-block:: typescript | .. code-block:: typescript | +| :linenos: | :linenos: | +| | | +| function foo(y: int) { | function foo(y: int) { | +| let x = () => { return y+1 } | let y$: Int = y | +| console.log(x()) | let x = () => { return y$+1 } | +| } | console.log(x()) | +| | } | ++-----------------------------------+-----------------------------------+ | @@ -7439,7 +6977,7 @@ A *constant expression* is an expression of a value type (see :ref:`Value Types`), or of type ``string`` that completes normally while being composed only of the following: -- Literals of a predefined value types, and literals of type ``string`` (see +- Literals of a primitive type, and literals of type ``string`` (see :ref:`Literals`); - Enumeration type constants; @@ -7480,51 +7018,33 @@ while being composed only of the following: .. index:: constant expression - expression - evaluation - compile time - syntax - constant expression - value type - normal completion - literal - predefined value type + primitive type string type enumeration type - enumeration type constant - unary operator - unary plus - unary minus - prefix - increment - decrement - casting conversion - multiplicative expression - additive operator - additive expression - relational operator - shift expression - shift operator - equality operator - equality expression - predefined value type + conversion + normal completion literal cast expression unary operator increment operator decrement operator + prefix + multiplicative operator + multiplicative expression + shift operator + relational operator + equality operator bitwise operator logical operator + ternary conditional operator conditional operator conditional-and operator conditional-or operator - ternary conditional operator parenthesized expression - multiplicative operator - multiplicative expression - relational operator - equality operator constant expression + simple name + constant variable + qualified name initializer compilation unit diff --git a/static_core/plugins/ets/doc/spec/8_statements.rst b/static_core/plugins/ets/doc/spec/8_statements.rst index 53dd5ba8c2..aa8de1ca06 100644 --- a/static_core/plugins/ets/doc/spec/8_statements.rst +++ b/static_core/plugins/ets/doc/spec/8_statements.rst @@ -18,7 +18,7 @@ Statements .. meta: frontend_status: Done -*Statements* are designed to control execution. +Statements are designed to control execution. The syntax of *statements* is presented below: @@ -60,9 +60,6 @@ execution is considered to *complete abruptly* if it causes an error thrown. .. index:: statement execution - control - evaluation - error statement execution normal completion abrupt completion @@ -94,8 +91,6 @@ result of such execution is discarded. .. index:: statement expression - expression statement - syntax execution | @@ -133,17 +128,14 @@ return statement at all. Such a block is equivalent to one that ends in a .. index:: statement - balanced braces + balanced brace block - syntax error execution block statement type declaration return return type - declaration body - return statement | @@ -173,37 +165,21 @@ The syntax of *local declaration* is presented below: ; The visibility of a local declaration name is determined by the surrounding -function or method, and by the block scope rules (see :ref:`Scopes`). In order -to avoid ambiguous interpretation, appropriate sections of this Specification -are dedicated to a detailed discussion of the following entities: - -- :ref:`if Statements`, -- :ref:`For Statements`, -- :ref:`For-Of Statements`. +function or method, and by the block scope rules (see :ref:`Scopes`). The usage of annotations is discussed in :ref:`Using Annotations`. .. index:: local declaration - enclosing context - context let declaration const declaration mutable variable immutable variable initialization - syntax execution function method - surrounding function - surrounding method block scope - if statement - for statement - for-of statement - annotation - | @@ -214,6 +190,7 @@ The usage of annotations is discussed in :ref:`Using Annotations`. .. meta: frontend_status: Done + todo: ambiguous wording in the spec: "Any 'else' corresponds to the first 'if' of an if statement" - what first means? An ``if`` statement allows executing alternative statements (if provided) under certain conditions. @@ -242,17 +219,12 @@ Type of expression must be ``boolean``, or a type mentioned in .. index:: if statement statement - syntax expression - type - boolean type - conditional expression -If an expression is successfully evaluated as ``true``, then a ``thenStatement`` -is executed. Otherwise, an ``elseStatement`` is executed (if provided). +If an expression is successfully evaluated as ``true``, then *thenStatement* is +executed. Otherwise, *elseStatement* is executed (if provided). -Any ``else`` corresponds to the nearest preceding ``if`` of an ``if`` -statement: +Any ``else`` corresponds to the first ``if`` of an ``if`` statement: .. code-block:: typescript :linenos: @@ -261,8 +233,8 @@ statement: if (Cond2) statement1 else statement2 // Executes only if: Cond1 && !Cond2 -A :ref:`Block` can be used to combine the ``else`` part with the initial ``if`` -as follows: +A list of statements in braces (see :ref:`Block`) is used to combine the +``else`` part with the first ``if``: .. code-block:: typescript :linenos: @@ -272,40 +244,11 @@ as follows: } else statement2 // Executes if: !Cond1 -If ``thenStatement`` or ``elseStatement`` is any kind of a statement but not a -block (see :ref:`Block`), then no *block scope* (see :ref:`Scopes`) is created -for such a statement. - -.. code-block:: typescript - :linenos: - - function foo(Cond1: boolean) { - if (Cond1) let x: number = 1 - x = 2 // OK - - if (Cond1) { - let x: number = 10; // OK, then-block scope - let y: number = x; - } - else { - let x: number = 20 // OK, no conflict, else-block scope - y = x; // CTE, no y in scope - } - - console.log(x) // OK, prints 2 - console.log(y) // CTE, y unknown - } - .. index:: if statement statement expression evaluation - block - block scope - scope - else-block - then-block | @@ -317,9 +260,9 @@ Loop Statements .. meta: frontend_status: Done -|LANG| has four kinds of loops. A loop of each kind can be optionally labelled -with an *identifier*. The *identifier* can be used only by the -:ref:`Break Statements` and :ref:`Continue Statements` contained in the loop body. +|LANG| has four kinds of loops. A loop of each kind can have an optional loop +label that can be used only by ``break`` and ``continue`` statements contained +in the body of the loop. The label is characterized by an *identifier*. .. index:: loop statement @@ -341,35 +284,17 @@ The syntax of *loop statements* is presented below: | forOfStatement ; -A :index:`compile-time error` occurs if the label *identifier* is not used -within ``loopStatement``, or is used in lambda expressions (see -:ref:`Lambda Expressions`) within a loop body. - -.. code-block:: typescript - :linenos: - - label: for (i = 1; i < 10; i++) { - const f1 = () => { - while (true) { - continue label // Compile-time error - } - } - const f2 = () => { - do - break label // Compile-time error - while (true) - } - } +An ``identifier`` at the beginning of a loop statement denotes a *label* +that can be used in :ref:`Break Statements` and :ref:`Continue Statements`. +A :index:`compile-time error` occurs if the label *identifier* is not used +within ``loopStatement``. .. index:: loop statement - loop - syntax - lambda - lambda expression - loop body label + break statement + continue statement identifier | @@ -384,8 +309,8 @@ within ``loopStatement``, or is used in lambda expressions (see A ``while`` statement and a ``do`` statement evaluate an expression and execute the statement repeatedly till the expression value is ``true``. -The key difference is that a ``whileStatement`` starts from evaluating and -checking the expression value, and a ``doStatement`` starts from executing +The key difference is that *whileStatement* starts from evaluating and +checking the expression value, and *doStatement* starts from executing the statement. The syntax of *while and do statements* is presented below: @@ -407,17 +332,10 @@ Otherwise, a :index:`compile-time error` occurs. .. index:: while statement do statement - evaluation expression expression value execution statement - syntax - while statement - do statement - boolean type - type - extended conditional expression | @@ -477,28 +395,6 @@ mentioned in :ref:`Extended Conditional Expressions`. Otherwise, a .. index:: for statement - syntax - variable - declaration - loop index variable - type - inferred type - initialization - -A variable declared in the *forInit*-part has the loop scope. It can be used -in a *forContinue* expression, a *forUpdate* expression, a single-body -statement, or in a body block if enclosed in parentheses: - -.. code-block:: typescript - :linenos: - - // forInit declaration and no body block - let k: number = 0 - for (let i: number = 1; i < 10; i++) - k += i - console.log(k) - // i = k // CTE when uncommented - let i: number = k // OK | @@ -509,7 +405,7 @@ statement, or in a body block if enclosed in parentheses: .. meta: frontend_status: Partly - todo: type of element for strings + todo: type of element for strings A ``for-of`` loop iterates elements of ``array`` or ``string``, or an instance of *iterable* class or interface (see :ref:`Iterable Types`). @@ -533,60 +429,51 @@ The execution of a ``for-of`` loop starts from the evaluation of ``expression``. If the evaluation is successful, then the resultant expression is used for loop iterations (execution of the ``statement``). On each iteration, *forVariable* is set to successive elements of the ``array``, ``string``, or -the result of class iterator advancement. +the result of class iterator advancing. .. index:: for-of statement loop - instance - iterable class - iterable interface - itarable type + array + string expression type array string for-of loop evaluation - loop iteration - class iterator - iteration + loop iterations statement If *forVariable* has the modifiers ``let`` or ``const``, then a new variable -is declared in the loop scope. The new variable is accessible only inside the -loop body. Otherwise, the variable is as declared above. +is declared in the loop scope and is accessible only inside loop body. +Otherwise, the variable is as declared above. The modifier ``const`` prohibits assignments into *forVariable*, while ``let`` allows modifications. -The type of *forVariable* declared inside the loop is inferred to be that -of the *iterated* elements, namely: +If *forVariable* is declared inside loop, its type is inferred +to be the type of *iterated* elements, namely - ``T``, if ``Array`` or ``FixedArray`` instance is iterated; - ``string``, if ``string`` value is iterated; -- Type argument of the *iterator*, if an instance of the *iterable* type +- Type argument of the *iterator*, if an instance of *iterable* type is iterated. -If *forVariable* is declared outside the loop, then the type of an iterated -element must be assignable (see :ref:`Assignability`) to the type of the -variable. Otherwise, a :index:`compile-time error` occurs. +If *forVariable* is declared outside the loop, the type of iterated element +must be assignable (see :ref:`Assignability`) +to the type of the variable, otherwise a :index:`compile-time error` occurs. + +Explicit type annotation of *forVariable* is allowed as an experimental +feature (see :ref:`For-of Type Annotation`). + + .. index:: - compile-time error modifier modifier let let - loop - loop scope - loop body - instance - iteration - iterable type - accessibility - declaration - inferred type modifier const const variable @@ -594,12 +481,14 @@ variable. Otherwise, a :index:`compile-time error` occurs. modification for-of type annotation annotation - iterator + +.. code-block-meta: + not-subset .. code-block:: typescript :linenos: - // existing variable 's' + // existing variable 'ch' let s : string for (s of "a string object") { console.log(s) @@ -610,22 +499,13 @@ variable. Otherwise, a :index:`compile-time error` occurs. console.log(s) } - // new variable 'element', its type is inferred from expression after 'of'. - // as 'const' it cannot be assigned with a new value in the loop body + // new variable 'element', its type is inferred from expression after 'of', + // and it cannot be assigned with a new value in the loop body for (const element of [1, 2, 3]) { console.log(element) element = 66 // Compile-time error as 'element' is 'const' } -Explicit type annotation of *forVariable* is allowed as an experimental -feature (see :ref:`For-of Explicit Type Annotation`). - -.. index:: - annotation - inferred type - expression - assignment - | .. _Break Statements: @@ -637,19 +517,14 @@ feature (see :ref:`For-of Explicit Type Annotation`). frontend_status: Done todo: break with label causes compile time assertion -A ``break`` statement transfers control out of the enclosing ``loopStatement`` -or ``switchStatement``. If a ``break`` statement is used outside a -``loopStatement`` or a ``switchStatement``, then a :index:`compile-time error` -occurs. +A ``break`` statement transfers control out of the enclosing *loopStatement* +or *switchStatement*. .. index:: break statement control transfer - compile-time error - control transfer switch statement loop statement - syntax The syntax of *break statement* is presented below: @@ -666,29 +541,8 @@ surrounding function or method), then a :index:`compile-time error` occurs. A statement without a label transfers control out of the innermost enclosing ``switch``, ``while``, ``do``, ``for``, or ``for-of`` statement. If -``breakStatement`` is placed outside ``loopStatement`` or ``switchStatement``, -then a :index:`compile-time error` occurs. - -Examples of ``break`` statements with and without a label are presented below: - -.. code-block:: typescript - :linenos: - - // Single iteration - while (true) { - console.log("iteration") // get printed exactly once - break; - } - - let a: number = 0 - outer: - do { - for (a = 0; a < 10; a++) { - if (a == 1) break outer - console.log("inner") // get printed only once - } - console.log(a) // Never reached - } while (true) // condition never used +``breakStatement`` is placed outside *loopStatement* or *switchStatement*, then +a :index:`compile-time error` occurs. .. index:: break statement @@ -696,9 +550,6 @@ Examples of ``break`` statements with and without a label are presented below: identifier control transfer statement - enclosing statement - surrounding function - surrounding method function method label @@ -732,73 +583,24 @@ The syntax of *continue statement* is presented below: 'continue' identifier? ; -.. index:: - continue statement - statement - execution - loop - loop iteration - control transfer - iteration - exit condition - label - syntax - -A ``continue`` statement with no label transfers control to the next iteration -of the enclosing ``loop`` statement. If there is no enclosing ``loop`` statement -within the body of the surrounding function or method, then a -:index:`compile-time error` occurs. - A ``continue`` statement with the label *identifier* transfers control -to the next iteration of the enclosing loop statement with the same label -*identifier*. +to the next iteration of the enclosing loop statement +with the same label *identifier*. If there is no enclosing loop statement with the same label *identifier* (within the body of the surrounding function or method), then a :index:`compile-time error` occurs. -Examples of ``continue`` statements with and without a label are presented below: - .. index:: continue statement - control transfer - statement - iteration - surrounding function - surrounding method - enclosing statement execution label - label identifier exit condition loop statement surrounding function control transfer identifier + continue statement function - method - -.. code-block:: typescript - :linenos: - - // continue // would cause CTE if uncommented - - // continue without label - // will print 0, 1, 2, 4 (3 skipped) - for (let a: number = 0; a < 5; a++){ - if (a == 3) continue - console.log("a = " + a) - } - - let a: number - outer: - do { - for (a = 0; a < 10; a++) { - if (a > 1) continue outer - console.log("inner") // get printed only twice - } - console.log("Outer") // Never reached - } while (false) - | @@ -821,29 +623,24 @@ The syntax of *return statement* is presented below: 'return' expression? ; -A ``return`` statement with *expression* can only occur inside a function, a -method, or a lambda body with non-``void`` return type. +A ``return`` statement with *expression* can only occur inside a function or a +method body with non-``void`` return type. .. index:: return statement - statement expression - syntax return expression function method - lambda body - return type method body - function body constructor -A ``return`` statement (with no *expression*) can occur inside one of the -following: +A ``return`` statement (with no *expression*) can occur in one of the following +situations: -- Initializer block; -- Constructor body; -- Function, method, or lambda body with return type ``void`` (see +- Inside a initializer block; +- Inside a constructor body; +- Inside a function or a method body with return type ``void`` (see :ref:`Type void`); A :index:`compile-time error` occurs if a ``return`` statement is found in: @@ -857,41 +654,35 @@ A :index:`compile-time error` occurs if a ``return`` statement is found in: .. index:: return statement expression - function body - lambda body - method body - return type statement top-level statement function method - void type return type class initializer constructor + constructor declaration initializer block constructor body return type -The execution of a ``returnStatement`` leads to the termination of the +The execution of *returnStatement* leads to the termination of the surrounding function, method, or initializer. If an *expression* is provided, the resultant value is the evaluated *expression*. -In case of constructors, initializer blocks, and top-level statements, the -control is transferred out of the scope of the construction, but no result is -required. Other statements of the surrounding function, method body, -initializer block, or top-level statement are not executed. +In case of constructors, initializer blocks, and top-level +statements, the control is transferred out of the scope of the construction in +question, but no result is required. Other statements of the surrounding +function, method body, initializer block, or top-level statement are +not executed. .. index:: execution return statement termination surrounding function - function surrounding method - method - initializer constructor initializer block top-level statement @@ -899,6 +690,8 @@ initializer block, or top-level statement are not executed. expression evaluation method body + top-level statement + return statement | @@ -911,6 +704,7 @@ initializer block, or top-level statement are not executed. frontend_status: Done todo: non literal constant expression () in case ==> causes an assertion error todo: when there is only a default clause in switchBlock then the default's statements/block are not executed + todo: spec issue: optional identifier before the switch - it should be clarified it can be a label for break stmt A ``switch`` statement transfers control to a statement or a block by using the result of successful evaluation of the value of a ``switch`` expression. @@ -945,21 +739,8 @@ The syntax of *switch statement* is presented below: A ``switch`` expression can be of any type. -If available, an optional identifier allows the ``break`` statement to transfer -control out of a nested ``switch`` or ``loop`` statement (see -:ref:`Break statements`). - .. index:: - syntax - switch statement - switch expression expression type - identifier - control transfer - nested statement - switch statement - loop statement - break statement A :index:`compile-time error` occurs if at least one of case expression types is not assignable (see :ref:`Assignability`) to the type of the ``switch`` @@ -967,7 +748,6 @@ statement expression. .. index:: expression - expression type switch statement assignability @@ -978,20 +758,20 @@ statement expression. switch (arg) { case '0': case '1': - console.log('One or zero') + alert('One or zero') break case '2': - console.log('Two') + alert('Two') break default: - console.log('An unknown value') + alert('An unknown value') } class A {} let a: A| null = assignIt() switch (a) { case null: - case null: // One may have several case clauses with the same expression in + case null: // One may have several case clauses with the same expression in console.log ("a is null") break case new A: @@ -1002,36 +782,29 @@ statement expression. } function assignIt () { return new A - } + } The execution of a ``switch`` statement starts from the evaluation of the ``switch`` expression. The value of the ``switch`` expression is compared repeatedly to the value -of case expressions. The comparison starts from the top and proceeds until the +of case expressions. The comparison starts from the top and proceeds till the first *match*. A *match* occurs when a particular case expression value equals the value of the ``switch`` expression in terms of the operator '``==``'. The execution is transferred to the set of statements of the *caseClause* where the match occurred. If this set of statements executes a ``break`` statement, then the entire ``switch`` statement terminates. If no ``break`` statement is -executed, then the execution continues through statements of any remaining -*caseClause* and *defaultClause* until the first ``break`` statement occurs, -or until the ``switch`` statement ends. +executed, then the execution continues through any remaining *caseClause*(s) and +*defaultClause* until first ``break`` statement occurs. -If no *match* occurs while a *defaultClause* is present, then the execution is -transferred to the statements of the *defaultClause*. +If no *match* occurs but *defaultClause* is present, +then execution is transferred to statements in *defaultClause*. .. index:: - expression - break - object - function execution switch statement - switch expression - expression value - execution trasnfer + expression evaluation constant operator @@ -1072,24 +845,17 @@ Errors can be thrown at any place in the code. .. index:: throw statement - error object thrown value thrown object control transfer statement method - method call function constructor try block try statement - value assignment assignability - expression - assignability - error - type | @@ -1136,7 +902,6 @@ If an error is thrown in the ``try`` block directly or indirectly, then the control is transferred to the ``catch`` clause. .. index:: - syntax catch clause typed catch clause try statement @@ -1170,11 +935,14 @@ The type of *catch identifier* inside the block is ``Error`` (see catch clause catch identifier access - error block catch identifier Object + +.. index:: + typed catch clause + .. code-block:: typescript :linenos: @@ -1191,7 +959,6 @@ The type of *catch identifier* inside the block is ``Error`` (see let res = divide(a, b) // further processing ... - return res } catch (e) { return e instanceof ZeroDivisor? -1 : 0 @@ -1204,9 +971,6 @@ the ``ZeroDivisor``, and '*0*' for all other errors. .. index:: catch clause runtime - function - divisor - | @@ -1245,10 +1009,10 @@ can be performed while leaving the ``try-catch``: try-catch normal completion abrupt completion - syntax finally block execution return + try-catch .. code-block:: typescript @@ -1284,20 +1048,20 @@ can be performed while leaving the ``try-catch``: ``catch`` block is executed. The execution of a ``try`` block completes abruptly if an error is thrown inside the ``try`` block. -#. The the execution of a ``try`` block completes abruptly if error *x* is - thrown inside the ``try`` block. If the ``catch`` clause is present, and the +#. The execution of a ``try`` block completes abruptly if error *x* is thrown + inside the ``try`` block. If the ``catch`` clause is present and the execution of the body of the ``catch`` clause completes normally, then the entire ``try`` statement completes normally. Otherwise, the ``try`` statement completes abruptly. -#. If no ``catch`` clause is in place, then the error is propagated to the - surrounding and caller scopes until reaching the scope with the ``catch`` - clause to handle the error. If there is no such scope, then the whole - coroutine stack (see :ref:`Coroutines (Experimental)`) is discarded. - Subsequent steps are then defined by the execution environment. +#. If no ``catch`` clause in place then the error is propagated to the + surrounding and caller scopes until it reaches the scope with the ``catch`` + clause which handles the error. If no such scope exits then the whole + coroutine stack (see :ref:`Coroutines (Experimental)`) is discarded, + and subsequent steps are defined by the execution environment. -#. If ``finally`` clause is in place, and its execution completes abruptly, then - the ``try`` statement also completes abruptly. +#. If ``finally`` clause in place and its execution completes abruptly then the + ``try`` statement completes abruptly as well. .. index:: try statement @@ -1308,15 +1072,14 @@ can be performed while leaving the ``try-catch``: error catch clause runtime - statement catch clause assignability propagation surrounding scope - caller scope - scope - coroutine stack - environment + function + method + constructor + caller context .. raw:: pdf diff --git a/static_core/plugins/ets/doc/spec/9_classes.rst b/static_core/plugins/ets/doc/spec/9_classes.rst index 66e0ca459c..a98bba6a81 100644 --- a/static_core/plugins/ets/doc/spec/9_classes.rst +++ b/static_core/plugins/ets/doc/spec/9_classes.rst @@ -48,7 +48,6 @@ Class members include: class member initializer block scope - declaration scope Class members can be *declared* or *inherited*. @@ -59,13 +58,16 @@ access modifiers (see :ref:`Access Modifiers`): - ``Public``, - ``Protected``, +- ``Internal``, or - ``Private``. +A newly declared method can shadow, overload, implement, or override a method +declared in a superclass or superinterface. + Every class defines two class-level scopes (see :ref:`Scopes`): one for instance members, and the other for static members. It means that two members of a class can have the same name if one is static while the other is not. - .. index:: class declaration declared class member @@ -74,6 +76,8 @@ of a class can have the same name if one is static while the other is not. accessor method field + shadowing + overloading implementing overriding superclass @@ -106,24 +110,13 @@ The syntax of *class declaration* is presented below: classDeclaration: classModifier? 'class' identifier typeParameters? - classExtendsClause? implementsClause? - classMembers + classExtendsClause? implementsClause? classBody ; classModifier: 'abstract' | 'final' ; -.. index:: - class declaration - class type - identifier - class name - generic class - -Classes with the ``final`` modifier are an experimental feature -discussed in :ref:`Final Classes`. - The scope of a class declaration is specified in :ref:`Scopes`. An example of a class is presented below: @@ -148,10 +141,6 @@ An example of a class is presented below: } .. index:: - class - final modifier - modifier - final class class declaration class type reference type @@ -170,14 +159,12 @@ Abstract Classes .. meta: frontend_status: Done -A class with the modifier ``abstract`` is known as abstract class. An abstract -class is a class that cannot be instantiated, meaning no objects of this type -can be created. It serves as a blueprint for other classes, defining common -fields and methods that subclasses must implement. Abstract classes can contain -both abstract and concrete methods. +A class with the modifier ``abstract`` is known as abstract class. +Abstract classes can be used to represent notions that are common +to some set of more concrete notions. -A :index:`compile-time error` occurs if an attempt is made to create an -instance of an abstract class: +A :index:`compile-time error` occurs if an attempt is made to create +an instance of an abstract class: .. code-block:: typescript :linenos: @@ -196,15 +183,13 @@ for non-static fields of that class are executed: .. index:: abstract class - abstract modifier + modifier abstract + abstract class subclass - superclass - instantiation non-abstract class field initializer constructor non-static field - class .. code-block:: typescript :linenos: @@ -219,11 +204,13 @@ for non-static fields of that class are executed: } A method with the modifier ``abstract`` is considered an *abstract method* -(see :ref:`Abstract Methods`). Abstract methods have no bodies, i.e., they can -be declared but not implemented. +(see :ref:`Abstract Methods`). +Abstract methods have no bodies, i.e., they can be declared but not +implemented. -Only abstract classes can have abstract methods. A :index:`compile-time error` -occurs if a non-abstract class has an abstract method: +Only abstract classes can have abstract methods. +A :index:`compile-time error` occurs if a non-abstract class has +an abstract method: .. code-block:: typescript :linenos: @@ -237,34 +224,36 @@ occurs if a non-abstract class has an abstract method: A :index:`compile-time error` occurs if an abstract method declaration contains the modifiers ``final`` or ``override``. -.. code-block:: typescript - :linenos: - - abstract class Y { - final abstract method (p: string) - // Compile-time error: Abstract methods cannot be final - } - - .. index:: - abstract modifier - modifier + modifier abstract abstract method method body non-abstract class class method declaration - implementation - abstract class - final modifier - override modifier + +| + +.. _Final Classes: + +Final Classes +============= + +.. meta: + frontend_status: Done + +Final classes are discussed in the chapter Experimental Features (see +:ref:`Final Classes Experimental`). + +.. index:: + final class | .. _Class Extension Clause: Class Extension Clause -********************** +====================== .. meta: frontend_status: Done @@ -279,7 +268,6 @@ clause, is assumed to have the ``extends Object`` clause. class Object extends clause - extends Object clause base class derived class direct subclass @@ -297,17 +285,18 @@ The syntax of *class extension clause* is presented below: A :index:`compile-time error` occurs if: -- ``typeReference`` refers directly to, or is an alias of any - non-class type, e.g., of interface, enumeration, union, function, - or utility type. +- An ``extends`` clause appears in the definition of the class ``Object``, + which is the top of type hierarchy, and has no superclass. - Class type named by ``typeReference`` is not accessible (see :ref:`Accessible`). -- An ``extends`` clause appears in the declaration of the class ``Object``. - - The ``extends`` graph has a cycle. +- ``typeReference`` refers directly to, or is an alias of interface, or of any + non-class type, e.g., of primitive, array, string, enumeration, union, + function, or utility type. + *Class extension* implies that a class inherits all members of the direct superclass. @@ -315,29 +304,20 @@ superclass. accessible (see :ref:`Accessible`) within subclasses: .. index:: - syntax class - class extension clause - alias - non-class type - interface - enumeration - union - function - utility type - accessibility + extends clause Object - class extension - superclass - direct superclass - subclass superclass type + enum type + primitive type class type class extension extends clause extends graph - accessibility + type argument + inheritance + access private member .. code-block:: typescript @@ -379,9 +359,9 @@ relationship. Class ``A`` can be a subclass of class ``C`` if: Class ``C`` is a *superclass* of class ``A`` if ``A`` is its subclass. .. index:: - private method transitive closure direct subclass + subclass relationship subclass class @@ -390,7 +370,7 @@ Class ``C`` is a *superclass* of class ``A`` if ``A`` is its subclass. .. _Class Implementation Clause: Class Implementation Clause -*************************** +=========================== .. meta: frontend_status: Done @@ -434,11 +414,8 @@ repetitions are ignored. class implementation clause implements clause accessible interface type - accessibility - interface type type argument interface - syntax direct superinterface For the class declaration ``C`` <``F``:sub:`1` ``,..., F``:sub:`n`> (:math:`n\geq{}0`, @@ -461,9 +438,8 @@ For the generic class declaration ``C`` <``F``:sub:`1` ``,..., F``:sub:`n`> (*n* .. index:: class declaration + parameterized class type direct superinterface - type - declaration implements clause substitution generic class declaration @@ -488,7 +464,6 @@ generic interface (see :ref:`Generics`). class type direct superinterface superinterface - subinterface interface superclass class @@ -503,31 +478,10 @@ If a class is not declared *abstract*, then: - The declaration of an existing method is inherited from a direct superclass, or a direct superinterface. -A :index:`compile-time error` occurs if a class field has the same name as -a method from one of superinterfaces implemented by the class, except when one -is static and the other is not. - -.. index:: - method - abstract method - superinterface - implementation - class field - class - static class - non-static class - -| - -.. _Implementing Interface Methods: - -Implementing Interface Methods -============================== - If superinterfaces have more then one default implementations (see :ref:`Default Interface Method Declarations`) for some method ``m``, then: -- The class that implements these interfaces has method that overrides ``m`` +- The class that implements these interfaces has method that overrides ``m`` (see :ref:`Override-Compatible Signatures`); or - There is a single interface method with default implementation @@ -539,12 +493,12 @@ If superinterfaces have more then one default implementations (see Otherwise, a :index:`compile-time error` occurs. .. index:: - interface method - overriding abstract class abstract method - class method + direct superinterface superinterface + inheritance + direct superclass implementation class override-compatible signature @@ -570,74 +524,39 @@ Otherwise, a :index:`compile-time error` occurs. interface I5 extends I1 { foo() {} } // override method from I1 class C4 implements I1, I5 { - // Compile-time error as foo() from I1 and foo() from I5 have different implementations - } - - class Base {} - class Derived extends Base {} - - interface IBase { - foo(p: Base) {} - } - interface IDerived { - foo(p: Derived) {} + // OK, as I5.foo overrides I1.foo, and there is only one implementation accessible } - class C implements IBase, IDerived {} // foo() from IBase overrides foo() from IDerived - new C().foo(new Base) // foo() from IBase is called - A single method declaration in a class is allowed to implement methods of one or more superinterfaces. +A :index:`compile-time error` occurs if a class field has the same name as +a method from one of superinterfaces implemented by the class, except when one +is static and the other is not. + .. index:: method declaration - class method superinterface + class field + superclass implementation | -.. _Implementing Required Interface Properties: +.. _Implementing Interface Properties: -Implementing Required Interface Properties -========================================== +Implementing Interface Properties +================================= .. meta: frontend_status: Done -A class must implement all required properties from all superinterfaces (see -:ref:`Interface Properties`) that can be defined in a form of a field -or as a getter, a setter, or both. In any case implementation may be provided -in a form of field or accessors. - -The following table summarises all valid variants of implemenatation, -a :index:`compile-time error` occurs for any other combinations: - - =========================== ====================================================== - Form of Interface Property Implementation in a Class - =========================== ====================================================== - readonly field readonly field, field, getter, or getter and setter - getter only readonly field, field, getter, or getter and setter - field field, or getter and setter - getter and setter field, or getter and setter - setter only field, setter, or setter and getter - =========================== ====================================================== - -Providing implementation for the property in the form of +A class must implement all properties from all superinterfaces (see +:ref:`Interface Properties`) that are always defined as a getter, a +setter, or both. Providing implementation for the property in the form of a field is not necessary: -.. index:: - implementatoin - interface - class - superinterface - field - getter - setter - accessor - readonly - .. code-block-meta: .. code-block:: typescript @@ -664,31 +583,13 @@ a field is not necessary: } } -If a property is implemented as a field, the required accessors -and a private hidden field are defined implicitly. For the -``StyleClassOne`` the following entities are implicitly defined, -as shown below: - -.. code-block:: typescript - :linenos: - - class StyleClassOne implements Style { - private $$_color: string = "" // the exact name of the field is implementation specific - get color(): string { return this.$$_color } - set color(s: string) { this.$$_color = s } - } - .. index:: - property - interface - implementation - accessor - private field - hidden field - entity + interface property class + superinterface + getter + setter field - string If a property is defined in a form that requires a setter, then the implementation of the property in the form of a ``readonly`` field causes a @@ -718,6 +619,7 @@ implementation of the property in the form of a ``readonly`` field causes a write_into_read_only (new StyleClassTwo) .. index:: + property implementation setter readonly field @@ -756,241 +658,88 @@ form as follows: property readonly implementation - -| - -.. _Implementing Optional Interface Properties: - -Implementing Optional Interface Properties -========================================== - -.. meta: - frontend_status: None - -A class can implement :ref:`Optional Interface Properties`) -from superinterfaces or use implicitly defined accessors from an interface. - -The use of accessors implicitly defined in the interface is represented in -the example below: - -.. code-block:: typescript - :linenos: - - interface I { - n?: number - } - class C implements I {} - - let c = new C() - console.log(c.n) // Output: undefined - c.n = 1 // runtime error is thrown - -.. index:: - property - interface - implementation class - superinterface - accessor - -The implementation of an optional interface property as a field is represented -in the example below: - -.. code-block:: typescript - :linenos: - - interface I { - num?: number - } - class C implements I { - num?: number = 42 - } - -For the example above, the private hidden field and the required accessors -are defined implicitly for the class ``C`` overriding accessors from -the interface: - -.. code-block:: typescript - :linenos: - - class C implements I { - private $$_num: number = 42 // the exact name of the field is implementation specific - get num(): number | undefined { return this.$$_num } - set num(n: number | undefined) { this.$$_num = n } - } - - -If a property is implemented by accessors (see -:ref:`Class Accessor Declarations`) then it is OK to implement only one -of accessors for the optional field, the default implementation will be -used for another one. That is illustrated in the following example: - -.. index:: - interface - implementation - propery + getter + setter field - private field - hidden field - accessor - class - class accessor declaration - -.. code-block:: typescript - :linenos: - - interface I { - num?: number - } - - class C1 implements I { // OK, both default implementations - } - - class C2 implements I { // OK, default implementation used for get - set num(n: number | undefined) { this.$$_num = n } - } - - class C3 implements I { // OK, both explicit implementations - get num(): number | undefined { return this.$$_num } - set num(n: number | undefined) { this.$$_num = n } - } - -A :index:`compile-time error` occurs, if an optional property in an interface -is implemented as non-optional field: - -.. code-block:: typescript - :linenos: - - interface I { - num?: number - } - class C implements I { - num: number = 42 // compile-time error, must be optional - } - -.. index:: - interface - implementation - property - non-optional field - optional field | -.. _Class Members: +.. _Class Body: -Class Members -************* +Class Body +********** .. meta: frontend_status: Done -A class can contain declarations of the following members: +A *class body* can contain declarations of the following members: - Fields, - Methods, - Accessors, -- Constructors, -- Method overloads (see :ref:`Class Method Overload Declarations`), -- Constructor overloads (see :ref:`Constructor Overload Declarations`), and -- Single static block for initialization (see :ref:`Static Initialization`). +- Constructors, and +- Initializer blocks. -The syntax is presented below: - -.. index:: - class member - declaration - field - method - accessor - constructor - method overload - overload declaration - class method - constructor overload - static block - initialization - syntax +The syntax of *class body* is presented below: .. code-block:: abnf - classMembers: + classBody: '{' - classMember* staticBlock? classMember* + classBodyDeclaration* classInitializer? classBodyDeclaration* '}' ; - classMember: + classBodyDeclaration: annotationUsage? accessModifier? ( constructorDeclaration - | constructorWithOverloadSignatures - | overloadConstructorDeclaration | classFieldDeclaration | classMethodDeclaration - | classMethodWithOverloadSignatures - | overloadMethodDeclaration | classAccessorDeclaration ) ; - staticBlock: 'static' Block; - Declarations can be inherited or immediately declared in a class. Any declaration within a class has a class scope. The class scope is fully defined in :ref:`Scopes`. -Members can be static or non-static as follows: - -- Static members that are not part of class instances, and can be accessed - by using a qualified name notation (see :ref:`Names`) anywhere the class - name is accessible (see :ref:`Accessible`); and -- Non-static, or instance members that belong to any instance of the class. - -Names of all static and non-static entities in a class declaration scope (see -:ref:`Scopes`) must be unique, i.e., fields, methods, and overloads with the -same static or non-static status cannot have the same name. - -The use of annotations is discussed in :ref:`Using Annotations`. +The usage of annotations is discussed in :ref:`Using Annotations`. .. index:: - annotation - static block class body - class - static member - non-static member - static entity - non-static entity declaration member - class instance - access - accessibility - qualified name field method accessor type class - class declaration interface constructor initializer block inheritance - declaration scope - overload + class scope scope | +.. _Class Members: + +Class Members +************* + +.. meta: + frontend_status: Done + Class members are as follows: - Members inherited from their direct superclass (see :ref:`Inheritance`), except class ``Object`` that cannot have a direct superclass. - Members declared in a direct superinterface (see :ref:`Superinterfaces and Subinterfaces`). -- Members declared in the class body (see :ref:`Class Members`). +- Members declared in the class body (see :ref:`Class Body`). Class members declared ``private`` are not accessible (see :ref:`Accessible`) to all subclasses of the current class. @@ -998,24 +747,26 @@ to all subclasses of the current class. .. index:: inheritance class member - class body inherited member direct superclass superinstance subinterface Object direct superinstance + class body private subclass access - accessibility - class Class members declared ``protected`` or ``public`` are inherited by all subclasses of the class and accessible (see :ref:`Accessible`) for all subclasses. -Constructors and static block are not members, and are not inherited. +Class members declared ``internal`` are accessible within the package the +current class resides in. They are inherited by all subclasses of the current +class. + +Constructors and initializer blocks are not members, and are not inherited. Members can be as follows: @@ -1026,16 +777,14 @@ Members can be as follows: public subclass access + internal constructor initializer block inheritance - access - accessibility - static block - Class fields (see :ref:`Field Declarations`), - Methods (see :ref:`Method Declarations`), and -- Accessors (see :ref:`Class Accessor Declarations`). +- Accessors (see :ref:`Accessor Declarations`). A *method* is defined by the following: @@ -1045,18 +794,25 @@ A *method* is defined by the following: method member. #. *Return type*, i.e., the return type of the method member. +Members can be as follows: + +- Static members that are not part of class instances, and can be accessed + by using a qualified name notation (see :ref:`Names`) anywhere the class + name is accessible (see :ref:`Accessible`); and +- Non-static, or instance members that belong to any instance of the class. + +All names in static and, separately, non-static class declaration scopes (see +:ref:`Scopes`) must be unique, i.e., fields and methods cannot have the +same name. + .. index:: class field - field declaration method - method declaration accessor accessor declaration type parameter argument type return type - declaration - method member static member class instance qualified name @@ -1079,7 +835,8 @@ Access modifiers define how a class member or a constructor can be accessed. Accessibility in |LANG| can be of the following kinds: - ``Private``, -- ``Protected``, +- ``Internal``, +- ``Protected``, or - ``Public``. The desired accessibility of class members and constructors can be explicitly @@ -1091,6 +848,7 @@ The syntax of *class members or constructors modifiers* is presented below: accessModifier: 'private' + | 'internal' | 'protected' | 'public' ; @@ -1098,17 +856,12 @@ The syntax of *class members or constructors modifiers* is presented below: If no explicit modifier is provided, then a class member or a constructor is implicitly considered ``public`` by default. - .. index:: access modifier - class member - access member constructor private public - protected - access modifier accessibility | @@ -1120,7 +873,7 @@ Private Access Modifier .. meta: frontend_status: Done - todo: only parsing is implemented, but checking isn't implemented yet, need libarkfile support too + todo: only parsing is implemented, but checking isn't implemented yet, need libpandafile support too The modifier ``private`` indicates that a class member or a constructor is accessible (see :ref:`Accessible`) within its declaring class, i.e., a private @@ -1154,13 +907,31 @@ within the class body of ``C``: | -.. _Protected Access Modifier: +.. _Internal Access Modifier: -Protected Access Modifier -========================= +Internal Access Modifier +======================== .. meta: - frontend_status: Done + frontend_status: Partly + todo: Implement in libpandafile, implement semantic, now it is parsed and ignored - #16088 + +The modifier ``internal`` is discussed in the chapter Experimental Features +(see :ref:`Internal Access Modifier Experimental`). + +.. index:: + access modifier + internal + +| + +.. _Protected Access Modifier: + +Protected Access Modifier +========================= + +.. meta: + frontend_status: Done The modifier ``protected`` indicates that a class member or a constructor is accessible (see :ref:`Accessible`) only within its declaring class and the @@ -1189,19 +960,15 @@ class derived from ``C``: } .. index:: - protected modifier + modifier protected access modifier accessible constructor method protected constructor accessibility - class class body - function increment - class member derived class - declaring class | @@ -1219,11 +986,8 @@ accessed everywhere, provided that the member or the constructor belongs to a type that is also accessible (see :ref:`Accessible`). .. index:: - access modifier - public modifier + modifier public public - class member - constructor type access modifier protected access @@ -1243,14 +1007,13 @@ Field Declarations todo: syntax for definite assignment *Field declarations* represent data members in class instances or static data -members (see :ref:`Static and Instance Fields`). Class instance -*field declarations* are its *own fields* in constrast to the inherited ones. +members (see :ref:`Static Fields`). Syntactically, a field declaration is similar to a variable declaration. .. code-block:: abnf classFieldDeclaration: - fieldModifier* + fieldModifier* identifier ( '?'? ':' type initializer? | '?'? initializer @@ -1262,17 +1025,6 @@ Syntactically, a field declaration is similar to a variable declaration. 'static' | 'readonly' | 'override' ; -.. index:: - field delcaration - data member - class instance - static data member - instance field - own field - inheritance - syntax - variable declaration - A field with an identifier marked with '``?``' is called *optional field* (see :ref:`Optional Fields`). A field with an identifier marked with '``!``' is called @@ -1281,7 +1033,7 @@ A field with an identifier marked with '``!``' is called A :index:`compile-time error` occurs if: -- Some field modifier is used more than once in a field declaration. +- One and the same field modifier is used more than once in a field declaration. - Name of a field declared in the body of a class declaration is also used for a method of this class with the same static or non-static status. @@ -1290,10 +1042,9 @@ A :index:`compile-time error` occurs if: non-static status. .. index:: - field - identifier - optional field - field with late initialization + field declaration + class instance field + class instance variable field modifier field declaration method @@ -1306,8 +1057,7 @@ Any static field can be accessed only with the qualification of a superclass name (see :ref:`Field Access Expression`). A class can inherit more than one field or property with the same name from -its superinterfaces, or from both its superclass (see :ref:`Inheritance`) -and superinterfaces (see :ref:`Interface Inheritance`. However, +its superinterfaces, or from both its superclass and superinterfaces. However, an attempt to refer to such a field or property by its simple name within the class body causes a :index:`compile-time error`. @@ -1318,23 +1068,19 @@ to be inherited only once. .. index:: static field qualified name - qualification access superinterface - superclass field - property - class body field declaration inheritance - property + property declaration | -.. _Static and Instance Fields: +.. _Static Fields: -Static and Instance Fields -========================== +Static Fields +============= .. meta: frontend_status: Done @@ -1376,6 +1122,7 @@ There are two categories of class fields as follows: qualified name notation instance name + instance | @@ -1393,7 +1140,7 @@ and non-static fields can be declared *readonly fields*. .. index:: readonly field - readonly modifier + modifier readonly readonly constant field initialization @@ -1418,10 +1165,6 @@ used as the initial value of the field. .. index:: undefined - initializer - field declaration - undefined - value default value optional field @@ -1434,7 +1177,7 @@ For example, the following two fields are actually defined the same way: f?: string g: string | undefined = undefined } - + | .. _Field Initialization: @@ -1446,17 +1189,14 @@ Field Initialization frontend_status: Done All fields except :ref:`Fields with Late Initialization` are initialized by -using the default value (see :ref:`Default Values for Types`) or a field -initializer (see below). Otherwise, the field can be initialized in one of -the following: +using the default value (see :ref:`Default Values for Types`), or field initializer +(see below) otherwise, the field can be initalized in -- Initializer block of a static field (see :ref:`Static Initialization`), or -- Class constructor of a non-static field (see :ref:`Constructor Declaration`). +- An initializer block of for static field (see :ref:`Static Initialization`), or +- A class constructor of a non-static field (see :ref:`Constructor Declaration`). .. index:: field initialization - initialization - default value evaluation field initializer field access @@ -1471,8 +1211,8 @@ the following: *Field initializer* is an expression that is evaluated at compile time or runtime. The result of successful evaluation is assigned into the field. The semantics of field initializers is therefore similar to that of assignments -(see :ref:`Assignment`). Each initializer expression evaluation and the -subsequent assignment are only performed once. +(see :ref:`Assignment`). The initializer expression evaluation and subseqent +assignment is performed only once. ``Readonly`` fields initialization never uses default values (see :ref:`Default Values for Types`). @@ -1487,17 +1227,19 @@ subsequent assignment are only performed once. field semantics assignment - this keyword - super keyword + keyword this + keyword super method + this + super -The initializer of a non-static field declaration is evaluated at runtime. +In a non-static field declaration, an initializer is evaluated at runtime. The assignment is performed each time an instance of the class is created. -The instance field initializer expression cannot use the following: +The instance field initializer expression cannot do the following: -- ``super`` directly in any form; or -- ``this`` directly in any form. +- Call methods of ``this`` or ``super``; +- Use ``this`` directly (as an argument of function calls or in assignments); If the initializer expression contains one of the above patterns, then a :index:`compile-time error` occurs. @@ -1519,8 +1261,6 @@ class instances as shown in the following examples: call method this super - restriction - class instance .. code-block:: typescript :linenos: @@ -1529,7 +1269,6 @@ class instances as shown in the following examples: a = this // Compile-time error f1 = this.foo() // Compile-time error as 'this' method is invoked - f2 = "a string field" foo (): string { @@ -1540,19 +1279,9 @@ class instances as shown in the following examples: } - class B {} - function foo (f: () => B) { return f() } - class A { - field1 = foo(() => this.field2) // Compile-time error as this is used in the initializer code - field2 = new B - } - - .. index:: compiler field initializer - this method - access non-static field initialization circular dependency @@ -1567,39 +1296,28 @@ Fields with Late Initialization =============================== .. meta: - frontend_status: Done + frontend_status: None *Field with late initialization* must be an *instance field*. If it is defined as ``static``, then a :index:`compile-time error` occurs. -*Field with late initialization* cannot be of a *nullish type* (see -:ref:`Nullish Types`). Otherwise, a :index:`compile-time error` occurs. +A type of a *field with late initialization* can not be *nullish type* +(see :ref:`Nullish Types`), otherwise a :index:`compile-time error` occurs. As all other fields, a *field with late initialization* must be initialized before it is used for the first time. However, this field can be initialized -*later* and not within a class declaration. +*later* and not within a class declaration. Initialization of this field can be performed in a constructor (see :ref:`Constructor Declaration`), although it is not mandatory. -.. index:: - field with late initialization - field initializer - instance field - initialization - nullish type - class declaration - field - constuctor - constructor declaration - -*Field with late initialization* cannot have *field initializers* or be an -*optional field* (see :ref:`Optional Fields`). *Field with late initialization* -must be initialized explicitly, even though its type has a *default value*. +A *field with late initialization* cannot have *field initializers* +and cannot be an *optional field* (see :ref:`Optional Fields`). +It must be initialized explicitly, even though its type has +a *default value*. The fact of initialization of *field with late initialization* is checked when -the field value is read. The check is normally performed at runtime. If the -compiler identifies an error situation, then the error is reported at compile -time: +the field value is read. The check normally is performed at runtime. If the +compiler identifies an error situation, then the error is reported at compile time. .. code-block:: typescript :linenos: @@ -1607,13 +1325,13 @@ time: class C { f!: string } - + let x = new C() x.f = "aa" console.log(x.f) // ok - + let y = new C() - console.log(y.f) // runtime or compile-time error + console.log(y.f) // run-time or compile-time error **Note.** Access to a *field with late initialization* in most cases is less performant then access to other fields. @@ -1621,24 +1339,6 @@ performant then access to other fields. |TS| uses the term *definite assignment assertion* for the notion similar to *late initialization*. However, |LANG| uses stricter rules. -.. index:: - field with late initialization - field initializer - optional field - initialization - default value - check - runtime - field value - compiler - error - access - field - assignment - definite assignment assertion - notion - late initialization - | .. _Override Fields: @@ -1649,182 +1349,62 @@ Overriding Fields .. meta: frontend_status: None -When extending a class or implementing interfaces, a field declared in a -superclass or a superinterface can be overridden by a field with the same name, -and the same ``static`` or non-``static`` modifier status. +While extending a class or implementing interfaces, a field declared in a +superclass or a superinterface can be overridden by field with the same name, +the same type and the same ``static`` or non ``static`` modifier status. Using the keyword ``override`` is not required. The new declaration acts as -redeclaration. - -A :index:`compile-time error` occurs if: - -- Field marked with the modifier ``override`` does not override a field from - a superclass. -- Field declaration contains the modifier ``static`` along with the modifier - ``override``. -- Types of the overriding field and of the overridden field are different. - -.. index:: - overriding field - class - interface - field - declaration - superclass - superinterface - overriding - static modifier - non-static modifier - override keyword - modifier - type - -.. code-block:: typescript - :linenos: - - class C { - field: number = 1 - } - class D extends C { - field: string = "aa" // compile-time error: type is not the same - override no_field = 1224 // compile-time error: no overridden field in the base class - static override field: string = "aa" // compile-time error: static cannot override - } - -Initializers of overridden fields are preserved for execution, and the -initialization is normally performed in the context of *superclass* constructors. +redeclaration. The type of the overriding field is to be the same as the type of +the overridden field. Otherwise, a :index:`compile-time error` occurs. Initializers of +overridden fields are preserved for execution, initialization is performed in context of +*super* class constructors as normal. A :index:`compile-time error` occurs if a field +is not declared as ``readonly`` in a superclass but an overriding field is marked as ``readonly``. .. code-block:: typescript :linenos: - class C { - field: number = this.init() - private init() { - console.log ("Field initialization in C") + class Base1 { + field: number = this.init_in_base_1() + private init_in_base_1() { + console.log ("Base1 field initialization") return 123 } } - class D extends C { - override field: number = 123 // field can be explicitly marked as overridden + interface Base2 { + field: number + } + + class Base3 extends Base1 { + override field: number = 123 // Explicitly mark the field as overridden } + console.log (Base1.field, Base3.field) - class Derived extends D { - field = this.init_in_derived() + class Derived extends Base3 implements Base2 { + field = this.init_in_derived() // overriding 'field' and providing new initial value private init_in_derived() { - console.log ("Field initialization in Derived") + console.log ("Derived field initialization") return 42 } } new Derived() /* Output: - Field initialization in C - Field initialization in Derived + Base1 field initialization + Derived field initialization */ + .. index:: overriding field overriding overridden field - base class - static override field initialization - initializer instance field - context - superclass constructor superclass superinterface interface - field initialization implementation - overriding - field - -A :index:`compile-time error` occurs if a field is not declared as ``readonly`` -in a superclass, while an overriding field is marked as ``readonly``: - -.. code-block:: typescript - :linenos: - - class C { - field = 1 - } - class D extends C { - readonly field = 2 // compile-time error, wrong overriding - } - -A :index:`compile-time error` occurs if a field overrides getter or setter -in a superclass: - -.. code-block:: typescript - :linenos: - - class C { - get num(): number { return 42 } - set num(x: number) {} - } - class D extends C { - num: number = 2 // compile-time error, wrong overriding - } - -.. index:: + keyword override + readonly field - readonly field - declaration - superclass - overriding field - override - -The same :index:`compile-time error` occurs in more complex case, where a field -simultaneously overrides a field from a superclass and implements a property -from a superinterface: - -.. code-block:: typescript - :linenos: - - class C { - num: number = 1 - } - interface I { - num: number - } - class D extends C implements I { - num: number = 2 // compile-time error, conflict in overriding - } - - -The overriding conflict occurs as ``num`` in ``D``, and must be both: - -- Field to override a field inherited from the superclass ``C``; and -- Two accessors (see :ref:`Class Accessor Declarations`) to implement a - property from the superinterface 'I' - (see :ref:`Implementing Required Interface Properties`). - -Overriding a field by an accessor also causes a :index:`compile-time error` -as follows: - -.. code-block:: typescript - :linenos: - - class C { - num: number = 1 - } - class D extends C { - get num(): number { return 42 } // compile-time error, wrong overriding - set num(x: number) {} // compile-time error, wrong overriding - } - -.. index:: - field - override - overriding field - superclass - implementation - superinterface - inheritance - accessor - inherited field - accessor declaration - class accessor | @@ -1855,63 +1435,29 @@ The syntax of *class method declarations* is presented below: | 'async' ; -.. index:: - method declaration - method - executable code - call - syntax - class method - class method declaration - -The identifier in a *class method declaration* defines the method name that can -be used to refer to a method (see :ref:`Method Call Expression`). - -Methods with the ``final`` modifier is an experimental feature discussed in -detail in :ref:`Final Methods`. +The identifier of ``classMethodDeclaration`` is the method name that can be +used to refer to a method (see :ref:`Method Call Expression`). A :index:`compile-time error` occurs if: -- Method modifier appears more than once in a method declaration; -- Body of a class declaration declares a method but the name of that +- The method modifier appears more than once in a method declaration. +- The body of a class declaration declares a method but the name of that method is already used for a field in the same declaration. - -A non-static method declared in a class can do the following: - -- Implement a method inherited from a superinterface or superinterfaces - (see :ref:`Implementing Interface Methods`); -- Override a method inherited from a superclass (see :ref:`Overriding in Classes`); -- Act as method declaration of a new method. - - -A static method declared in a class can do the following: - -- Shadow a static method inherited from a superclass (see :ref:`Static Methods`); -- Act as method declaration of a new static method. - +- The body of a class declaration declares two same-name methods with + overload-equivalent signatures (see :ref:`Overload-Equivalent Signatures`) + as members of that body of a class declaration. .. index:: method declaration - class method declaration - method name - method - declaration executable code - overriding - inheritance - superclass - class - static method - shadow overloading signature identifier method call method call expression - expression method modifier - final modifier method declaration class declaration + overload-equivalent signature class declaration body | @@ -1937,46 +1483,20 @@ Static methods are always called without reference to a particular object. As a result, a :index:`compile-time error` occurs if the keywords ``this`` or ``super`` are used inside a static method. -Static methods can be inherited from a superclass or shadowed by name -regardless of the their signature: - -.. code-block:: typescript - :linenos: - - class Base { - static foo() { console.log ("static foo() from Base") } - static bar() { console.log ("static foo() from Base") } - } - - class Derived extends Base { - static foo(p: string) { console.log ("static foo() from Derived") } - } - - Base.foo() // Output: static foo() from Base - Base.bar() // Output: static foo() from Base - Derived.bar() // Output: static foo() from Base, bar() is inherited - Derived.foo("a string") // Output: static foo() from Derived, foo() is shadowed - Derived.foo() // compile-time error as foo() in Derived has shadowed Base.foo() - - .. index:: static method - method - method declaration - modifier - declaration class - abstract modifier - final modifier - override modifier - static modifier - static method - this keyword - super keyword - header - body - inheritance - shadowing + modifier + modifier abstract + abstract + modifier final + final + modifier override + override + modifier static + static + keyword this + keyword super | @@ -1999,12 +1519,8 @@ of the method body. static method instance method non-static method - declaration - this keyword - object + keyword this method body - execution - instance | @@ -2024,19 +1540,6 @@ Non-abstract methods can be referred to as *concrete methods*. A :index:`compile-time error` occurs if: -.. index:: - abstract method - method declaration - declaration - abstract modifier - non-abstract method - concrete method - method - member - signature - implementation - abstract - - An abstract method is declared private. - The method declaration contains another modifier (``static``, ``final``, ``native``, or ``async``) along with the modifier ``abstract``. @@ -2046,44 +1549,43 @@ A :index:`compile-time error` occurs if: provide implementation for *m*. An abstract method declaration provided by an abstract subclass can override -another abstract method. An abstract method can also override non-abstract -methods inherited from base classes or base interfaces as follows: - -.. code-block:: typescript - :linenos: - - class C { - foo() {} - } - interface I { - foo() {} // default implementation - } - abstract class X extends C implements I { - abstract foo(): void /* Here abstract foo() overrides both foo() - coming from class C and interface I */ - } - +another abstract method. A :index:`compile-time error` occurs if an abstract +method overrides a non-abstract instance method. .. index:: - method declaration + abstract method declaration abstract method - private modifier - static modifier - final modifier - native modifier - async modifier - declaration - abstract class - non-abstract subclass - implementation non-abstract instance method non-abstract method method signature - abstract method + abstract + modifier abstract + modifier static + static + modifier final + final + modifier native + native + modifier async + async + private + abstract class overriding - abstract modifier - inheritance - interface + +| + +.. _Final Methods: + +Final Methods +============= + +.. meta: + frontend_status: Done + +Final methods are discussed in :ref:`Final Methods Experimental`. + +.. index:: + final method | @@ -2112,43 +1614,47 @@ Overriding Methods The ``override`` modifier indicates that an instance method in a superclass is overridden by the corresponding instance method from a subclass (see -:ref:`Overriding`). +:ref:`Overloading and Overriding`). The usage of the modifier ``override`` is optional but strongly recommended as it makes the overriding explicit. A :index:`compile-time error` occurs if: -- Method marked with the modifier ``override`` overrides no method +- A method marked with the modifier ``override`` does not override a method from a superclass. -- Method declaration contains modifier ``static`` along with the modifier +- A method declaration contains modifier ``static`` along with the modifier ``override``. If the signature of an overridden method contains parameters with default -values (see :ref:`Optional Parameters`), then the overriding method must -always use the same default parameter values for the overridden method. -Otherwise, a :index:`compile-time error` occurs. +values (see :ref:`Optional Parameters`), then the overriding method always +uses the default parameter values of the overridden method. -More details on overriding are provided in :ref:`Overriding in Classes` and -:ref:`Overriding and Overload Signatures in Interfaces`. +A :index:`compile-time error` occurs if a parameter in the overriding method +has a default value. + +More details on overriding are provided +in :ref:`Overloading and Overriding in Classes` and +:ref:`Overloading and Overriding in Interfaces`. .. index:: - override modifier - abstract modifier - static modifier + modifier override + modifier abstract + modifier static + override + abstract + static final method - modifier signature overriding method superclass - class - overload signature instance interface subclass default value + overridden method overriding method | @@ -2202,8 +1708,6 @@ type, but its body can complete normally (see :ref:`Normal and Abrupt Statement implementation method abstract method native method - empty body - method body method declaration return statement return type @@ -2225,7 +1729,7 @@ It is the only place where the keyword ``this`` can be used as type annotation (see :ref:`Signatures` and :ref:`Return Type`). The only result that is allowed to be returned from an instance method is -``this``. There are two options to have ``this`` returned: +``this``. There are two variants how ``this`` can be returned: - Literally ``return this``; or - Return the result of any method that returns ``this``. @@ -2248,27 +1752,18 @@ A call to another method can return ``this`` or ``this`` statement: .. index:: return type instance method - type class - method method signature signature - this keyword + this this statement subclass - annotation The return type of an overridden method in a subclass must also be ``this``: .. code-block:: typescript :linenos: - class C { - foo(): this { - return this - } - } - class D extends C { foo(): this { return this @@ -2280,38 +1775,32 @@ The return type of an overridden method in a subclass must also be ``this``: Otherwise, a :index:`compile-time error` occurs. -.. index:: - return type - overriding - overridden method - subclass - | -.. _Class Accessor Declarations: +.. _Accessor Declarations: -Class Accessor Declarations -*************************** +Accessor Declarations +********************* .. meta: frontend_status: Done -Class accessors are often used instead of fields to add additional control for +Accessors are often used instead of fields to add additional control for operations of getting or setting a field value. An accessor can be either a getter or a setter. -The syntax of *class accessor declarations* is presented below: +The syntax of *accessor declarations* is presented below: .. code-block:: abnf classAccessorDeclaration: - classAccessorModifier* - ( 'get' identifier '(' ')' returnType? block? + accessorModifier* + ( 'get' identifier '(' ')' returnType block? | 'set' identifier '(' parameter ')' block? ) ; - classAccessorModifier: + accessorModifier: 'abstract' | 'static' | 'final' @@ -2319,20 +1808,6 @@ The syntax of *class accessor declarations* is presented below: | 'native' ; -.. index:: - class accessor declaration - class accessor - declaration - identifier - block - parameter - field - control - field value - value - getter - setter - Accessor modifiers are a subset of method modifiers. The allowed accessor modifiers have exactly the same meaning as the corresponding method modifiers (see :ref:`Abstract Methods` for the modifier ``abstract``, @@ -2341,13 +1816,25 @@ modifier ``final``, :ref:`Overriding Methods` for the modifier ``override``, and :ref:`Native Methods` for the modifier ``native``). .. index:: + access declaration + field + field value + accessor + control + getting + setting + getter + setter + expression accessor modifier access modifier method modifier - subset - abstract modifier - native modifier - abstract modifier + modifier abstract + abstract + modifier native + native + modifier abstract + abstract static method final method overriding method @@ -2364,14 +1851,12 @@ modifier ``final``, :ref:`Overriding Methods` for the modifier ``override``, and } } -A *get-accessor* (*getter*) must have an explicit return type and no parameters, -or no return type at all on condition it can be inferred from the getter body. +A *get-accessor* (*getter*) must have an explicit return type but no parameters. A *set-accessor* (*setter*) must have a single parameter and no return type. The use of getters and setters looks the same as the use of fields. A :index:`compile-time error` occurs if: - Getters or setters are used as methods; -- Getter return type cannot be inferred from the getter body; - *Set-accessor* (*setter*) has a single parameter that is optional (see :ref:`Optional Parameters`): @@ -2402,28 +1887,11 @@ A :index:`compile-time error` occurs if: .. index:: get-accessor getter - getter body - inferred type - type inference - return type parameter + return type set-accessor setter field - method - optional parameter - -If a getter has no return type specified, then the type is inferred as in -:ref:`Return Type Inference`. - -.. code-block:: typescript - :linenos: - - class Person { - private _age: number = 0 - get age() { return this._age } // retuirn type is inferred as number - } - A class can define a getter, a setter, or both with the same name. If both a getter and a setter with a particular name are defined, @@ -2431,7 +1899,15 @@ then both must have the same accessor modifiers. Otherwise, a :index:`compile-time error` occurs. Accessors can be implemented by using a private field or fields to store the -data as in the example above. +data (as in the example above). + +.. index:: + accessor + getter + setter + accessor + private field + accessor modifier .. code-block:: typescript :linenos: @@ -2447,28 +1923,23 @@ data as in the example above. A name of an accessor cannot be the same as that of a non-static field, or of a method of class or interface. Otherwise, a :index:`compile-time error` -occurs: +occurs. Moreover, a name of an accessor cannot be the same as that of another +accessor for overloading is not allowed: .. index:: - getter - return type - inferred type - type inference - setter accessor - private field - accessor modifier - implementation non-static field class + method interface class method interface method + overloading .. code-block:: typescript :linenos: - class Person { + class Person1 { name: string = "" get name(): string { // Compile-time error: getter name clashes with the field name return this.name @@ -2478,7 +1949,14 @@ occurs: } } -In the process of inheriting and overriding (see :ref:`Overriding`), + class Person2 { + set name(name: string) {} + set name(name: number) {} // Compile-time error: setters overloading is not permitted + get name(): string { return "A name" } + get name(): number { return 100 } // Compile-time error: getters overloading is not permitted + } + +In the process of inheriting and overriding (see :ref:`Overloading and Overriding`), accessors behave as methods. The getter parameter type follows the covariance pattern, and the setter parameter type follows the contravariance pattern (see :ref:`Override-Compatible Signatures`): @@ -2505,12 +1983,8 @@ pattern, and the setter parameter type follows the contravariance pattern (see inheritance accessor method - getter parameter - setter parameter - parameter type covariance pattern contravariance pattern - override-compatible signature | @@ -2522,40 +1996,32 @@ Constructor Declaration .. meta: frontend_status: Partly todo: native constructors - todo: optional constructor names todo: Explicit Constructor Call - "Qualified superclass constructor calls" - not implemented, need more investigation (inner class) -*Constructors* are used to initialize objects that are instances of a class. A -*constructor declaration* starts with the keyword ``constructor``, and has optional +*Constructors* are used to initialize objects that are instances of class. A +*constructor declaration* starts with the keyword ``constructor``, and has no name. In any other syntactical aspect, a constructor declaration is similar to a method declaration with no return type: .. code-block:: abnf constructorDeclaration: - 'native'? 'constructor' identifier? parameters constructorBody? + 'native'? 'constructor' parameters constructorBody? ; -An optional identifier in *constructor declaration* is an experimental feature -discussed in :ref:`Constructor Names`. Constructors are called by the following: .. index:: constructor initialization - object - class instance instance constructor declaration - constructor keyword - optional name - syntax - method declaration + keyword constructor return type - optional identifier - identifier -- Class instance creation expressions (see :ref:`New Expressions`); and +- Class instance creation expressions (see :ref:`New Expressions`); +- Conversions and concatenations caused by the string concatenation operator + '``+``' (see :ref:`String Concatenation`); and - Explicit constructor calls from other constructors (see :ref:`Constructor Body`). Access to constructors is governed by access modifiers (see @@ -2564,6 +2030,10 @@ inaccessible prevents class instantiation from using this constructor. If the only constructor is declared inaccessible, then no class instance can be created. +A :index:`compile-time error` occurs if two constructors in a class are +declared, and have identical signatures (see +:ref:`Distinguishable Declarations`). + A ``native`` constructor (an experimental feature described in :ref:`Native Constructors`) must have no *constructorBody*. Otherwise, a :index:`compile-time error` occurs. @@ -2571,33 +2041,21 @@ A ``native`` constructor (an experimental feature described in A non-``native`` constructor must have *constructorBody*. Otherwise, a :index:`compile-time error` occurs. + .. index:: class instance class instantiation - expression - constructor instance creation expression - constructor keyword + keyword constructor constructor declaration constructor call access modifier - accessibility - native constructor + concatenation + conversion access native constructor non-native constructor -A :index:`compile-time error` occurs if more then one non-``native`` anonymous -constructors are defined in a class: - -.. code-block:: typescript - :linenos: - - class C { - constructor (s: string) {} - constructor () {} // compile-time error: multiple anonymous constructors - } - | .. _Formal Parameters: @@ -2613,11 +2071,6 @@ to those of a method. .. index:: constructor parameter - syntax - semantics - method - -| .. _Constructor Body: @@ -2642,12 +2095,11 @@ The syntax of *constructor body* is presented below: block of code constructor implementation - syntax The constructor body must provide correct initialization of new class instances. Constructors have two variations: -- *Primary constructor* that initializes instance own fields directly; +- *Primary constructor* that initializes its instance own fields [1]_ directly; - *Secondary constructor* that uses another same-class constructor to initialize its instance fields. @@ -2659,57 +2111,39 @@ Constructors have two variations: primary constructor instance own field secondary constructor - constructor - instance field The high-level sequence of a *primary constructor* body includes the following: 1. Optional arbitrary code that does not use ``this`` or ``super``. -2. Mandatory call to a superconstructor (see :ref:`Explicit Constructor Call`) +2. Mandatory call to ``super(`` *arguments* ``)`` (see :ref:`Explicit Constructor Call`) if a class has an extension clause (see :ref:`Class Extension Clause`) on all execution paths of the constructor body. -3. Mandatory execution of field initializers (if any) in the order they appear - in a class body implicitly added by the compiler. - -4. Optional arbitrary code that uses neither of the following: - - - Value of an instance field before its initialization; - - Keyword ``this`` to denote a newly created instance before the - initialization of all instance fields except - :ref:`Fields with Late Initialization`. - -5. All object fields are initialized. +3. Implicitly executed field initializers in the order they appear in class body +4. Optional arbitrary code. .. index:: primary constructor - constructor body - high-level sequence - optional arbitrary code this super mandatory call - field initializer - class body - compiler constructor call - superconstructor - value - instance field - initialization execution path constructor body + compiler-generated code + instance own field + circular reference extension clause - execution - this keyword compiler + default value + arbitrary code instance instance field initialization - field with late initialization - object field + instance method + field The example below represents *primary constructors*: @@ -2735,23 +2169,29 @@ The example below represents *primary constructors*: } } - class BWPoint extends ColoredPoint { - constructor(x: number, y: number, black: boolean) { - console.log ("Code which does not use 'this'") + class Base { + field: string + constructor(field: string) { + this.field = field + } + } + class Derived extends Base { + constructor(condition: boolean) { + console.log ("Code which does not use this") // zone where super() is called - if (black) { super (x, y, ColoredPoint.BLACK) } - else { super (x, y, ColoredPoint.WHITE) } + if (condition) { super ("abc") } + else { super ("cba") } console.log ("Any code as this was initialized") } } + The high-level sequence of a *secondary constructor* body includes the following: 1. Optional arbitrary code that does not use ``this`` or ``super``. -2. Call to another same-class constructor that uses the keyword ``this`` (see - :ref:`Explicit Constructor Call`) on all execution paths of the constructor - body. +2. Call to another same-class constructor ``this(`` *arguments_if_any* ``)`` on all + execution paths of the constructor body. 3. Optional arbitrary code. @@ -2762,15 +2202,6 @@ The example below represents *primary* and *secondary* constructors: .. code-block:: typescript :linenos: - class Point { - x: number - y: number - constructor(x: number, y: number) { - this.x = x - this.y = y - } - } - class ColoredPoint extends Point { static readonly WHITE = 0 static readonly BLACK = 1 @@ -2782,17 +2213,35 @@ The example below represents *primary* and *secondary* constructors: this.color = color } // secondary constructor: - constructor zero(color: number) { + constructor(color: number) { this(0, 0, color) } } + class ClasWithTwoConstructors { + field: string + constructor(field: string) { + this.field = field + } + constructor(condition: boolean) { + console.log ("Code which does not use this or super") + // zone where this() is called + if (condition) { this ("abc") } + else { this ("cba") } + console.log ("Any code as this was initialized") + } + } + .. index:: - primary constructor - secondary constructor - readonly + constructor body constructor - class + secondary constructor + arbitrary code + this + super + execution path + primary constructor + constructor call A :index:`compile-time error` occurs if a constructor calls itself, directly or indirectly through a series of one or more explicit constructor calls @@ -2811,12 +2260,15 @@ direct superclass constructor. Otherwise, a :index:`compile-time error` occurs. constructor call constructor body method body - semantics - value + this + object field return statement - expression - class superclass + method body + semantics + compiler + expression + superclass constructor | @@ -2828,62 +2280,108 @@ Explicit Constructor Call .. meta: frontend_status: Done -There are two kinds of *explicit constructor calls*: +There are two kinds of *explicit constructor call* statements: +- *Alternate constructor calls* that begin with the keyword ``this``, and + can be prefixed with explicit type arguments (see :ref:`Type Arguments`) + (used to call an alternate same-class constructor). - *Superclass constructor calls* (used to call a constructor from - the direct superclass) that begin with the keyword ``super``. -- *Other constructor calls* that begin with the keyword ``this`` - (used to call another same-class constructor). - -To call a named constructor (:ref:`Constructor Names`), the name of the -constructor must be provided while calling a superclass or another same-class -constructor. - -A :index:`compile-time error` occurs if arguments of an explicit constructor -call refer to one of the following: + the direct superclass) called *unqualified superclass constructor calls* + that begin with the keyword ``super``, and can be prefixed with explicit + type arguments. -- Any non-static field or instance method; or -- ``this`` or ``super``. +A :index:`compile-time error` occurs if the constructor body of an explicit +constructor call statement: -.. code-block:: typescript - :linenos: - - // Class declarations without constructors - class Base { - constructor () {} - constructor base() {} - } - class Derived1 extends Base { - constructor () { - super() // Call Base class constructor - } - } - class Derived2 extends Base { - constructor () { - super.base() // Call Base class named constructor - } - } - class Derived3 extends Base { - constructor () { - this.derived() // Call same class named constructor - } - constructor derived() {} - } +- Refers to any non-static field or instance method; or +- Uses the keywords ``this`` or ``super`` in any expression. .. index:: - explicit constructor call + explicit constructor call statement + alternate constructor call constructor call - superclass constructor call - this keyword - super keyword - constructor + keyword this superclass - call superclass constructor call + direct superclass + unqualified superclass constructor call + keyword super + prefix + type argument + constructor body constructor call non-static field instance method - base class + expression + +An ordinary method call evaluates an alternate constructor call statement +left-to-right. The evaluation starts from arguments, proceeds to constructor, +and then the constructor is called. + +The process of evaluation of a superclass constructor call statement is +performed as follows: + +.. index:: + expression + method call + alternate constructor call + alternate constructor call statement + constructor + superclass + superclass constructor call + superclass constructor call statement + +1. If instance *i* is created, then the following procedure is used to + determine *i*'s immediately enclosing instance with respect to ``S`` + (if available): + + - If the declaration of ``S`` occurs in a static context, then *i* has no + immediately enclosing instance with respect to ``S``. + + If *n* is an integer (:math:`n\geq{}1`), and *O* is the *n*’th + lexically enclosing type declaration of ``C``, then *i*'s immediately + enclosing instance with respect to ``S`` is the *n*’th lexically + enclosing instance of ``this``. + +.. index:: + instance + creation + declaration + instance + static context + lexically enclosing type declaration + immediately enclosing instance + lexically enclosing instance + superclass constructor call + superclass constructor call statement + lexically enclosing type declaration + this + +2. After *i*'s immediately enclosing instance with respect to ``S`` (if + available) is determined, the evaluation of the superclass constructor call + statement continues left-to-right. The arguments to the constructor are + evaluated, and then the constructor is called. + +3. If the superclass constructor call statement completes normally after all, + then all non-static field initializers of ``C`` are executed. ``I`` is + executed before ``J`` if a non-static field initializer *I* textually + precedes another non-static field initializer *J*. + + An alternate constructor call does not perform the implicit execution. + +.. index:: + immediately enclosing instance + instance + evaluation + superclass constructor call + superclass constructor call statement + constructor + non-static field initializer + normal completion + execution + alternate constructor call + alternate constructor call statement + constructor call statement | @@ -2901,13 +2399,9 @@ least one constructor. The form of a default constructor is as follows: - Default constructor has modifier ``public`` (see :ref:`Access Modifiers`). -- The default constructor body contains: - - - Call to a superclass constructor with no arguments except the primordial - class ``Object``. The default constructor body for the primordial class - ``Object`` is empty. - - Mandatory execution of field initializers (if any) in the order they appear - in a class body. +- The default constructor body contains a call to a superclass constructor + with no arguments except the primordial class ``Object``. The default + constructor body for the primordial class ``Object`` is empty. A :index:`compile-time error` occurs if a default constructor is implicit, but the superclass has no accessible constructor without parameters @@ -2917,37 +2411,27 @@ the superclass has no accessible constructor without parameters class constructor declaration constructor - public modifier + modifier public + public access modifier - call constructor body superclass constructor - argument primordial class Object accessible constructor accessibility parameter - execution - field initializer - class body - default constructor - superclass - accessible constructor - parameter - access - accessibility .. code-block:: typescript :linenos: // Class declarations without constructors - class Obj_no_ctor {} - class Base_no_ctor {} - class Derived_no_ctor extends Base_no_ctor {} + class Object {} + class Base {} + class Derived extends Base {} // Class declarations with default constructors declared implicitly - class Obj { + class Object { constructor () {} // Empty body - as there is no superclass } // Default constructors added @@ -2958,28 +2442,11 @@ the superclass has no accessible constructor without parameters class A { private constructor () {} } - class B0 extends A {} // OK. No constructor in B - // During compilation of B - class B1 extends A { - constructor () { // Default constructor added - // that leads to compile-time error - // as default constructor calls super() - // which is private and inaccessible - super () - } - } - -.. index:: - class declaration - constructor - default constructor - superclass - error - constructor call - compilation - super - private - access + class B extends A {} // No constructor in B + // During compilation of B + class B extends A { constructor () { super () } } // Default constructor added + // that leads to compile-time error as default constructor calls super() + // which is private and inaccessible | @@ -2993,41 +2460,90 @@ Inheritance Class ``C`` inherits all accessible members from its direct superclass and direct superinterfaces (see :ref:`Accessible`), and optionally overrides or -shadows some of the inherited members. +hides some of the inherited members. + +An accessible member is a public, protected, or internal member in the +same package as ``C``. If ``C`` is not abstract, then it must implement all inherited abstract methods. The method of each inherited abstract method must be defined with *override-compatible* signatures (see :ref:`Override-Compatible Signatures`). Semantic checks for inherited method and accessors are described in -:ref:`Overriding in Classes`. +:ref:`Overloading and Overriding in Classes`. -Constructors from the direct superclass of ``C`` are not subject of -overriding because such constructors are not accessible (see +Constructors from the direct superclass of ``C`` are not subject of overloading +and overriding because such constructors are not accessible (see :ref:`Accessible`) in ``C`` directly, and can only be called from a constructor of ``C`` (see :ref:`Constructor Body`). +If ``C`` defines a static or instance field ``F`` with the same name as that of +a field accessible from its direct superclass (see :ref:`Accessible`), then ``F`` +hides the inherited field: + .. index:: class inheritance inherited member accessibility accessible member - superclass - superinterface direct superclass direct superinterface overriding - shadowing + overloading semantic check + public member + protected member + internal member abstract method override-compatible signature constructor constructor body - accessor + inherited field + static field + instance field + +.. code-block:: typescript + :linenos: + + interface Interface { + foo() + } + class Base { + foo() { /* Base class method body */ } + // foo() is declared in class Base + + static foo () { /* Base class static method body */ } + } + class Derived extends Base implements Interface { + override foo() { /* Derived class method body */ } + // foo() is both + // - overridden in class Derived, and + // - implements foo() from the Interface + static foo () { /* Derived class static method body */ } + } + + let target: Interface = new Derived + target.foo() // this is a call to an instance method foo() overridden in class Derived + + Base.foo() // this is a call to a static method foo() declared in Base + Derived.foo() // this is a call to a static method foo() declared in Derived + +.. index:: + inheritance + direct superclass + static method + instance method + method body + interface overriding + call + static method -| +------------- + +.. [1] + Instance own fields here means fields declared within an instance. .. raw:: pdf diff --git a/static_core/plugins/ets/doc/stdlib/packages/escompat.rst b/static_core/plugins/ets/doc/stdlib/packages/escompat.rst index 14ab425ad4..8c3e8ef9d5 100644 --- a/static_core/plugins/ets/doc/stdlib/packages/escompat.rst +++ b/static_core/plugins/ets/doc/stdlib/packages/escompat.rst @@ -4592,7 +4592,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -6244,7 +6244,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -9899,7 +9899,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -11147,7 +11147,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -12423,7 +12423,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -13699,7 +13699,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -14975,7 +14975,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -15991,7 +15991,7 @@ Methods - d\: :kw:`number` --- fixed size (integer part); must be in \[0, 100\] -| **Note\:** If d = new number(0.1); d.toFixed(0) -\> \"0\" If d = new number(0.7); d.toFixed(0) -\> \"1\" If d = new number(0.12345); d.toFixed(1) -\> \"0.1\" If d = new number(0.12345); d.toFixed(3) -\> \"0.123\" If d = new number(number.POSITIVE_INFINITY); d.toFixed(3) -\> \"Infinity\" If d = new number(number.NaN); d.toFixed(3) -\> \"NaN\" If d = new number(0.25); d.toFixed(200) -\> thrown ArgumentOutOfRangeError +| **Note\:** If d = new number(0.1); d.toFixed(0) -\> \"0\" If d = new number(0.7); d.toFixed(0) -\> \"1\" If d = new number(0.12345); d.toFixed(1) -\> \"0.1\" If d = new number(0.12345); d.toFixed(3) -\> \"0.123\" If d = new number(number.POSITIVE_INFINITY); d.toFixed(3) -\> \"Infinity\" If d = new number(number.NaN); d.toFixed(3) -\> \"NaN\" If d = new number(0.25); d.toFixed(200) -\> thrown ArgumentOutOfRangeException | | **Remark\:** Implemented as native function, | @@ -16075,7 +16075,7 @@ Methods - d\: :kw:`number` --- precision (rounded to nearest integer); must be in \[1, 100\] -| **Note\:** If d = new number(0.25); d.toPrecision(4) -\> \"0.2500\" If d = new number(1.01); d.toPrecision(4.7) -\> \"1.010\" If d = new number(0.25); d.toPrecision(0) -\> thrown ArgumentOutOfRangeError If d = new number(12345.123455); d.toPrecision(10) -\> \"12345.12346\" +| **Note\:** If d = new number(0.25); d.toPrecision(4) -\> \"0.2500\" If d = new number(1.01); d.toPrecision(4.7) -\> \"1.010\" If d = new number(0.25); d.toPrecision(0) -\> thrown ArgumentOutOfRangeException If d = new number(12345.123455); d.toPrecision(10) -\> \"12345.12346\" | | **Remark\:** Implemented as native function, | @@ -16227,7 +16227,7 @@ Methods - s\: :ref:`string` --- the string to convert - r\: :kw:`number` --- the radix of conversion; should be \[2, 36\]; 0 assumed to be 10 -| **Note\:** If args (\"10\", 1) -\> thrown ArgumentOutOfRangeError, (\"10\", 37) -\> thrown ArgumentOutOfRangeError If args (\"10\", 2) -\> 2 If args (\"10\", 10) -\> 10, (\"10\", 0) -\> 10 If args (\"ff\", 16) -\> 255 etc. +| **Note\:** If args (\"10\", 1) -\> thrown ArgumentOutOfRangeException, (\"10\", 37) -\> thrown ArgumentOutOfRangeException If args (\"10\", 2) -\> 2 If args (\"10\", 10) -\> 10, (\"10\", 0) -\> 10 If args (\"ff\", 16) -\> 255 etc. | | **Remark\:** Implemented as native function, | @@ -19132,7 +19132,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -20784,7 +20784,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -22436,7 +22436,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` @@ -24088,7 +24088,7 @@ Properties .. rst-class:: doc-code-block - - static BYTES_PER_ELEMENT\: :kw:`int` + - static BYTES_PER_ELEMENT\: :kw:`number` - buffer\: :ref:`ArrayBuffer` - byteLength\: :kw:`number` - byteOffset\: :kw:`number` diff --git a/static_core/plugins/ets/ets_plugin_options.yaml b/static_core/plugins/ets/ets_plugin_options.yaml index 349b651271..4f68894bd0 100644 --- a/static_core/plugins/ets/ets_plugin_options.yaml +++ b/static_core/plugins/ets/ets_plugin_options.yaml @@ -20,19 +20,15 @@ lang_context_class: ark::ets::EtsLanguageContext lang_context_header_path: plugins/ets/runtime/ets_language_context.h additional_interpter_inl: plugins/ets/runtime/interpreter/interpreter-inl.h - entrypoints_header_path: plugins/ets/runtime/ets_entrypoints.h language_config: lang_type: static mt_mode: task has_value_object_types: false - has_any_insturction_handlers: true ctor_name: cctor_name: directive_name: eTS string_class_descriptor: Lstd/core/String; - any: - handlers_path: plugins/ets/runtime/interpreter/any_opcodes.inc Intrinsics: header: plugins/ets/runtime/intrinsics_declaration.h @@ -70,9 +66,6 @@ - plugins_string: plugins/ets/irtoc_scripts/string.irt - plugins_to_string_cache: plugins/ets/irtoc_scripts/to_string_cache.irt - plugins_typed_arrays: plugins/ets/irtoc_scripts/typed_arrays.irt - - plugins_escompat_array: plugins/ets/irtoc_scripts/escompat_array.irt - - plugins_map: plugins/ets/irtoc_scripts/map.irt - - plugins_set: plugins/ets/irtoc_scripts/set.irt Metadatas: - RecordMetadata: diff --git a/static_core/plugins/ets/irtoc_scripts/CMakeLists.txt b/static_core/plugins/ets/irtoc_scripts/CMakeLists.txt index 6340afc23e..bf4a88bbb7 100644 --- a/static_core/plugins/ets/irtoc_scripts/CMakeLists.txt +++ b/static_core/plugins/ets/irtoc_scripts/CMakeLists.txt @@ -18,7 +18,3 @@ add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/string_builder.irt) add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/string.irt) add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/to_string_cache.irt) add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/typed_arrays.irt) -add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/escompat_array.irt) -add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/map.irt) -add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/set.irt) -add_irtoc_plugin(${PANDA_ETS_PLUGIN_SOURCE}/irtoc_scripts/map_set_common.irt) diff --git a/static_core/plugins/ets/irtoc_scripts/common.irt b/static_core/plugins/ets/irtoc_scripts/common.irt index 64f85d4a16..d6f019e668 100644 --- a/static_core/plugins/ets/irtoc_scripts/common.irt +++ b/static_core/plugins/ets/irtoc_scripts/common.irt @@ -14,40 +14,7 @@ module EtsConstants CORO_NULL_VALUE_OFFSET = "cross_values::GetEtsCoroutineNullValueOffset(graph->GetArch())" ESCOMPAT_ARRAY_DATA_OFFSET = "cross_values::GetEscompatArrayBufferOffset(graph->GetArch())" - ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET = "cross_values::GetEscompatArrayActualLengthOffset(graph->GetArch())" BOX_PRIMITIVE_VALUE_OFFSET = "cross_values::GetEtsBoxPrimitiveValueOffset(graph->GetArch())" - TYPED_ARRAY_BUFFER_OFFSET = "cross_values::GetTypedArrayBufferOffset(graph->GetArch())" - TYPED_ARRAY_BYTE_OFFSET_OFFSET = "cross_values::GetTypedArrayByteOffsetOffset(graph->GetArch())" - TYPED_UNSIGNED_ARRAY_BUFFER_OFFSET = "cross_values::GetTypedUnsignedArrayBufferOffset(graph->GetArch())" - TYPED_UNSIGNED_ARRAY_BYTE_OFFSET_OFFSET = "cross_values::GetTypedUnsignedArrayByteOffsetOffset(graph->GetArch())" - ARRAY_BUFFER_DATA_OFFSET = "cross_values::GetArrayBufferDataOffset(graph->GetArch())" - CORO_LOCAL_STORAGE_OFFSET = "cross_values::GetEtsCoroutineLocalStorageOffset(graph->GetArch())" - - ETS_CLASS_RUNTIME_CLASS_OFFSET = "cross_values::GetEtsClassRuntimeClassOffset(graph->GetArch())" - ETS_CLASS_FLAGS_OFFSET = "cross_values::GetEtsClassFlagsOffset(graph->GetArch())" - ETS_CLASS_FLAGS_FROM_RUNTIME_CLASS_OFFSET = "(-" + ETS_CLASS_RUNTIME_CLASS_OFFSET + "+" + ETS_CLASS_FLAGS_OFFSET + ")" - ETS_CLASS_IS_BIG_INT_FLAG = "cross_values::GetEtsClassIsBigIntFlag(graph->GetArch())" - ETS_CLASS_BOXED_TYPE_FIELD_START = "cross_values::GetEtsClassBoxedTypeFieldStart(graph->GetArch())" - ETS_CLASS_BOXED_TYPE_FIELD_SIZE = "cross_values::GetEtsClassBoxedTypeFieldSize(graph->GetArch())" - ETS_CLASS_BOXED_TYPE_FIELD_MASK = "(((1LLU << " + ETS_CLASS_BOXED_TYPE_FIELD_SIZE + ") - 1) << " + ETS_CLASS_BOXED_TYPE_FIELD_START + ")" - ETS_CLASS_BOXED_TYPE_INT_MASK_VALUE = "(cross_values::GetEtsClassBoxedTypeIntMaskValue(graph->GetArch()) << " + ETS_CLASS_BOXED_TYPE_FIELD_START + ")" - ETS_CLASS_BOXED_TYPE_DOUBLE_MASK_VALUE = "(cross_values::GetEtsClassBoxedTypeDoubleMaskValue(graph->GetArch()) << " + ETS_CLASS_BOXED_TYPE_FIELD_START + ")" - - OBJ_PTR_SIZE = "ark::OBJECT_POINTER_SIZE" - LOG2_BYTES_PER_OBJ_PTR = "2" # object pointer has a size of 4 bytes on each supported platform - - FLOAT32_NAN = "0x7fc00000" - FLOAT64_NAN = "0x7ff8000000000000" - FLOAT64_INF = "0x7ff0000000000000" - FLOAT64_MINUS_INF = "0xfff0000000000000" -end - -scoped_macro(:getBoxedType) do |flags| - AndI(flags).Imm(EtsConstants::ETS_CLASS_BOXED_TYPE_FIELD_MASK).u32 -end - -scoped_macro(:isBigIntType) do |flags| - AndI(flags).Imm(EtsConstants::ETS_CLASS_IS_BIG_INT_FLAG).u32 end macro(:ets_nullvalue) do diff --git a/static_core/plugins/ets/irtoc_scripts/escompat_array.irt b/static_core/plugins/ets/irtoc_scripts/escompat_array.irt deleted file mode 100644 index 941c4d7310..0000000000 --- a/static_core/plugins/ets/irtoc_scripts/escompat_array.irt +++ /dev/null @@ -1,43 +0,0 @@ -# plugin escompat_array -# Copyright (c) 2025 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include_relative '../../../irtoc/scripts/common.irt' -include_relative 'common.irt' - -module ArrayConstants - PLATFORM_TYPES_ESCOMPAT_ARRAY_CLASS_OFFSET = "cross_values::GetPlatformTypesEscompatArrayClassOffset(graph->GetArch())" -end - -function(:EscompatArrayIsPlatformArrayFast, - params: {obj: 'ref'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { - - if Options.arch == :arm32 - Intrinsic(:UNREACHABLE).Terminator.void - next - end - - ptypes := LoadI(%tr).Imm(EtsConstants::CORO_LOCAL_STORAGE_OFFSET).ptr - arrayClass := LoadI(ptypes).Imm(ArrayConstants::PLATFORM_TYPES_ESCOMPAT_ARRAY_CLASS_OFFSET).ref_uint - klass := LoadI(obj).Imm(Constants::OBJECT_CLASS_OFFSET).ref_uint - etsKlass := SubI(klass).Imm(EtsConstants::ETS_CLASS_RUNTIME_CLASS_OFFSET).ref_uint - If(arrayClass, etsKlass).EQ.Likely { - result1 := 1 - } Else { - result2 := 0 - } - Return(Phi(result1, result2).i32).b -} diff --git a/static_core/plugins/ets/irtoc_scripts/interpreter_handlers.irt b/static_core/plugins/ets/irtoc_scripts/interpreter_handlers.irt index 0d36e01680..32ddf2bc12 100644 --- a/static_core/plugins/ets/irtoc_scripts/interpreter_handlers.irt +++ b/static_core/plugins/ets/irtoc_scripts/interpreter_handlers.irt @@ -145,7 +145,7 @@ end macro(:"load_field_obj") do |field, klass| offset := LoadI(field).Imm(Constants::FIELD_OFFSET_OFFSET).u32 - Load(klass, offset).SetNeedBarrier(true).ref + Load(klass, offset).ref end ['short', 'long', 'obj'].each do |flavor| @@ -389,10 +389,3 @@ macro(:"handle_ets_call_name_range") do |v, id, size| } generic_call(id, size, false, method, nil, copy_lambda) end - -macro(:handle_ets_nullcheck) do - If(acc.ref, 0).EQ.Unlikely { - call_runtime("ThrowNullPointerExceptionFromInterpreter").void - move_to_exception - } -end diff --git a/static_core/plugins/ets/irtoc_scripts/interpreter_main_loop.irt b/static_core/plugins/ets/irtoc_scripts/interpreter_main_loop.irt index e08ae33d96..6e5a3a1f19 100644 --- a/static_core/plugins/ets/irtoc_scripts/interpreter_main_loop.irt +++ b/static_core/plugins/ets/irtoc_scripts/interpreter_main_loop.irt @@ -47,5 +47,3 @@ handle_ets_call_name_long(op[1], op[2], op[3], op[4], as_id(op[0]), i.format.size) when "ETS_CALL_NAME_RANGE_PREF_V8_ID16" handle_ets_call_name_range(op[1], as_id(op[0]), i.format.size) - when "ETS_NULLCHECK_PREF_NONE" - handle_ets_nullcheck() diff --git a/static_core/plugins/ets/irtoc_scripts/map.irt b/static_core/plugins/ets/irtoc_scripts/map.irt deleted file mode 100644 index 525dc1f09c..0000000000 --- a/static_core/plugins/ets/irtoc_scripts/map.irt +++ /dev/null @@ -1,141 +0,0 @@ -# plugin ets_map -# Copyright (c) 2025 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include_relative 'map_set_common.irt' - -def GenerateMapGet(cgmode) - prefix = (cgmode == :NativePlus ? 'NativePlus' : '') - function("MapGet#{prefix}".to_sym, - params: {map: 'ref', key: 'ref', idx: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { - - if Options.arch == :arm32 - Intrinsic(:UNREACHABLE).Terminator.void - next - end - - processMapGet(map, key, idx, cgmode) -} -end - -def GenerateMapDelete(cgmode) - prefix = (cgmode == :NativePlus ? 'NativePlus': '') - function("MapDelete#{prefix}".to_sym, - params: {map: 'ref', key: 'ref', idx: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { - - if Options.arch == :arm32 - Intrinsic(:UNREACHABLE).Terminator.void - next - end - - processMapDelete(map, key, idx, cgmode) -} -end - -def GenerateMapHas(cgmode) - prefix = (cgmode == :NativePlus ? 'NativePlus': '') - function("MapHas#{prefix}".to_sym, - params: {map: 'ref', key: 'ref', idx: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { - - if Options.arch == :arm32 - Intrinsic(:UNREACHABLE).Terminator.void - next - end - - processMapHas(map, key, idx, cgmode) -} -end -GenerateMapGet(:FastPath) -GenerateMapGet(:NativePlus) -GenerateMapDelete(:FastPath) -GenerateMapDelete(:NativePlus) -GenerateMapHas(:FastPath) -GenerateMapHas(:NativePlus) - - -def GenerateGetHashCodeByValue(cgmode) - prefix = (cgmode == :NativePlus ? 'NativePlus': '') - function("GetHashCodeByValue#{prefix}".to_sym, - params: {obj: 'ref'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { - - if Options.arch == :arm32 - Intrinsic(:UNREACHABLE).Terminator.void - next - end - - klass := LoadI(obj).Imm(Constants::OBJECT_CLASS_OFFSET).ref - If(isString(klass), 0).NE.b { - If(isHashedString(obj), 0).EQ.b { - Goto(:SlowPathEntrypointString) - } - Return(Cast(fetchHashCodeString(obj)).u64).i64 - } - - flags := LoadI(klass).Imm(EtsConstants::ETS_CLASS_FLAGS_FROM_RUNTIME_CLASS_OFFSET).u32 - If(isBoxedType(flags), 0).NE.b { - type := LoadI(klass).Imm(Constants::BASE_CLASS_MANAGED_OBJECT_OFFSET).ref - Return(Cast(calcHashCode(obj, type)).u64).i64 - } - If(isBigintType(flags), 0).NE.b { - Goto(:SlowPathEntrypointBigint) - } - - If(isHashedObject(obj), 0).EQ.b { - Goto(:SlowPathEntrypointObject) - } - - Return(Cast(fetchHashCodeObject(obj)).u64).i64 - -Label(:SlowPathEntrypointString) - if mode == :NativePlus - Return(Call(obj).Method('GetHashCodeStringSlowPath').i64).i64 - else - entrypoint = get_entrypoint_offset("GET_HASH_CODE_STRING_ODD_SAVED") - Intrinsic(:SLOW_PATH_ENTRY, obj).AddImm(entrypoint).MethodAsImm("GetHashCodeStringOddSavedBridge").Terminator.i64 - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end - -Label(:SlowPathEntrypointBigint) - if mode == :NativePlus - Return(Call(obj).Method('GetHashCodeBigintSlowPath').i64).i64 - else - entrypoint = get_entrypoint_offset("GET_HASH_CODE_BIGINT_ODD_SAVED") - Intrinsic(:SLOW_PATH_ENTRY, obj).AddImm(entrypoint).MethodAsImm("GetHashCodeBigintOddSavedBridge").Terminator.i64 - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end - -Label(:SlowPathEntrypointObject) - if mode == :NativePlus - Return(Call(obj).Method('GetHashCodeBigintSlowPath').i64).i64 - else - entrypoint = get_entrypoint_offset("GET_HASH_CODE_OBJECT_ODD_SAVED") - Intrinsic(:SLOW_PATH_ENTRY, obj).AddImm(entrypoint).MethodAsImm("GetHashCodeObjectOddSavedBridge").Terminator.i64 - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end -} -end -GenerateGetHashCodeByValue(:FastPath) -#GenerateGetHashCodeByValue(:NativePlus) - diff --git a/static_core/plugins/ets/irtoc_scripts/map_set_common.irt b/static_core/plugins/ets/irtoc_scripts/map_set_common.irt deleted file mode 100644 index c4a46e435c..0000000000 --- a/static_core/plugins/ets/irtoc_scripts/map_set_common.irt +++ /dev/null @@ -1,519 +0,0 @@ -# plugin ets_map -# Copyright (c) 2025 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include_relative '../../../irtoc/scripts/common.irt' -include_relative '../../../irtoc/scripts/string_helpers.irt' -include_relative 'common.irt' - -module MapConstants - MARK_WORD_STATUS_MASK_IN_PLACE = "(ark::MarkWord::MarkWordSize)ark::MarkWord::STATUS_MASK_IN_PLACE" - MARK_WORD_STATUS_HASHED_IN_PLACE = "(ark::MarkWord::STATUS_HASHED << ark::MarkWord::STATUS_SHIFT)" - MARK_WORD_HASH_CODE_MASK = "(ark::MarkWord::MarkWordSize)ark::MarkWord::HASH_MASK" - - CLASS_STRING_CLASS_FLAG = "ark::Class::STRING_CLASS" - - ENTRY_KEY_OFFSET = "cross_values::GetEscompatMapEntryKeyOffset(graph->GetArch())" - ENTRY_VAL_OFFSET = "cross_values::GetEscompatMapEntryValOffset(graph->GetArch())" - ENTRY_PREV_OFFSET = "cross_values::GetEscompatMapEntryPrevOffset(graph->GetArch())" - ENTRY_NEXT_OFFSET = "cross_values::GetEscompatMapEntryNextOffset(graph->GetArch())" - - SIZE_OFFSET = "cross_values::GetEscompatMapSizeOffset(graph->GetArch())" - BUCKETS_OFFSET = "cross_values::GetEscompatMapBucketsOffset(graph->GetArch())" - - PLATFORM_TYPES_CORE_LONG_TYPE_OFFSET = "cross_values::GetPlatformTypesCoreLongTypeOffset(graph->GetArch())" - PLATFORM_TYPES_CORE_FLOAT_TYPE_OFFSET = "cross_values::GetPlatformTypesCoreFloatTypeOffset(graph->GetArch())" - PLATFORM_TYPES_CORE_DOUBLE_TYPE_OFFSET = "cross_values::GetPlatformTypesCoreDoubleTypeOffset(graph->GetArch())" - - ETS_CLASS_IS_NULLVALUE_FLAG = "cross_values::GetEtsClassIsNullvalueFlag(graph->GetArch())" - ETS_CLASS_IS_BOXED_FLAG = "cross_values::GetEtsClassIsBoxedFlag(graph->GetArch())" - ETS_CLASS_IS_BIGINT_FLAG = "cross_values::GetEtsClassIsBigintFlag(graph->GetArch())" - - INT_MAX = "std::numeric_limits::max()" - INT_MIN = "std::numeric_limits::min()" - - FLOAT32_NAN_EXPONENT_BITS = "(~(~0u << 8)) << 23" - FLOAT32_NAN_SIGNIFICAND_BITS = "~(~0u << 23)" - FLOAT64_NAN_EXPONENT_BITS = "(~(~0Lu << 11)) << 52" - FLOAT64_NAN_SIGNIFICAND_BITS = "~(~0Lu << 52)" - - SET_ELEMENTS_OFFSET = "cross_values::GetEscompatSetElementsOffset(graph->GetArch())" -end - -################################################################ - -scoped_macro(:isNan32) do |val| - bits := Bitcast(val).u32 - exponent := AndI(bits).Imm(MapConstants::FLOAT32_NAN_EXPONENT_BITS).u32 - significand := AndI(bits).Imm(MapConstants::FLOAT32_NAN_SIGNIFICAND_BITS).u32 - is_nan := And(Compare(exponent, MapConstants::FLOAT32_NAN_EXPONENT_BITS).b, Not(Compare(significand, 0).b).b).b -end - -scoped_macro(:isNan64) do |val| - bits := Bitcast(val).u64 - exponent := AndI(bits).Imm(MapConstants::FLOAT64_NAN_EXPONENT_BITS).u64 - significand := AndI(bits).Imm(MapConstants::FLOAT64_NAN_SIGNIFICAND_BITS).u64 - is_nan := And(Compare(exponent, MapConstants::FLOAT64_NAN_EXPONENT_BITS).b, Not(Compare(significand, 0).b).b).b -end - -scoped_macro(:isHashedString) do |obj| - Compare(LoadI(obj).Imm(Constants::STRING_HASHCODE_OFFSET).u32, 0).NE.b -end - -scoped_macro(:isHashedObject) do |obj| - mark_word := LoadI(obj).Imm(Constants::MARK_WORD_OFFSET).u32 - obj_status := AndI(mark_word).Imm(MapConstants::MARK_WORD_STATUS_MASK_IN_PLACE).u32 - Compare(obj_status, MapConstants::MARK_WORD_STATUS_HASHED_IN_PLACE).EQ.b -end - -scoped_macro(:isHashed) do |obj, is_string| - If(is_string, 0).NE.b { - is_hashed_str := isHashedString(obj) - } Else { - is_hashed_obj := isHashedObject(obj) - } - is_hashed := Phi(is_hashed_str, is_hashed_obj).b -end - -scoped_macro(:getPlatType) do |ptypes, ofs| - LoadI(ptypes).Imm(ofs).ref -end - -scoped_macro(:isNullValue) do |flags| - is_nullvalue := AndI(flags).Imm(MapConstants::ETS_CLASS_IS_NULLVALUE_FLAG).u32 -end - -scoped_macro(:isString) do |klass| - flags := LoadI(klass).Imm(Constants::BASE_CLASS_FLAGS_OFFSET).u32 - is_string := AndI(flags).Imm(MapConstants::CLASS_STRING_CLASS_FLAG).u32 -end - -scoped_macro(:isBoxedType) do |flags| - AndI(flags).Imm(MapConstants::ETS_CLASS_IS_BOXED_FLAG).u32 -end - -scoped_macro(:isBigintType) do |flags| - AndI(flags).Imm(MapConstants::ETS_CLASS_IS_BIGINT_FLAG).u32 -end - - -scoped_macro(:fetchHashCodeString) do |obj| - LoadI(obj).Imm(Constants::STRING_HASHCODE_OFFSET).u32 -end - -scoped_macro(:fetchHashCodeObject) do |obj| - mark_word := LoadI(obj).Imm(Constants::MARK_WORD_OFFSET).u32 - AndI(mark_word).Imm(MapConstants::MARK_WORD_HASH_CODE_MASK).u32 -end - -scoped_macro(:fetchHashCode) do |obj, is_string| - If(is_string, 0).NE.b { - hash_code_str := fetchHashCodeString(obj) - } Else { - hash_code_obj := fetchHashCodeObject(obj) - } - hash_code := Phi(hash_code_str, hash_code_obj).u32 -end - - -scoped_macro(:calcHashCode) do |obj, type| - ptypes := LoadI(%tr).Imm(EtsConstants::CORO_LOCAL_STORAGE_OFFSET).ptr - - int_max := Cast(MapConstants::INT_MAX).f64 - int_min := Cast(MapConstants::INT_MIN).f64 - - double_type := getPlatType(ptypes, MapConstants::PLATFORM_TYPES_CORE_DOUBLE_TYPE_OFFSET) - If(type, double_type).EQ.b { - value_double := LoadI(obj).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).f64 - - If(isNan64(value_double), 0).NE.b { - hash_code_double_nan := 0 - Goto(:ValueDoubleDone) - } - IfImm(Compare(value_double, int_max).GT.b).Imm(0).NE.b { - hash_code_double_large_pos := MapConstants::INT_MAX - Goto(:ValueDoubleDone) - } - IfImm(Compare(value_double, int_min).LT.b).Imm(0).NE.b { - hash_code_double_large_neg := MapConstants::INT_MIN - Goto(:ValueDoubleDone) - } Else { - hash_code_double_norm := Cast(Cast(value_double).i32).u32 - } -Label(:ValueDoubleDone) - hash_code_double := Phi(hash_code_double_nan, hash_code_double_large_pos, hash_code_double_large_neg, hash_code_double_norm).u32 - Goto(:Done) - } - - float_type := getPlatType(ptypes, MapConstants::PLATFORM_TYPES_CORE_FLOAT_TYPE_OFFSET) - If(type, float_type).EQ.b { - value_float := LoadI(obj).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).f32 - - If(isNan32(value_float), 0).NE.b { - hash_code_float_nan := 0 - Goto(:ValueFloatDone) - } - IfImm(Compare(Cast(value_float).f64, int_max).GT.b).Imm(0).NE.b { - hash_code_float_large_pos := MapConstants::INT_MAX - Goto(:ValueFloatDone) - } - IfImm(Compare(Cast(value_float).f64, int_min).LT.b).Imm(0).NE.b { - hash_code_float_large_neg := MapConstants::INT_MIN - Goto(:ValueFloatDone) - } Else { - hash_code_float_norm := Cast(Cast(value_float).i32).u32 - } -Label(:ValueFloatDone) - hash_code_float := Phi(hash_code_float_nan, hash_code_float_large_pos, hash_code_float_large_neg, hash_code_float_norm).u32 - Goto(:Done) - } Else { - hash_code_int := LoadI(obj).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).u32 - } - -Label(:Done) - hash_code := Phi(hash_code_double, hash_code_float, hash_code_int).u32 -end - -scoped_macro(:getBucketIdx) do |key, is_string, type, flags, buck_arr_len| - If(isNullValue(flags), 0).NE.b { - buck_idx_null := 0 - Goto(:Done) - } - - If(isBoxedType(flags), 0).NE.b { - key_hash_boxed := calcHashCode(key, type) - Goto(:GotHashCode) - } - - If(isHashed(key, is_string), 0).EQ.b { - buck_idx_none := -1 - Goto(:Done) - } - - key_hash_object := fetchHashCode(key, is_string) - -Label(:GotHashCode) - key_hash := Phi(key_hash_boxed, key_hash_object).u32 - - buck_idx_tmp := AShrI(key_hash).Imm(31).u32 - buck_idx := And(Sub(Xor(key_hash, buck_idx_tmp).u32, buck_idx_tmp).u32, SubI(buck_arr_len).Imm(1).u32).u32 - -Label(:Done) - buck_idx_res := Phi(buck_idx_null, buck_idx_none, buck_idx).i32 -end - -################################################################ - -scoped_macro(:compareByRef) do |obj, key| - res := Compare(obj, key).b -end - -scoped_macro(:getCompareVal) do |obj, type, long_type, float_type, double_type| - is_64 := Or(Compare(type, long_type).b, Compare(type, double_type).b).b - - If(is_64, 0).NE.b { - obj_val_64 := LoadI(obj).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).u64 - } Else { - obj_val_32 := Cast(LoadI(obj).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).u32).u64 - } - val := Phi(obj_val_64, obj_val_32).u64 -end - -scoped_macro(:compareByVal) do |obj, type, key_val, long_type, float_type, double_type| - obj_val := getCompareVal(obj, type, long_type, float_type, double_type) - - is_double := Compare(type, double_type).b - If(is_double, 0).NE.b { - is_key_nan := isNan64(key_val) - is_obj_nan := isNan64(obj_val) - - IfImm(Or(is_key_nan, is_obj_nan).b).Imm(0).EQ.b { - key_f64 := Bitcast(key_val).f64 - obj_f64 := Bitcast(obj_val).f64 - res_f64_norm := Compare(obj_f64, key_f64).b - Goto(:DoubleDone) - } Else { - res_f64_nan := And(is_key_nan, is_obj_nan).b - } - - Label(:DoubleDone) - res_f64 := Phi(res_f64_norm, res_f64_nan).b - Goto(:Done) - } - - is_float := Compare(type, float_type).b - If(is_float, 0).NE.b { - key_f32 := Bitcast(Cast(key_val).u32).f32 - obj_f32 := Bitcast(Cast(obj_val).u32).f32 - is_key_nan := isNan32(key_f32) - is_obj_nan := isNan32(obj_f32) - - IfImm(Or(is_key_nan, is_obj_nan).b).Imm(0).EQ.b { - res_f32_norm := Compare(obj_f32, key_f32).b - Goto(:FloatDone) - } Else { - res_f32_nan := And(is_key_nan, is_obj_nan).b - } - - Label(:FloatDone) - res_f32 := Phi(res_f32_norm, res_f32_nan).b - Goto(:Done) - } Else { - res_bits := Compare(obj_val, key_val).b - } - -Label(:Done) - res := Phi(res_f64, res_f32, res_bits).b -end - -################################################################ - -scoped_macro(:findKeyByStr) do |buck_data, buck_len, key| - ofs_0 := Mul(SubI(buck_len).Imm(1).i32, EtsConstants::OBJ_PTR_SIZE).i32 -Label(:Loop) - ofs := Phi(ofs_0, ofs_1).i32 - If(ofs, 0).LT.b { - Goto(:Done) - } - - entry := Load(buck_data, ofs).ref - object := LoadI(entry).Imm(MapConstants::ENTRY_KEY_OFFSET).ref - - obj_klass := LoadI(object).Imm(Constants::OBJECT_CLASS_OFFSET).ref - If(isString(obj_klass), 0).EQ.b { - Goto(:Continue) - } - - If(macroStringCompareTo(object, key), 0).EQ.Likely.b { - Goto(:Done) - } - -Label(:Continue) - ofs_1 := SubI(ofs).Imm(EtsConstants::OBJ_PTR_SIZE).i32 - Goto(:Loop) - -Label(:Done) - found := ofs -end - -scoped_macro(:findKeyByRef) do |buck_data, buck_len, key| - ofs_0 := Mul(SubI(buck_len).Imm(1).i32, EtsConstants::OBJ_PTR_SIZE).i32 -Label(:Loop) - ofs := Phi(ofs_0, ofs_1).i32 - If(ofs, 0).LT.b { - Goto(:Done) - } - - entry := Load(buck_data, ofs).ref - object := LoadI(entry).Imm(MapConstants::ENTRY_KEY_OFFSET).ref - - If(compareByRef(object, key), 0).NE.Likely.b { - Goto(:Done) - } - - ofs_1 := SubI(ofs).Imm(EtsConstants::OBJ_PTR_SIZE).i32 - Goto(:Loop) - -Label(:Done) - found := ofs -end - -macro(:findKeyByVal) do |buck_data, buck_len, key, type| - ptypes := LoadI(%tr).Imm(EtsConstants::CORO_LOCAL_STORAGE_OFFSET).ptr - long_type := getPlatType(ptypes, MapConstants::PLATFORM_TYPES_CORE_LONG_TYPE_OFFSET) - float_type := getPlatType(ptypes, MapConstants::PLATFORM_TYPES_CORE_FLOAT_TYPE_OFFSET) - double_type := getPlatType(ptypes, MapConstants::PLATFORM_TYPES_CORE_DOUBLE_TYPE_OFFSET) - - key_val := getCompareVal(key, type, long_type, float_type, double_type) - - ofs_0 := Mul(SubI(buck_len).Imm(1).i32, EtsConstants::OBJ_PTR_SIZE).i32 -Label(:findKeyByValLoop) - ofs := Phi(ofs_0, ofs_1).i32 - If(ofs, 0).LT.b { - Goto(:findKeyByValDone) - } - - entry := Load(buck_data, ofs).ref - object := LoadI(entry).Imm(MapConstants::ENTRY_KEY_OFFSET).ref - - obj_klass := LoadI(object).Imm(Constants::OBJECT_CLASS_OFFSET).ref - obj_type := LoadI(obj_klass).Imm(Constants::BASE_CLASS_MANAGED_OBJECT_OFFSET).ref - - If(obj_type, type).NE.Unlikely.b { - Goto(:SlowPathEntrypoint) - } - - If(compareByVal(object, type, key_val, long_type, float_type, double_type), 0).NE.Likely.b { - Goto(:findKeyByValDone) - } - - ofs_1 := SubI(ofs).Imm(EtsConstants::OBJ_PTR_SIZE).i32 - Goto(:findKeyByValLoop) - -Label(:findKeyByValDone) - found := ofs -end - -################################################################ - -scoped_macro(:isRefKey) do |key, flags| - If(key, 0).EQ.Unlikely.b { - by_ref_undef := 1 - Goto(:Done) - } - - If(isBoxedType(flags), 0).NE.b { - by_ref_boxed := 0 - Goto(:Done) - } Else { - by_ref_obj := 1 - } - -Label(:Done) - by_ref := Phi(by_ref_undef, by_ref_boxed, by_ref_obj).b -end - -macro(:findKey) do |buck_data, buck_len, key, type, flags, is_string| - If(is_string, 0).NE.b { - find_by_str := findKeyByStr(buck_data, buck_len, key) - Goto(:findKeyDone) - } - - If(isRefKey(key, flags), 0).NE.b { - find_by_ref := findKeyByRef(buck_data, buck_len, key) - } Else { - find_by_val := findKeyByVal(buck_data, buck_len, key, type) - } - -Label(:findKeyDone) - Phi(find_by_str, find_by_ref, find_by_val).i32 -end - -################################################################ - -macro(:findOffset) do |map, key, buck_idx, ret_none_expr| - buck_arr_hdr := LoadI(map).Imm(MapConstants::BUCKETS_OFFSET).ref - buck_arr_len := LoadI(buck_arr_hdr).Imm(EtsConstants::ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET).u32 - - If(key, 0).EQ.Unlikely.b { - buck_array := LoadI(buck_arr_hdr).Imm(EtsConstants::ESCOMPAT_ARRAY_DATA_OFFSET).ref - buck_array_data := AddI(buck_array).Imm(Constants::ARRAY_DATA_OFFSET).ptr - buck_hdr_undef := LoadI(buck_array_data).Imm(EtsConstants::OBJ_PTR_SIZE).ref # buckect number 1, like ETS - If(buck_hdr_undef, 0).EQ.b { - eval(ret_none_expr) # return - } - - buck_len_undef := LoadI(buck_hdr_undef).Imm(EtsConstants::ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET).u32 - bucket_undef := get_object_pointer_imm(buck_hdr_undef, EtsConstants::ESCOMPAT_ARRAY_DATA_OFFSET) - buck_data_undef := AddI(bucket_undef).Imm(Constants::ARRAY_DATA_OFFSET).ptr - - offset_undef := findKeyByRef(buck_data_undef, buck_len_undef, key) - } Else { - klass := LoadI(key).Imm(Constants::OBJECT_CLASS_OFFSET).ref - type := LoadI(klass).Imm(Constants::BASE_CLASS_MANAGED_OBJECT_OFFSET).ref - flags := LoadI(klass).Imm(EtsConstants::ETS_CLASS_FLAGS_FROM_RUNTIME_CLASS_OFFSET).u32 - If(isBigintType(flags), 0).NE.b { - Goto(:SlowPathEntrypoint) - } - is_string := isString(klass) - - buck_array := LoadI(buck_arr_hdr).Imm(EtsConstants::ESCOMPAT_ARRAY_DATA_OFFSET).ref - buck_array_data := AddI(buck_array).Imm(Constants::ARRAY_DATA_OFFSET).ptr - buck_hdr_norm := Load(buck_array_data, Mul(buck_idx, EtsConstants::OBJ_PTR_SIZE).u32).ref - If(buck_hdr_norm, 0).EQ.b { - eval(ret_none_expr) # return - } - - buck_len_norm := LoadI(buck_hdr_norm).Imm(EtsConstants::ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET).u32 - bucket_norm := get_object_pointer_imm(buck_hdr_norm, EtsConstants::ESCOMPAT_ARRAY_DATA_OFFSET) - buck_data_norm := AddI(bucket_norm).Imm(Constants::ARRAY_DATA_OFFSET).ptr - - offset_norm := findKey(buck_data_norm, buck_len_norm, key, type, flags, is_string) - } - buck_hdr := Phi(buck_hdr_undef, buck_hdr_norm).ref - buck_data := Phi(buck_data_undef, buck_data_norm).ptr - buck_len := Phi(buck_len_undef, buck_len_norm).u32 - - offset_found := Phi(offset_undef, offset_norm).i32 - If(offset_found, 0).LT.b { - eval(ret_none_expr) # return - } - - offset := offset_found -end - -################################################################ - -scoped_macro(:processMapHas) do |map, key, idx, mode| - findOffset(map, key, idx, "Return(0).b") - Return(1).b -Label(:SlowPathEntrypoint) - if mode == :NativePlus - Return(Call(map, key, idx).Method('EtsEscompatMapHas').b).b - else - entrypoint = get_entrypoint_offset("MAP_HAS_ODD_SAVED") - Intrinsic(:SLOW_PATH_ENTRY, map, key, idx).AddImm(entrypoint).MethodAsImm("MapHasOddSavedBridge").Terminator.b - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end -end - -scoped_macro(:processMapGet) do |map, key, idx, mode| - offset := findOffset(map, key, idx, "Return(nullptr).ptr") - - entry := Load(buck_data, offset).ref - object := get_object_pointer_imm(entry, MapConstants::ENTRY_VAL_OFFSET) - Return(object).ptr - -Label(:SlowPathEntrypoint) - if mode == :NativePlus - Return(Call(map, key, idx).Method('EtsEscompatMapGet').b).b - else - entrypoint = get_entrypoint_offset("MAP_GET_ODD_SAVED") - Intrinsic(:SLOW_PATH_ENTRY, map, key, idx).AddImm(entrypoint).MethodAsImm("MapGetOddSavedBridge").Terminator.ptr - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end -end - - -scoped_macro(:processMapDelete) do |map, key, idx, mode| - offset := findOffset(map, key, idx, "Return(0).b") - - entry := Load(buck_data, offset).ref - entry_next := LoadI(entry).Imm(MapConstants::ENTRY_NEXT_OFFSET).ref - entry_prev := LoadI(entry).Imm(MapConstants::ENTRY_PREV_OFFSET).ref - Store(entry_prev, MapConstants::ENTRY_NEXT_OFFSET, entry_next).ref - Store(entry_next, MapConstants::ENTRY_PREV_OFFSET, entry_prev).ref - - new_len := SubI(buck_len).Imm(1).u32 - StoreI(buck_hdr, new_len).Imm(EtsConstants::ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET).u32 - - last_item_ofs := Mul(new_len, EtsConstants::OBJ_PTR_SIZE).i32 - If(offset, last_item_ofs).NE.b { - popped_entry := Load(buck_data, last_item_ofs).ref - Store(buck_data, offset, popped_entry).ref - } - - size := LoadI(map).Imm(MapConstants::SIZE_OFFSET).u32 - StoreI(map, SubI(size).Imm(1).u32).Imm(MapConstants::SIZE_OFFSET).u32 - - Return(1).b - -Label(:SlowPathEntrypoint) - if mode == :NativePlus - Return(Call(map, key, idx).Method('EtsEscompatMapDelete').b).b - else - entrypoint = get_entrypoint_offset("MAP_DELETE_ODD_SAVED") - Intrinsic(:SLOW_PATH_ENTRY, map, key, idx).AddImm(entrypoint).MethodAsImm("MapDeleteOddSavedBridge").Terminator.b - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end -end diff --git a/static_core/plugins/ets/irtoc_scripts/set.irt b/static_core/plugins/ets/irtoc_scripts/set.irt deleted file mode 100644 index 255b897a76..0000000000 --- a/static_core/plugins/ets/irtoc_scripts/set.irt +++ /dev/null @@ -1,15 +0,0 @@ -# plugin ets_set -# Copyright (c) 2025 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include_relative 'map_set_common.irt' diff --git a/static_core/plugins/ets/irtoc_scripts/string.irt b/static_core/plugins/ets/irtoc_scripts/string.irt index 1b6e316c52..664527fc90 100644 --- a/static_core/plugins/ets/irtoc_scripts/string.irt +++ b/static_core/plugins/ets/irtoc_scripts/string.irt @@ -23,11 +23,13 @@ module Constants LOG2_BITS_PER_U8 = "3" LOG2_BITS_PER_U16 = "4" LOG2_BYTES_PER_U16 = "1" + LOG2_BYTES_PER_OBJ_PTR = "2" # object pointer has a size of 4 bytes on each supported platform XOR_SUB_U8_MASK = "0x0101010101010101ULL" XOR_AND_U8_MASK = "0x8080808080808080ULL" MAX_U8_VALUE = "255" U8_SIZE = "1" U16_SIZE = "2" + OBJ_PTR_SIZE = "ark::OBJECT_POINTER_SIZE" WRONG_CHAR_FLAG_MASK = "0x10000UL" end @@ -67,18 +69,18 @@ Label(:_L1) _new_str_data := Add(_new_str1, Cast(Constants::STRING_DATA_OFFSET).u64).ptr If(_compressable, 1).EQ.Likely.b { compress_u16_to_u8_chars(_src_str_data, _new_str_data, Cast(_char_count).u64) - StoreI(_new_str1, ShlI(_char_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(_new_str1, ShlI(_char_count).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 Goto(:_Fast_Substring_Result) } copy_u16_chars(_src_str_data, _new_str_data, Cast(_char_count).u64) - StoreI(_new_str1, OrI(ShlI(_char_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(_new_str1, OrI(ShlI(_char_count).Imm(1).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 Goto(:_Fast_Substring_Result) } # Source string is already compressed _new_str2 := allocate_string_tlab(_klass, Cast(_char_count).word) _new_str_data2 := Add(_new_str2, Cast(Constants::STRING_DATA_OFFSET).u64).ptr copy_u8_chars(_src_str_data, _new_str_data2, Cast(_char_count).u64) - StoreI(_new_str2, ShlI(_char_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(_new_str2, ShlI(_char_count).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 Label(:_Fast_Substring_Result) # String is supposed to be a constant object, so all its data should be visible by all threads Intrinsic(:DATA_MEMORY_BARRIER_FULL).void @@ -212,7 +214,7 @@ function(:CharIsWhiteSpace, params: {ch: 'u16'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 Intrinsic(:UNREACHABLE).Terminator.void @@ -271,7 +273,7 @@ function(:StringTrimLeftBase, length_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr not_compressed := AndI(length_packed).Imm(1).i32 - length := ShrI(length_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length := ShrI(length_packed).Imm(1).i32 start_index := Cast(1).i32 If(not_compressed, 0).EQ.Likely.b { # String contains 8-bit chars @@ -320,8 +322,6 @@ function(:StringTrimLeft, ReturnVoid().void next end - - check_string_type(str) length_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 If(length_packed, 1).LE.Unlikely.b { @@ -339,7 +339,7 @@ Label(:L1) If(ws, 0).EQ.Likely.b { Return(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr).ptr } - If(ShrI(length_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32, 1).EQ.Unlikely.b { + If(ShrI(length_packed).Imm(1).i32, 1).EQ.Unlikely.b { LiveOut(str).DstReg(regmap[:arg0]).ref entrypoint1 = get_entrypoint_offset("STRING_EMPTY") Intrinsic(:TAIL_CALL).AddImm(entrypoint1).MethodAsImm("StringEmpty").Terminator.ptr @@ -349,10 +349,6 @@ Label(:L1) LiveOut(unused2).DstReg(regmap[:arg2]).i32 entrypoint2 = get_entrypoint_offset("STRING_TRIM_LEFT_BASE") Intrinsic(:TAIL_CALL).AddImm(entrypoint2).MethodAsImm("StringTrimLeftBase").Terminator.ptr -Label(:SlowPathEntrypoint) - entrypoint = get_entrypoint_offset("STRING_TRIM_LEFT_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str).AddImm(entrypoint).MethodAsImm("StringTrimLeft3ArgBridge").Terminator.ptr - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG } @@ -369,7 +365,7 @@ function(:StringTrimRightBase, end length_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 - length := ShrI(length_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length := ShrI(length_packed).Imm(1).i32 start_index := SubI(length).Imm(2).i32 str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr not_compressed := AndI(length_packed).Imm(1).i32 @@ -421,8 +417,6 @@ function(:StringTrimRight, ReturnVoid().void next end - - check_string_type(str) length_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 If(length_packed, 1).LE.Unlikely.b { @@ -430,7 +424,7 @@ function(:StringTrimRight, } str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr not_compressed := AndI(length_packed).Imm(1).i32 - length := ShrI(length_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length := ShrI(length_packed).Imm(1).i32 last_char_index := SubI(length).Imm(1).i32 If(not_compressed, 0).EQ.Likely.b { ws1 := is_white_space_u8(Load(str_data, last_char_index).u8) @@ -452,10 +446,6 @@ Label(:L1) LiveOut(unused2).DstReg(regmap[:arg2]).i32 entrypoint2 = get_entrypoint_offset("STRING_TRIM_RIGHT_BASE") Intrinsic(:TAIL_CALL).AddImm(entrypoint2).MethodAsImm("StringTrimRightBase").Terminator.ptr -Label(:SlowPathEntrypoint) - entrypoint = get_entrypoint_offset("STRING_TRIM_RIGHT_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str).AddImm(entrypoint).MethodAsImm("StringTrimRight3ArgBridge").Terminator.ptr - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG } @@ -472,7 +462,7 @@ function(:StringTrimBase, end length_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 - length := ShrI(length_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length := ShrI(length_packed).Imm(1).i32 left := 0 right := SubI(length).Imm(2).i32 str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr @@ -542,8 +532,6 @@ function(:StringTrim, next end - check_string_type(str) - length_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 # length == 0 If(length_packed, 1).LE.Unlikely.b { @@ -551,7 +539,7 @@ function(:StringTrim, } str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr not_compressed := AndI(length_packed).Imm(1).i32 - length := ShrI(length_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length := ShrI(length_packed).Imm(1).i32 # length == 1 If(length, 1).EQ.b { If(not_compressed, 0).EQ.Likely.b { @@ -604,10 +592,6 @@ Label(:FirstCharWhitespace) LiveOut(unused2).DstReg(regmap[:arg2]).i32 entrypoint3 = get_entrypoint_offset("STRING_TRIM_LEFT_BASE") Intrinsic(:TAIL_CALL).AddImm(entrypoint3).MethodAsImm("StringTrimLeftBase").Terminator.ptr -Label(:SlowPathEntrypoint) - entrypoint = get_entrypoint_offset("STRING_TRIM_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str).AddImm(entrypoint).MethodAsImm("StringTrim3ArgBridge").Terminator.ptr - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG } @@ -628,7 +612,7 @@ function(:StringStartsWithBase, params: {str: 'ref', pfx: 'ref', from_index: 'i32'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 Intrinsic(:UNREACHABLE).Terminator.void @@ -640,7 +624,7 @@ function(:StringStartsWithBase, str_not_compressed := AndI(str_len_packed).Imm(1).i32 str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr pfx_len_packed := LoadI(pfx).Imm(Constants::STRING_LENGTH_OFFSET).u32 - pfx_len := ShrI(pfx_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + pfx_len := ShrI(pfx_len_packed).Imm(1).i32 pfx_not_compressed := AndI(pfx_len_packed).Imm(1).i32 pfx_data := Add(Cast(pfx).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr @@ -663,14 +647,12 @@ Label(:Done) Return(1).b } -def GenerateStringStartsWith(cgmode) - suffix = (cgmode == :NativePlus ? 'NativePlus': '') - upsuffix = (cgmode == :NativePlus ? '_NATIVE_PLUS': '') - function("StringStartsWith#{suffix}".to_sym, - params: {str: 'ref', pfx: 'ref', from_index: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { + +function(:StringStartsWith, + params: {str: 'ref', pfx: 'ref', from_index: 'i32'}, + regmap: $full_regmap, + regalloc_set: $panda_mask, + mode: [:FastPath]) { if Options.arch == :arm32 Intrinsic(:UNREACHABLE).Terminator.void @@ -678,9 +660,6 @@ def GenerateStringStartsWith(cgmode) next end - check_string_type(str) - check_string_type(pfx) - pfx_len_packed := LoadI(pfx).Imm(Constants::STRING_LENGTH_OFFSET).u32 # Return 'true' if prefix is empty # The least significant bit indicates COMPRESSED/UNCOMPRESSED, @@ -701,8 +680,8 @@ def GenerateStringStartsWith(cgmode) } from_index2 := Phi(from_index, from_index1).i32 - str_len := ShrI(str_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 - pfx_len := ShrI(pfx_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + str_len := ShrI(str_len_packed).Imm(1).i32 + pfx_len := ShrI(pfx_len_packed).Imm(1).i32 If(from_index2, Sub(str_len, pfx_len).i32).GT.Unlikely.b { # Return 'false' in this case, as we know that 'pfx' is not empty @@ -710,38 +689,19 @@ def GenerateStringStartsWith(cgmode) Return(0).b } - if cgmode == :NativePlus - LiveOut(str).DstReg(regmap[:arg1]).ref - LiveOut(pfx).DstReg(regmap[:arg2]).ref - LiveOut(from_index2).DstReg(regmap[:arg3]).i32 - else - LiveOut(str).DstReg(regmap[:arg0]).ref - LiveOut(pfx).DstReg(regmap[:arg1]).ref - LiveOut(from_index2).DstReg(regmap[:arg2]).i32 - end - entrypoint = get_entrypoint_offset("STRING_STARTS_WITH_BASE#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringStartsWithBase#{suffix}").Terminator.b - -Label(:SlowPathEntrypoint) - if cgmode == :NativePlus - Return(Call(str, pfx, from_index).Method("StdCoreStringStartsWith").b).b - else - entrypoint = get_entrypoint_offset("STRING_STARTS_WITH_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str, pfx, from_index).AddImm(entrypoint).MethodAsImm("StringStartsWithOddSavedBridge").Terminator.b - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end + LiveOut(str).DstReg(regmap[:arg0]).ref + LiveOut(pfx).DstReg(regmap[:arg1]).ref + LiveOut(from_index2).DstReg(regmap[:arg2]).i32 + entrypoint = get_entrypoint_offset("STRING_STARTS_WITH_BASE") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringStartsWithBase").Terminator.b } -end - -GenerateStringStartsWith(:FastPath) -GenerateStringStartsWith(:NativePlus) function(:StringEndsWithBase, params: {str: 'ref', sfx: 'ref', end_index: 'i32'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 Intrinsic(:UNREACHABLE).Terminator.void @@ -755,7 +715,7 @@ function(:StringEndsWithBase, sfx_len_packed := LoadI(sfx).Imm(Constants::STRING_LENGTH_OFFSET).u32 sfx_not_compressed := AndI(sfx_len_packed).Imm(1).i32 sfx_data := Add(Cast(sfx).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr - sfx_len := ShrI(sfx_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + sfx_len := ShrI(sfx_len_packed).Imm(1).i32 from_index := Sub(end_index, sfx_len).i32; sfx_i1 := 0 @@ -778,14 +738,12 @@ Label(:Done) Return(1).b } -def GenerateStringEndsWith(cgmode) - suffix = (cgmode == :NativePlus ? 'NativePlus': '') - upsuffix = (cgmode == :NativePlus ? '_NATIVE_PLUS': '') - function("StringEndsWith#{suffix}".to_sym, - params: {str: 'ref', sfx: 'ref', end_index: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { + +function(:StringEndsWith, + params: {str: 'ref', sfx: 'ref', end_index: 'i32'}, + regmap: $full_regmap, + regalloc_set: $panda_mask, + mode: [:FastPath]) { if Options.arch == :arm32 Intrinsic(:UNREACHABLE).Terminator.void @@ -793,9 +751,6 @@ def GenerateStringEndsWith(cgmode) next end - check_string_type(str) - check_string_type(sfx) - sfx_len_packed := LoadI(sfx).Imm(Constants::STRING_LENGTH_OFFSET).u32 # Return 'true' if suffix is empty # The least significant bit indicates COMPRESSED/UNCOMPRESSED, @@ -814,45 +769,26 @@ def GenerateStringEndsWith(cgmode) Return(0).b } - str_len := ShrI(str_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + str_len := ShrI(str_len_packed).Imm(1).i32 # If 'end_index' is greater than length of 'str' make it equal to length of 'str'. If(end_index, str_len).GT.Unlikely.b { end_index1 := str_len } end_index2 := Phi(end_index, end_index1).i32 - sfx_len := ShrI(sfx_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + sfx_len := ShrI(sfx_len_packed).Imm(1).i32 from_index := Sub(end_index2, sfx_len).i32; IfImm(Compare(from_index, 0).LT.b).Imm(0).NE.Unlikely.b { # Return 'false' in this case, as 'sfx' length is greater than 'end_index'. Return(0).b } - if cgmode == :NativePlus - LiveOut(str).DstReg(regmap[:arg1]).ref - LiveOut(sfx).DstReg(regmap[:arg2]).ref - LiveOut(end_index2).DstReg(regmap[:arg3]).i32 - else - LiveOut(str).DstReg(regmap[:arg0]).ref - LiveOut(sfx).DstReg(regmap[:arg1]).ref - LiveOut(end_index2).DstReg(regmap[:arg2]).i32 - end - entrypoint = get_entrypoint_offset("STRING_ENDS_WITH_BASE#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringEndsWithBase#{suffix}").Terminator.b -Label(:SlowPathEntrypoint) - if cgmode == :NativePlus - Return(Call(str, sfx, end_index).Method("StdCoreStringEndsWith").b).b - else - entrypoint = get_entrypoint_offset("STRING_ENDS_WITH_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str, sfx, end_index).AddImm(entrypoint).MethodAsImm("StringEndsWithOddSavedBridge").Terminator.b - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end + LiveOut(str).DstReg(regmap[:arg0]).ref + LiveOut(sfx).DstReg(regmap[:arg1]).ref + LiveOut(end_index2).DstReg(regmap[:arg2]).i32 + entrypoint = get_entrypoint_offset("STRING_ENDS_WITH_BASE") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringEndsWithBase").Terminator.b } -end - -GenerateStringEndsWith(:FastPath) -GenerateStringEndsWith(:NativePlus) - function(:StringGetBytesTlab, params: {str: 'ref', begin_index: 'i32', end_index: 'i32', array_klass: 'ref'}, @@ -866,8 +802,6 @@ function(:StringGetBytesTlab, next end - check_string_type(str) - If(begin_index, end_index).GT.Unlikely.b { Goto(:SlowPathEntrypoint) # Out of range } @@ -876,12 +810,10 @@ function(:StringGetBytesTlab, Goto(:SlowPathEntrypoint) # Out of range } - check_string_type(str) - # Note, 'str' is checked against nullptr in the InstBuilder (see AddArgNullcheckIfNeeded) length := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32; uncompressed := AndI(length).Imm(1).u32; - length := ShrI(length).Imm(Constants::STRING_LENGTH_SHIFT).u32; + length := ShrI(length).Imm(1).u32; If(Cast(end_index).u32, length).A.Unlikely.b { Goto(:SlowPathEntrypoint) # Out of range @@ -919,7 +851,7 @@ function(:StringGetBytesTlab, # scoped_macro(:load_char_code) do |char_codes, offset| _boxed_ptr := get_object_pointer(char_codes, offset) - _char_code := LoadI(_boxed_ptr).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).f64 + _char_core := LoadI(_boxed_ptr).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).f64 end # load_char_code ### @@ -955,7 +887,7 @@ scoped_macro(:is_array_of_convertible_char_codes) do |codes_data, codes_count| _convertible := Cast(1).b else _offset1 := Cast(0).u64 - _codes_len := ShlI(codes_count).Imm(EtsConstants::LOG2_BYTES_PER_OBJ_PTR).u64 + _codes_len := ShlI(codes_count).Imm(Constants::LOG2_BYTES_PER_OBJ_PTR).u64 _convertible1 := Cast(1).b Label(:Loop) _offset := Phi(_offset1, _offset2).u64 @@ -966,7 +898,7 @@ Label(:Loop) If(_convertible2, 0).EQ.Unlikely.b { Goto(:LoopDone) } - _offset2 := AddI(_offset).Imm(EtsConstants::OBJ_PTR_SIZE).u64 + _offset2 := AddI(_offset).Imm(Constants::OBJ_PTR_SIZE).u64 Goto(:Loop) Label(:LoopDone) _convertible := Phi(_convertible1, _convertible2).b @@ -1006,7 +938,7 @@ end # get_char_from_code # scoped_macro(:is_array_of_compressible_char_codes) do |codes_data, codes_count| _offset1 := Cast(0).u64 - _codes_len := ShlI(codes_count).Imm(EtsConstants::LOG2_BYTES_PER_OBJ_PTR).u64 + _codes_len := ShlI(codes_count).Imm(Constants::LOG2_BYTES_PER_OBJ_PTR).u64 _compressible1 := Cast(1).b Label(:Loop) _offset := Phi(_offset1, _offset2).u64 @@ -1018,7 +950,7 @@ Label(:Loop) _compressible2 := Cast(0).b Goto(:LoopDone) } - _offset2 := AddI(_offset).Imm(EtsConstants::OBJ_PTR_SIZE).u64 + _offset2 := AddI(_offset).Imm(Constants::OBJ_PTR_SIZE).u64 Goto(:Loop) Label(:LoopDone) @@ -1038,7 +970,7 @@ Label(:Loop) If(_i, count).AE.Unlikely { Goto(:LoopDone) } - _code_offset := ShlI(_i).Imm(EtsConstants::LOG2_BYTES_PER_OBJ_PTR).u64 + _code_offset := ShlI(_i).Imm(Constants::LOG2_BYTES_PER_OBJ_PTR).u64 _char := get_char_from_code(load_char_code(src, _code_offset).f64) if compressed_string _char_offset := Cast(_i).u64 @@ -1080,7 +1012,7 @@ def GenerateCreateStringFromCharCodeTlab(string_compression_enabled) char_codes_array := get_object_pointer_imm(char_codes, EtsConstants::ESCOMPAT_ARRAY_DATA_OFFSET) codes_data := AddI(char_codes_array).Imm(Constants::ARRAY_DATA_OFFSET).ptr - codes_count := LoadI(char_codes).Imm(EtsConstants::ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET).u32 + codes_count := LoadI(char_codes_array).Imm(Constants::ARRAY_LENGTH_OFFSET).u32 # Validate if all the char codes are convertible: whenever an overflow or underflow takes place during the # conversion of a denormalized number we have to go to the slow path. The validation must take place before @@ -1110,10 +1042,10 @@ def GenerateCreateStringFromCharCodeTlab(string_compression_enabled) if string_compression_enabled If(compressible, 1).EQ.Likely { convert_char_codes_to_u8_chars(codes_data, str_data, Cast(codes_count).u64) - StoreI(new_str, ShlI(codes_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(new_str, ShlI(codes_count).Imm(Constants::LOG2_BYTES_PER_U16).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 } Else { convert_char_codes_to_u16_chars(codes_data, str_data, Cast(codes_count).u64) - StoreI(new_str, OrI(ShlI(codes_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(new_str, OrI(ShlI(codes_count).Imm(Constants::LOG2_BYTES_PER_U16).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 } else convert_char_codes_to_u16_chars(codes_data, str_data, Cast(codes_count).u64) @@ -1184,10 +1116,10 @@ def GenerateCreateStringFromCharCodeSingleTlab(string_compression_enabled) if string_compression_enabled If(compressible, 1).EQ.Likely { Store(str_data, Cast(0).u64, char).u8 - StoreI(new_str, Cast(4).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(new_str, Cast(2).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 } Else { Store(str_data, Cast(0).u64, char).u16 - StoreI(new_str, OrI(Cast(4).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 + StoreI(new_str, OrI(Cast(2).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 } else Store(str_data, Cast(0).u64, char).u16 @@ -1213,7 +1145,7 @@ function(:StringIndexOfCompressedSmall, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u8'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1240,7 +1172,7 @@ function(:StringIndexOfCompressedMedium, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u8'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1279,7 +1211,7 @@ function(:StringIndexOfCompressedLarge, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u8'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1311,7 +1243,7 @@ function(:StringIndexOfCompressed, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u8'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1367,7 +1299,7 @@ function(:StringIndexOfUncompressedSmall, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u16'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1395,7 +1327,7 @@ function(:StringIndexOfUncompressedMedium, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u16'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1427,7 +1359,7 @@ function(:StringIndexOfUncompressed, params: {str_data: 'ptr', str_data_size: 'u32', ch: 'u16'}, regmap: $full_regmap, regalloc_set: $panda_mask, - mode: [:FastPathPlus]) { + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1476,14 +1408,12 @@ Label(:Loop) Return(-1).i32 } -def GenerateStringIndexOf(cgmode) - suffix = (cgmode == :NativePlus ? 'NativePlus': '') - upsuffix = (cgmode == :NativePlus ? '_NATIVE_PLUS': '') - function("StringIndexOf#{suffix}".to_sym, - params: {str: 'ref', ch: 'u16', fake: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { + +function(:StringIndexOf, + params: {str: 'ref', ch: 'u16', fake: 'i32'}, + regmap: $full_regmap, + regalloc_set: $panda_regs, + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1491,8 +1421,6 @@ def GenerateStringIndexOf(cgmode) next end - check_string_type(str) - str_len_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 # Return '-1' if 'str' is empty. @@ -1503,114 +1431,68 @@ def GenerateStringIndexOf(cgmode) str_data := Add(Cast(str).SrcType(Constants::COMPILER_REFERENCE).ptr, Cast(Constants::STRING_DATA_OFFSET).word).ptr IfImm(Compare(AndI(str_len_packed).Imm(1).i32, 1).EQ.b).Imm(0).NE.Unlikely.b { - str_data_size_u16 := AndI(str_len_packed).Imm(0xFFFFFFFC).u32 + str_data_size_u16 := AndI(str_len_packed).Imm(0xFFFFFFFE).u32 # 0 < data size < 16 If(str_data_size_u16, 16).LT.Unlikely.b { LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u16).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u16 - name = "StringIndexOfUncompressedSmall#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u16, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_SMALL#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_SMALL") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfUncompressedSmall").Terminator.i32 } # 16 <= data size < 32 If(str_data_size_u16, 32).LT.Unlikely.b { LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u16).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u16 - name = "StringIndexOfUncompressedMedium#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u16, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_MEDIUM#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_MEDIUM") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfUncompressedMedium").Terminator.i32 } # 32 <= data size LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u16).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u16 - name = "StringIndexOfUncompressed#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u16, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfUncompressed").Terminator.i32 } IfImm(Compare(ch, Constants::MAX_U8_VALUE).A.b).Imm(0).NE.Unlikely.b { Return(-1).i32 } - str_data_size_u8 := ShrI(str_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).u32 + str_data_size_u8 := ShrI(str_len_packed).Imm(1).u32 # 0 < data size < 8 If(str_data_size_u8, 8).LT.Unlikely.b { LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressedSmall#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u8, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_SMALL#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_SMALL") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressedSmall").Terminator.i32 } # 8 <= data size < 16 If(str_data_size_u8, 16).LT.Unlikely.b { LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressed#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u8, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_MEDIUM#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_MEDIUM") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressedMedium").Terminator.i32 } # 16 <= data size < 32 If(str_data_size_u8, 32).LT.Unlikely.b { LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressedLarge#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u8, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_LARGE#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_LARGE") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressedLarge").Terminator.i32 } # 32 <= data size LiveOut(str_data).DstReg(regmap[:arg0]).ptr LiveOut(str_data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressed#{suffix}" - if cgmode == :NativePlus - Return(Call(0, str_data, str_data_size_u8, ch).Method(name).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end -Label(:SlowPathEntrypoint) - if cgmode == :NativePlus - Return(Call(str, ch).Method("StdCoreStringIndexOf").i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str, ch, fake).AddImm(entrypoint).MethodAsImm("StringIndexOfOddSavedBridge").Terminator.i32 - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressed").Terminator.i32 } -end -GenerateStringIndexOf(:FastPath) -GenerateStringIndexOf(:NativePlus) # 'IndexOfAfter' calls the corresponding functions from the 'IndexOf' family # for the purpose of code efficiency and to avoid code duplication. @@ -1618,14 +1500,11 @@ GenerateStringIndexOf(:NativePlus) # never returns to 'StringIndexOfAfter' because of TAIL_CALL. So the codegen and libllvm # take care of it and emit instructions adding 'start_index' to the result returned # by 'StringIndexOfAfter'. -def GenerateStringIndexOfAfter(cgmode) - suffix = (cgmode == :NativePlus ? 'NativePlus': '') - upsuffix = (cgmode == :NativePlus ? '_NATIVE_PLUS': '') - function("StringIndexOfAfter#{suffix}".to_sym, - params: {str: 'ref', ch: 'u16', start_index: 'i32'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [cgmode]) { +function(:StringIndexOfAfter, + params: {str: 'ref', ch: 'u16', start_index: 'i32'}, + regmap: $full_regmap, + regalloc_set: $panda_mask, + mode: [:FastPath]) { if Options.arch == :arm32 || Options.arch == :x86_64 Intrinsic(:UNREACHABLE).Terminator.void @@ -1633,25 +1512,13 @@ def GenerateStringIndexOfAfter(cgmode) next end - # make any negative index zero only for Native mode as - # the codegen takes care of it if the mode is FastPath - if cgmode == :NativePlus - start_index0 := start_index - IfImm(Compare(start_index, 0).LT.b).Imm(0).NE.Unlikely.b { - start_index1 := 0 - } - start_index := Phi(start_index0, start_index1).i32 - end - - check_string_type(str) - str_len_packed := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 # Return '-1' if 'str' is empty. IfImm(Compare(str_len_packed, 1).LE.b).Imm(0).NE.Unlikely.b { Return(-1).i32 } - str_len := ShrI(str_len_packed).Imm(Constants::STRING_LENGTH_SHIFT).i32 + str_len := ShrI(str_len_packed).Imm(1).i32 # Return '-1' if 'start_index' is out of range If(start_index, str_len).GE.Unlikely.b { @@ -1670,50 +1537,23 @@ def GenerateStringIndexOfAfter(cgmode) LiveOut(data_ptr_u16).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u16).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u16 - name = "StringIndexOfUncompressedSmall#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u16, data_size_u16, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_SMALL#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_SMALL") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfUncompressedSmall").Terminator.i32 } # 16 <= data size < 32 If(data_size_u16, 32).LT.Unlikely.b { LiveOut(data_ptr_u16).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u16).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u16 - name = "StringIndexOfUncompressedMedium#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u16, data_size_u16, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_MEDIUM#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED_MEDIUM") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfUncompressedMedium").Terminator.i32 } # 32 <= data size LiveOut(data_ptr_u16).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u16).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u16 - name = "StringIndexOfUncompressed#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u16, data_size_u16, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_UNCOMPRESSED") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfUncompressed").Terminator.i32 } IfImm(Compare(ch, Constants::MAX_U8_VALUE).A.b).Imm(0).NE.Unlikely.b { @@ -1728,81 +1568,32 @@ def GenerateStringIndexOfAfter(cgmode) LiveOut(data_ptr_u8).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressedSmall#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u8, data_size_u8, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_SMALL#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_SMALL") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressedSmall").Terminator.i32 } # 8 <= data size < 16 If(data_size_u8, 16).LT.Unlikely.b { LiveOut(data_ptr_u8).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressedMedium#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u8, data_size_u8, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_MEDIUM#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_MEDIUM") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressedMedium").Terminator.i32 } # 16 <= data size < 32 If(data_size_u8, 32).LT.Unlikely.b { LiveOut(data_ptr_u8).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressedLarge#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u8, data_size_u8, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_LARGE#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED_LARGE") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressedLarge").Terminator.i32 } # 32 <= data size LiveOut(data_ptr_u8).DstReg(regmap[:arg0]).ptr LiveOut(data_size_u8).DstReg(regmap[:arg1]).u32 LiveOut(ch).DstReg(regmap[:arg2]).u8 - name = "StringIndexOfCompressed#{suffix}" - if cgmode == :NativePlus - rc0 := Call(0, data_ptr_u8, data_size_u8, ch).Method(name).i32 - If(rc0, -1).NE.b { - rc1 := Add(rc0, start_index).i32 - } - Return(Phi(rc0, rc1).i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED#{upsuffix}") - Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm(name).Terminator.i32 - end -Label(:SlowPathEntrypoint) - if cgmode == :NativePlus - Return(Call(str, ch, start_index).Method("StdCoreStringIndexOfAfter").i32).i32 - else - entrypoint = get_entrypoint_offset("STRING_INDEX_OF_AFTER_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, str, ch, start_index).AddImm(entrypoint).MethodAsImm("StringIndexOfAfterOddSavedBridge").Terminator.i32 - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG - end + entrypoint = get_entrypoint_offset("STRING_INDEX_OF_COMPRESSED") + Intrinsic(:TAIL_CALL).AddImm(entrypoint).MethodAsImm("StringIndexOfCompressed").Terminator.i32 } -end - -GenerateStringIndexOfAfter(:FastPath) -GenerateStringIndexOfAfter(:NativePlus) - function(:StringRepeatTlab, params: {str: 'ref', cnt: 'i32'}, @@ -1820,8 +1611,6 @@ function(:StringRepeatTlab, Goto(:SlowPathEntrypoint) } - check_string_type(str) - IfImm(Compare(count, 0).EQ.b).Imm(0).NE { klass := load_class(str) new_str := allocate_string_tlab(klass, Cast(0).u64); @@ -1836,10 +1625,8 @@ function(:StringRepeatTlab, klass := load_class(str) old_buf := AddI(str).Imm(Constants::STRING_DATA_OFFSET).ptr uncompressed := AndI(length).Imm(1).u32 - codes_count := ShrI(length).Imm(Constants::STRING_LENGTH_SHIFT).u32 - length := Shl(ShrI(length).Imm(Constants::STRING_LENGTH_SHIFT).u32, uncompressed).u32 + length := Shl(ShrI(length).Imm(1).u32, uncompressed).u32 size := Mul(length, count).u32 - codes_count := Mul(codes_count, count).u32 new_str := allocate_string_tlab(klass, Cast(size).u64); new_buf := AddI(new_str).Imm(Constants::STRING_DATA_OFFSET).ptr @@ -1869,11 +1656,11 @@ Label(:outer) Goto(:outer) Label(:End) - If(uncompressed, 0).EQ.Likely { - StoreI(new_str, ShlI(codes_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 - } Else { - StoreI(new_str, OrI(ShlI(codes_count).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 - } + # shift left if it was a compressed string + # mark the (unset) lowest bit with uncompressed + compress := Neg(SubI(uncompressed).Imm(1).u32).u32 + length := Or(Shl(size, compress).u32, uncompressed).u32 + StoreI(new_str, length).Imm(Constants::STRING_LENGTH_OFFSET).u32 Return(new_str).ptr Label(:SlowPathEntrypoint) @@ -1893,12 +1680,10 @@ function(:WriteStringToMem, next end - check_string_type(str) - buf := Bitcast(mem).ptr len := LoadI(str).Imm(Constants::STRING_LENGTH_OFFSET).u32 utf16 := AndI(len).Imm(1).u32 - len_0 := ShrI(len).Imm(Constants::STRING_LENGTH_SHIFT).u32 + len_0 := ShrI(len).Imm(1).u32 len := len_0 If(len, 0).EQ.Unlikely.b { @@ -1924,10 +1709,6 @@ function(:WriteStringToMem, Label(:End) len := Phi(len_0, len, len_1).u32 Return(len).u32 -Label(:SlowPathEntrypoint) - entrypoint = get_entrypoint_offset("WRITE_STRING_TO_MEM_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, mem, str).AddImm(entrypoint).MethodAsImm("WriteStringToMemUsualBridge").Terminator.u32 - Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG } function(:CreateStringFromMem, @@ -1955,7 +1736,7 @@ function(:CreateStringFromMem, str := allocate_string_tlab_no_debug(klass, size) str_data := AddI(str).Imm(Constants::STRING_DATA_OFFSET).ptr copy_u8_chars(addr, str_data, size); - size_0 := ShlI(size).Imm(Constants::STRING_LENGTH_SHIFT).u32 + size_0 := ShlI(size).Imm(1).u32 If(mark, Cast(0xFEFF).u16).EQ.Unlikely.b { # UTF-16 string size_1 := OrI(ShrI(size_0).Imm(1).u32).Imm(1).u32 @@ -1973,3 +1754,4 @@ function(:CreateStringFromMem, Intrinsic(:SLOW_PATH_ENTRY, buf, len).AddImm(eid).MethodAsImm("CreateStringFromMem3ArgBridge").Terminator.ptr Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG } + diff --git a/static_core/plugins/ets/irtoc_scripts/string_builder.irt b/static_core/plugins/ets/irtoc_scripts/string_builder.irt index 37759df9c7..61cc04f4c0 100644 --- a/static_core/plugins/ets/irtoc_scripts/string_builder.irt +++ b/static_core/plugins/ets/irtoc_scripts/string_builder.irt @@ -1,5 +1,5 @@ # plugin ets_string_builder -# Copyright (c) 2024-2025 Huawei Device Co., Ltd. +# Copyright (c) 2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -414,19 +414,19 @@ def GenerateStringBuilderAppendStrings(num_args, sync_type) # 7. Update 'length' field length := LoadI(sb).Imm(Constants::ETS_SB_LENGTH_OFFSET).i32 if num_args > 0 - length0 := ShrI(length0).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length0 := ShrI(length0).Imm(1).i32 length := Add(length, length0).i32 end if num_args > 1 - length1 := ShrI(length1).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length1 := ShrI(length1).Imm(1).i32 length := Add(length, length1).i32 end if num_args > 2 - length2 := ShrI(length2).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length2 := ShrI(length2).Imm(1).i32 length := Add(length, length2).i32 end if num_args > 3 - length3 := ShrI(length3).Imm(Constants::STRING_LENGTH_SHIFT).i32 + length3 := ShrI(length3).Imm(1).i32 length := Add(length, length3).i32 end @@ -486,23 +486,20 @@ function(:StringBuilderToString, # Compute data size and length of a new string. n_chars := LoadI(sb).Imm(Constants::ETS_SB_LENGTH_OFFSET).u32 + len_compressed := ShlI(n_chars).Imm(1).u32 # set 'uncompressed' bit to 0 sb_compress := LoadI(sb).Imm(Constants::ETS_SB_COMPRESS_OFFSET).u8 - If(sb_compress, 1).EQ.Likely.b { - data_size1 := Cast(n_chars).word - } Else { - data_size2 := Cast(ShlI(n_chars).Imm(1).u32).word + If(sb_compress, 0).EQ.Unlikely.b { + size := len_compressed + len_uncompressed := OrI(len_compressed).Imm(1).u32 # set 'uncompressed' bit to 1 } - data_size := Phi(data_size1, data_size2).u32 + data_size := Phi(n_chars, size).u32 + packed_length := Phi(len_compressed, len_uncompressed).u32 # Allocate a string new_str := allocate_string_tlab(string_klass, Cast(data_size).word) # Let the memory writes (TLAB) be visible to other threads Intrinsic(:DATA_MEMORY_BARRIER_FULL).void # Set new string's length - If(sb_compress, 1).EQ.Likely.b { - StoreI(new_str, ShlI(n_chars).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 - } Else { - StoreI(new_str, OrI(ShlI(n_chars).Imm(Constants::STRING_LENGTH_SHIFT).u32).Imm(1).u32).Imm(Constants::STRING_LENGTH_OFFSET).u32 - } + StoreI(new_str,packed_length).Imm(Constants::STRING_LENGTH_OFFSET).u32 # Set new string's hashcode to 0, so as not to spend time on its computation StoreI(new_str, Cast(0).u32).Imm(Constants::STRING_HASHCODE_OFFSET).u32 # If string is empty, then there is nothing to do anymore @@ -519,7 +516,7 @@ Label(:ForEachBufferSlot) i := Phi(i1, i2).i32 dst_data := Phi(dst_data1, dst_data2).ptr slot := AddI(ShlI(i).Imm(Constants::REFERENCE_TYPE_SHIFT).i32).Imm(Constants::ARRAY_DATA_OFFSET).i32 - obj := Load(buffer, slot).SetNeedBarrier(true).ref + obj := Load(buffer, slot).ref klass := load_class(obj) klass_flags := LoadI(klass).Imm(Constants::BASE_CLASS_FLAGS_OFFSET).u32 If(AndI(klass_flags).Imm("ark::Class::STRING_CLASS").u32, 0).EQ.b { @@ -528,10 +525,9 @@ Label(:ForEachBufferSlot) # ------------------- # Object is a string # ------------------- - check_string_type(obj) str_len := LoadI(obj).Imm(Constants::STRING_LENGTH_OFFSET).i32 src_data := AddI(Cast(obj).SrcType(Constants::COMPILER_REFERENCE).ptr).Imm(Constants::STRING_DATA_OFFSET).ptr - src_len := ShrI(str_len).Imm(Constants::STRING_LENGTH_SHIFT).i32 + src_len := ShrI(str_len).Imm(1).i32 If(sb_compress, 0).EQ.Unlikely.b { Goto(:DoNotCompressString) } diff --git a/static_core/plugins/ets/irtoc_scripts/to_string_cache.irt b/static_core/plugins/ets/irtoc_scripts/to_string_cache.irt index e31f28f7e2..e92cbd6f94 100644 --- a/static_core/plugins/ets/irtoc_scripts/to_string_cache.irt +++ b/static_core/plugins/ets/irtoc_scripts/to_string_cache.irt @@ -1,5 +1,5 @@ # plugin string_builder -# Copyright (c) 2024-2025 Huawei Device Co., Ltd. +# Copyright (c) 2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -23,7 +23,6 @@ module Constants ELEM_STRING_OFFSET = ELEM_DATA_OFFSET ELEM_FLAG_OFFSET = "12" ELEM_NUMBER_OFFSET = "16" - OBJECT_POINTER_LOG2_SIZE = "OBJECT_POINTER_LOG2_SIZE" end function(:DoubleToStringDecimal, @@ -43,7 +42,7 @@ function(:DoubleToStringDecimal, hash := Mul(numInt, mul).u64 hash := ShrI(hash).Imm(56).u64 - elem_offset := AddI(ShlI(hash).Imm(Constants::OBJECT_POINTER_LOG2_SIZE).u64).Imm(Constants::ARRAY_DATA_OFFSET).u64 + elem_offset := AddI(ShlI(hash).Imm(2).u64).Imm(Constants::ARRAY_DATA_OFFSET).u64 elem := Load(cache, elem_offset).Volatile.ref IfImm(Compare(elem, 0).EQ.b).Imm(0).NE.Unlikely { Goto(:SlowPath) diff --git a/static_core/plugins/ets/irtoc_scripts/typed_arrays.irt b/static_core/plugins/ets/irtoc_scripts/typed_arrays.irt index b66379a215..1d86932ec7 100644 --- a/static_core/plugins/ets/irtoc_scripts/typed_arrays.irt +++ b/static_core/plugins/ets/irtoc_scripts/typed_arrays.irt @@ -29,7 +29,6 @@ module Constants TYPED_UNSIGNED_ARRAY_BYTE_OFFSET_OFFSET = "cross_values::GetTypedUnsignedArrayByteOffsetOffset(GetArch())" TYPED_UNSIGNED_ARRAY_BYTE_LENGTH_OFFSET = "cross_values::GetTypedUnsignedArrayByteLengthOffset(GetArch())" TYPED_UNSIGNED_ARRAY_LENGTH_INT_OFFSET = "cross_values::GetTypedUnsignedArrayLengthIntOffset(GetArch())" - TYPED_UNSIGNED_ARRAY_LENGTH_OFFSET = "cross_values::GetTypedUnsignedArrayLengthOffset(GetArch())" TYPED_UNSIGNED_ARRAY_CLASS_SIZE = "cross_values::GetTypedUnsignedArrayClassSize(GetArch())" TYPED_UNSIGNED_ARRAY_BUFFER_OFFSET = "cross_values::GetTypedUnsignedArrayBufferOffset(GetArch())" TYPED_UNSIGNED_ARRAY_CLASS_SIZE_WITH_ALIGNMENT = "cross_values::GetTypedUnsignedArrayClassSize(GetArch()) + TLAB_ALIGNMENT - 1" @@ -38,18 +37,12 @@ module Constants TYPED_ARRAY_BYTE_OFFSET_OFFSET = "cross_values::GetTypedArrayByteOffsetOffset(GetArch())" TYPED_ARRAY_BYTE_LENGTH_OFFSET = "cross_values::GetTypedArrayByteLengthOffset(GetArch())" TYPED_ARRAY_LENGTH_INT_OFFSET = "cross_values::GetTypedArrayLengthIntOffset(GetArch())" - TYPED_ARRAY_LENGTH_OFFSET = "cross_values::GetTypedArrayLengthOffset(GetArch())" TYPED_ARRAY_CLASS_SIZE = "cross_values::GetTypedArrayClassSize(GetArch())" TYPED_ARRAY_BUFFER_OFFSET = "cross_values::GetTypedArrayBufferOffset(GetArch())" TYPED_ARRAY_CLASS_SIZE_WITH_ALIGNMENT = "cross_values::GetTypedArrayClassSize(GetArch()) + TLAB_ALIGNMENT - 1" - - ETS_BIG_INT_BYTES_OFFSET = "cross_values::GetEtsBigIntBytesOffset(GetArch())" - ETS_BIG_INT_SIGN_OFFSET = "cross_values::GetEtsBigIntSignOffset(GetArch())" - ETS_BIG_INT_TO_LONG_SHIFT = "static_cast(32U)" - ETS_BIG_INT_TO_LONG_MASK = "((uint64_t{1U} << uint64_t{32U}) - uint64_t{1U})" - LOG2_BYTES_PER_I32 = "2" end + def GenerateTypedArrayFillInternal(name, prefix, type, scale) function("#{name}ArrayFillInternalFastPath".to_sym, params: {arr: 'ref', val: type, startPos: 'i32', endPos: 'i32'}, @@ -168,7 +161,7 @@ macro(:allocate_object_tlab) do |klass, klass_size, data_size| _end := LoadI(_tlab).Imm(Constants::TLAB_MEMORY_END_ADDR_OFFSET).ptr # Check if there is enough space If(Sub(_end, _start).word, _size).B.Unlikely { - Goto(:SlowPathEntrypoint) + Goto(:SlowPathEntrypoint) } Intrinsic(:WRITE_TLAB_STATS_SAFE, _start, _size, Cast(-1).u64).void if defines.DEBUG if defines.__SANITIZE_ADDRESS__ || defines.__SANITIZE_THREAD__ @@ -182,215 +175,128 @@ macro(:allocate_object_tlab) do |klass, klass_size, data_size| _allocated_object := _start end -### -# Numbers in an instance of 'escompat.Array' are represented as an array of object pointers to instances of the -# boxing class 'std.core.Double' or 'std.core.Int'. -# -scoped_macro(:validate_number) do |data, offset, type_mask_value| - _boxed_ptr := get_object_pointer(data, offset) - _klass := LoadI(_boxed_ptr).Imm(Constants::OBJECT_CLASS_OFFSET).ref - _flags := LoadI(_klass).Imm(EtsConstants::ETS_CLASS_FLAGS_FROM_RUNTIME_CLASS_OFFSET).u32 - If(getBoxedType(_flags), type_mask_value).EQ.Likely { - _valid1 := Cast(1).b - Goto(:Done) - } Else { - _valid2 := Cast(0).b - } - Label(:Done) - Phi(_valid1, _valid2).b -end # validate_number -### -# Numbers in an instance of 'escompat.Array' are represented as an array of object pointers to instances of the -# boxing class 'std.core.Double' or 'std.core.Int'. Runtime stores such objects as instances of the -# 'ark::ets::EtsBoxPrimitive' class and every instance has a field of type 'double' or 'int', the value. -# -# The macro reads the boxed value by an object pointer and applies unboxing. -# -scoped_macro(:load_number) do |data, offset, type| - _boxed_ptr := get_object_pointer(data, offset) - LoadI(_boxed_ptr).Imm(EtsConstants::BOX_PRIMITIVE_VALUE_OFFSET).send(type) -end # load_number - -["i8", "i16", "i32", "u8", "u16", "u32"].each do |tgt_type| - scoped_macro("get_#{tgt_type}_from_number".to_sym) do |number| - if tgt_type != 'i32' - Cast(number).send(tgt_type) +def GenerateToReversed(type) + case type + when "Uint8" + prefix = "TYPED_UNSIGNED" + when "Uint16" + prefix = "TYPED_UNSIGNED" + when "Uint32" + prefix = "TYPED_UNSIGNED" + when "BigUint64" + prefix = "TYPED_UNSIGNED" + else + prefix = "TYPED" + end + case type + when "Int8" + suffix = "i8" + when "Int16" + suffix = "i16" + when "Int32" + suffix = "i32" + when "BigInt64" + suffix = "i64" + when "Float32" + suffix = "f32" + when "Float64" + suffix = "f64" + when "Uint8" + suffix = "u8" + when "Uint16" + suffix = "u16" + when "Uint32" + suffix = "u32" + when "BigUint64" + suffix = "u64" else - number - end - end # get_#{tgt_type}_from_number -end - -scoped_macro("get_f32_from_number".to_sym) do |num| - Cast(num).f32 -end # get_f64_from_number - -scoped_macro("get_f64_from_number".to_sym) do |num| - num -end # get_f64_from_number - -scoped_macro("clamp_u8_value".to_sym) do |int| - If(int, Cast(0).i32).LT.Unlikely { - _val1 := 0 - } Else { - If(int, Cast(255).i32).GT.Unlikely { - _val2 := 255 - } Else { - _val0 := Cast(int).u8 - } - } - Phi(_val1, _val2, _val0).u8 -end # clamp_u8_value - -scoped_macro(:load_big_int) do |data, offset| - get_object_pointer(data, offset) -end # load_big_int - -### -# BigInt values in an instance of 'escompat.Array' are represented as an array of object pointers to instances of the -# class `BigInt` and a special bit is set for this class. -# -scoped_macro(:validate_big_int) do |data, offset| - _object := load_big_int(data, offset) - _klass := LoadI(_object).Imm(Constants::OBJECT_CLASS_OFFSET).ref - _flags := LoadI(_klass).Imm(EtsConstants::ETS_CLASS_FLAGS_FROM_RUNTIME_CLASS_OFFSET).u32 - isBigIntType(_flags) -end # validate_big_int - -scoped_macro(:get_long_from_big_int) do |object| - _bytes := get_object_pointer_imm(object, Constants::ETS_BIG_INT_BYTES_OFFSET) - _sign := Cast(LoadI(object).Imm(Constants::ETS_BIG_INT_SIGN_OFFSET).i32).i64 - _bytes_data := AddI(_bytes).Imm(Constants::ARRAY_DATA_OFFSET).ptr - _bytes_length := LoadI(_bytes).Imm(Constants::ARRAY_LENGTH_OFFSET).u32 - _length1 := Cast(_bytes_length).u32 - _limit_len := Cast(2).u32 - If(_limit_len, _length1).LE { - _length2 := _limit_len - } - _length := Phi(_length1, _length2).u32 - _i1 := Cast(0).u32 - _res1 := Cast(0).i64 -Label(:Loop) - _i := Phi(_i1, _i2).u32 - _res := Phi(_res1, _res2).i64 - If(_i, _length).AE.Unlikely { - Goto(:LoopDone) - } - _int := Cast(Load(_bytes_data, ShlI(Cast(_i).u64).Imm(Constants::LOG2_BYTES_PER_I32).u64).u32).u64 - _masked := AndI(_int).Imm(Constants::ETS_BIG_INT_TO_LONG_MASK).u64 - _shift := Mul(Cast(_i).u64, Constants::ETS_BIG_INT_TO_LONG_SHIFT).u64 - _comp := Cast(Shl(_masked, _shift).u64).i64 - _res2 := Add(_res, _comp).i64 - _i2 := AddI(_i).Imm(1).u32 - Goto(:Loop) -Label(:LoopDone) - Mul(_sign, _res).i64 -end # get_long_from_big_int - -scoped_macro(:get_ulong_from_big_int) do |object| - Cast(get_long_from_big_int(object)).u64 -end # get_ulong_from_big_int - - -def GenerateTypedArraySetValuesFromArray(name, etype, stype, elm_size, mode) - if mode == "signed" - prefix = "TYPED_ARRAY" + raise "Unexpected type: #{type}" + end + case type + when "BigInt64" + macroType = "BIG_INT64" + when "BigUint64" + macroType = "BIG_UINT64" else - prefix = "TYPED_UNSIGNED_ARRAY" + macroType = type.upcase end + function("#{type}ArrayToReversedTlab".to_sym, + params: {typed_array: 'ref'}, + regmap: $full_regmap, + regalloc_set: $panda_mask, + mode: [:FastPath]) { - function("#{name}ArraySetValuesFromArray".to_sym, - params: {dest: 'ref', source: 'ref'}, - regmap: $full_regmap, - regalloc_set: $panda_mask, - mode: [:FastPath]) { - - # Arm32 is not supported + # not supported if Options.arch == :arm32 Intrinsic(:UNREACHABLE).Terminator.void next end - # load the source Array params - source_array := get_object_pointer_imm(source, EtsConstants::ESCOMPAT_ARRAY_DATA_OFFSET) - source_data := AddI(source_array).Imm(Constants::ARRAY_DATA_OFFSET).ptr - source_length := LoadI(source).Imm(EtsConstants::ESCOMPAT_ARRAY_ACTUAL_LENGTH_OFFSET).u32 - - # source.length == 0 - exit - If(source_length, 0).EQ.Unlikely { - Goto(:LoopDone) - } - - # source.length > this.length (Out of range) - dest_length := LoadI(dest).Imm(eval("Constants::#{prefix}_LENGTH_INT_OFFSET")).u32 - If(source_length, dest_length).GT.Unlikely { - Goto(:SlowPathEntrypoint) - } - - # load TypedArray params, ArrayBuffer and Array - buffer := LoadI(dest).Imm(eval("Constants::#{prefix}_BUFFER_OFFSET")).ref - packet := LoadI(buffer).Imm(Constants::ARRAY_BUFFER_DATA_OFFSET).ref - If(packet, 0).EQ.Unlikely { - Goto(:SlowPathEntrypoint) - } - dest_data := AddI(packet).Imm(Constants::ARRAY_DATA_OFFSET).ptr - - source_offset1 := Cast(0).u64 - dest_offset1 := Cast(0).u64 - source_byte_len := ShlI(Cast(source_length).u64).Imm(EtsConstants::LOG2_BYTES_PER_OBJ_PTR).u64 -Label(:Loop) - source_offset := Phi(source_offset1, source_offset2).u64 - dest_offset := Phi(dest_offset1, dest_offset2).u64 - If(source_offset, source_byte_len).AE.Unlikely { - Goto(:LoopDone) - } - - if name == "BigInt64" || name == "BigUint64" - valid := validate_big_int(source_data, source_offset) - elsif name == "Float32" || name == "Float64" - valid := validate_number(source_data, source_offset, Cast(EtsConstants::ETS_CLASS_BOXED_TYPE_DOUBLE_MASK_VALUE).u32) - else - valid := validate_number(source_data, source_offset, Cast(EtsConstants::ETS_CLASS_BOXED_TYPE_INT_MASK_VALUE).u32) - end - If(valid, 0).EQ.Unlikely { - Goto(:SlowPathEntrypoint) + # load TypedArray params + eval("byte_offset := Cast(LoadI(typed_array).Imm(Constants::#{prefix}_ARRAY_BYTE_OFFSET_OFFSET).f64).u32") + eval("elm_size := Cast(LoadI(typed_array).Imm(Constants::#{prefix}_ARRAY_BYTES_PER_ELEMENT_OFFSET).f64).u32") + eval("arr_len := Cast(LoadI(typed_array).Imm(Constants::#{prefix}_ARRAY_LENGTH_INT_OFFSET).i32).u32") + array_byte_len := Mul(arr_len, elm_size).u32 + + # new Typed Array + klass := LoadI(typed_array).Imm(Constants::OBJECT_CLASS_OFFSET).ref + eval("new_typed_array := allocate_object_tlab(klass, Constants::#{prefix}_ARRAY_CLASS_SIZE, 0)") + eval("copy_u8_chars(typed_array, new_typed_array, Constants::#{prefix}_ARRAY_CLASS_SIZE)") + eval("StoreI(new_typed_array, Cast(0).f64).Imm(Constants::#{prefix}_ARRAY_BYTE_OFFSET_OFFSET).f64") + + # new ArrayBuffer + eval("array_buffer := LoadI(typed_array).Imm(Constants::#{prefix}_ARRAY_BUFFER_OFFSET).ref") + array_buffer_klass := LoadI(array_buffer).Imm(Constants::OBJECT_CLASS_OFFSET).ref + new_array_buffer := allocate_object_tlab(array_buffer_klass, Constants::ARRAY_BUFFER_CLASS_SIZE, 0) + eval("StoreI(new_typed_array, new_array_buffer).Imm(Constants::#{prefix}_ARRAY_BUFFER_OFFSET).ptr") + + # new Array + array := LoadI(array_buffer).Imm(Constants::ARRAY_BUFFER_DATA_OFFSET).ref + array_klass := LoadI(array).Imm(Constants::OBJECT_CLASS_OFFSET).ref + new_packet := allocate_object_tlab(array_klass, Constants::ARRAY_CLASS_SIZE, array_byte_len) + StoreI(new_packet, array_byte_len).Imm(Constants::ARRAY_LENGTH_OFFSET).u32 + src_data := Add(AddI(array).Imm(Constants::ARRAY_DATA_OFFSET).ptr, byte_offset).ptr + dst_data := AddI(new_packet).Imm(Constants::ARRAY_DATA_OFFSET).ptr + copy_u8_chars(src_data, dst_data, array_byte_len) + + StoreI(new_array_buffer, new_packet).Imm(Constants::ARRAY_BUFFER_DATA_OFFSET).ptr + StoreI(new_array_buffer, dst_data).Imm(Constants::ARRAY_BUFFER_NATIVE_DATA_OFFSET).ptr + StoreI(new_array_buffer, array_byte_len).Imm(Constants::ARRAY_BUFFER_BYTE_LENGTH_OFFSET).u32 + StoreI(new_array_buffer, Cast(0).u8).Imm(Constants::ARRAY_BUFFER_IS_RESIZABLE_OFFSET).u8 + + # fill new buffer in reversed order + src_ofs_0 := Sub(array_byte_len, elm_size).u32 + dst_ofs_0 := 0 + Label(:CopyLoop) + src_ofs := Phi(src_ofs_0, src_ofs_1).u32 + dst_ofs := Phi(dst_ofs_0, dst_ofs_1).u32 + + If(dst_ofs, array_byte_len).EQ.Unlikely { + Goto(:End) } + eval("Store(dst_data, dst_ofs, Load(src_data, src_ofs).#{suffix}).#{suffix}") + src_ofs_1 := Sub(src_ofs, elm_size).u32 + dst_ofs_1 := Add(dst_ofs, elm_size).u32 + Goto(:CopyLoop) - case name - when "BigInt64" - elem := get_long_from_big_int(load_big_int(source_data, source_offset).ptr) - when "BigUint64" - elem := get_ulong_from_big_int(load_big_int(source_data, source_offset).ptr) - when "Uint8Clamped" - elem := clamp_u8_value(load_number(source_data, source_offset, 'i32').i32) - else - elem := eval("get_#{etype}_from_number(load_number(source_data, source_offset, '#{stype}').#{stype})") - end - Store(dest_data, dest_offset, elem).send(etype) - - source_offset2 := AddI(source_offset).Imm(EtsConstants::OBJ_PTR_SIZE).u64 - dest_offset2 := AddI(dest_offset).Imm(elm_size).u64 - Goto(:Loop) - Label(:LoopDone) - - ReturnVoid().void + Label(:End) + Return(new_typed_array).ptr Label(:SlowPathEntrypoint) - entrypoint = get_entrypoint_offset("#{name.gsub(/(.)([A-Z])/,'\1_\2').upcase}_ARRAY_SET_VALUES_FROM_ARRAY_SLOW_PATH") - Intrinsic(:SLOW_PATH_ENTRY, dest, source).AddImm(entrypoint).MethodAsImm("#{name}ArraySetValuesFromArrayUsualBridge").Terminator.void + ep_offset = get_entrypoint_offset("#{macroType}_ARRAY_TO_REVERSED_SLOW_PATH") + Intrinsic(:SLOW_PATH_ENTRY, typed_array).AddImm(ep_offset).MethodAsImm("#{type}ArrayToReversedOddSavedBridge").Terminator.ptr Intrinsic(:UNREACHABLE).Terminator.void if defines.DEBUG } end -GenerateTypedArraySetValuesFromArray('Int8', 'i8', 'i32', 1, "signed") -GenerateTypedArraySetValuesFromArray('Int16', 'i16', 'i32', 2, "signed") -GenerateTypedArraySetValuesFromArray('Int32', 'i32', 'i32', 4, "signed") -GenerateTypedArraySetValuesFromArray('BigInt64', 'i64', '', 8, "signed") -GenerateTypedArraySetValuesFromArray('Float32', 'f32', 'f64', 4, "signed") -GenerateTypedArraySetValuesFromArray('Float64', 'f64', 'f64', 8, "signed") -GenerateTypedArraySetValuesFromArray('Uint8Clamped', 'u8', 'i32', 1, "unsigned") -GenerateTypedArraySetValuesFromArray('Uint8', 'u8', 'i32', 1, "unsigned") -GenerateTypedArraySetValuesFromArray('Uint16', 'u16', 'i32', 2, "unsigned") -GenerateTypedArraySetValuesFromArray('Uint32', 'u32', 'i32', 4, "unsigned") -GenerateTypedArraySetValuesFromArray('BigUint64', 'u64', '', 8, "unsigned") +GenerateToReversed('Int8') +GenerateToReversed('Int16') +GenerateToReversed('Int32') +GenerateToReversed('BigInt64') +GenerateToReversed('Float32') +GenerateToReversed('Float64') +GenerateToReversed('Uint8') +GenerateToReversed('Uint16') +GenerateToReversed('Uint32') +GenerateToReversed('BigUint64') diff --git a/static_core/plugins/ets/isa/isa.yaml b/static_core/plugins/ets/isa/isa.yaml index 6f6cb2de92..a75f144490 100644 --- a/static_core/plugins/ets/isa/isa.yaml +++ b/static_core/plugins/ets/isa/isa.yaml @@ -155,7 +155,6 @@ groups: - method_id - call - short_long_range - - id_shift exceptions: - x_null - x_abstract @@ -329,20 +328,4 @@ groups: prefix: ets acc: out:i32 format: [pref_op_v_8] - intrinsic_name: INTRINSIC_COMPILER_ETS_ISTRUE - - - title: Check if the value of reference is null (ets undefined) - description: > - Throw a NullPointerError if the value in the accumulator is null - verification: - - v1_obj_or_null - - acc_type - exceptions: - - x_null - namespace: ets - instructions: - - sig: ets.nullcheck - prefix: ets - acc: in:ref - format: [pref_op_none] - intrinsic_name: INTRINSIC_COMPILER_ETS_NULLCHECK + intrinsic_name: INTRINSIC_COMPILER_ETS_ISTRUE \ No newline at end of file diff --git a/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_gen.inl b/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_gen.inl index dd73649feb..248049e3fc 100644 --- a/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_gen.inl +++ b/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_gen.inl @@ -274,7 +274,7 @@ void LLVMIrConstructor::StringBuilderAppendStringMain(Inst *inst, llvm::Value *s auto strLengthOffset = builder_.CreateConstInBoundsGEP1_32(builder_.getInt8Ty(), str, runtime->GetStringLengthOffset(arch)); auto strLength = builder_.CreateLoad(builder_.getInt32Ty(), strLengthOffset); - auto strLengthShr = builder_.CreateLShr(strLength, builder_.getInt32(ark::coretypes::String::STRING_LENGTH_SHIFT)); + auto strLengthShr = builder_.CreateLShr(strLength, builder_.getInt32(1)); auto strLengthZero = builder_.CreateICmpEQ(strLengthShr, builder_.getInt32(0)); builder_.CreateCondBr(strLengthZero, contBb, mainBb); diff --git a/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_h_gen.inl b/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_h_gen.inl index 81e8d45346..3208ce2fb6 100644 --- a/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_h_gen.inl +++ b/static_core/plugins/ets/libllvmbackend/ets_llvm_ir_constructor_h_gen.inl @@ -87,72 +87,28 @@ bool EmitBigUInt64ArrayFillInternal(Inst *inst) return EmitFastPath(inst, RuntimeInterface::EntrypointId::BIG_U_INT64_ARRAY_FILL_INTERNAL_FAST_PATH, 4U); } -bool EmitReadString(Inst *inst); -bool EmitWriteString(Inst *inst); +// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) +#define EMIT_TYPED_ARRAY_TO_REVERSED(Name, MacroType) \ + /* CC-OFFNXT(G.PRE.02) name part */ \ + bool Emit##Name##ArrayToReversed(Inst *inst) \ + { \ + auto eid = RuntimeInterface::EntrypointId::MacroType##_ARRAY_TO_REVERSED; \ + /* CC-OFFNXT(G.PRE.05) function gen */ \ + return EmitFastPath(inst, eid, 1U); \ + } -bool EmitInt8ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::INT8_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitInt16ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::INT16_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitInt32ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::INT32_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitBigInt64ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::BIG_INT64_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitFloat32ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::FLOAT32_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitFloat64ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::FLOAT64_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitUint8ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::UINT8_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitUint8ClampedArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::UINT8_CLAMPED_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitUint16ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::UINT16_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitUint32ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::UINT32_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} -bool EmitBigUint64ArraySetValuesFromArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::BIG_UINT64_ARRAY_SET_VALUES_FROM_ARRAY, 2U); -} +EMIT_TYPED_ARRAY_TO_REVERSED(Int8, INT8) +EMIT_TYPED_ARRAY_TO_REVERSED(Int16, INT16) +EMIT_TYPED_ARRAY_TO_REVERSED(Int32, INT32) +EMIT_TYPED_ARRAY_TO_REVERSED(BigInt64, BIG_INT64) +EMIT_TYPED_ARRAY_TO_REVERSED(Float32, FLOAT32) +EMIT_TYPED_ARRAY_TO_REVERSED(Float64, FLOAT64) +EMIT_TYPED_ARRAY_TO_REVERSED(Uint8, UINT8) +EMIT_TYPED_ARRAY_TO_REVERSED(Uint16, UINT16) +EMIT_TYPED_ARRAY_TO_REVERSED(Uint32, UINT32) +EMIT_TYPED_ARRAY_TO_REVERSED(BigUint64, BIG_UINT64) -bool EmitMapGet(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::MAP_GET, 3U); -} -bool EmitMapHas(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::MAP_HAS, 3U); -} -bool EmitMapDelete(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::MAP_DELETE, 3U); -} +#undef EMIT_TYPED_ARRAY_TO_REVERSED -bool EmitGetHashCodeByValue(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::GET_HASH_CODE_BY_VALUE_FAST_PATH, 1U); -} -bool EmitEscompatArrayIsPlatformArray(Inst *inst) -{ - return EmitFastPath(inst, RuntimeInterface::EntrypointId::ESCOMPAT_ARRAY_IS_PLATFORM_ARRAY_FAST, 1U); -} +bool EmitReadString(Inst *inst); +bool EmitWriteString(Inst *inst); diff --git a/static_core/plugins/ets/playground/backend/docker/config.yaml b/static_core/plugins/ets/playground/backend/docker/config.yaml index f10af3b768..34690af55c 100644 --- a/static_core/plugins/ets/playground/backend/docker/config.yaml +++ b/static_core/plugins/ets/playground/backend/docker/config.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2024-2025 Huawei Device Co., Ltd. +# Copyright (c) 2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -23,155 +23,39 @@ options: values: [ 0,1,2 ] default: 2 syntax: - keywords: - - abstract - - alignof - - as - - assert - - async - - await - - break - - case - - catch - - class - - const - - constructor - - continue - - declare - - default - - do - - else - - enum - - export - - extends - - "false" - - final - - finally - - for - - from - - function - - get - - global - - if - - implements - - import - - in - - instanceof - - interface - - internal - - intrinsic - - is - - keyof - - let - - namespace - - native - - new - - "null" - - of - - out - - overload - - override - - package - - private - - protected - - public - - readonly - - require - - return - - set - - static - - struct - - super - - switch - - this - - throw - - "true" - - try - - type - - typeof - - undefined - - unreachable - - var - - while - - yield - - typeKeywords: - - Any - - Array - - BigInt - - Boolean - - Byte - - Char - - Double - - Float - - Int - - Long - - Number - - NonNullable - - Object - - Short - - String - - anyref - - bigint - - boolean - - byte - - char - - double - - f32 - - f64 - - float - - funcref - - i8 - - i16 - - i32 - - i64 - - isize - - int - - long - - number - - object - - short - - string - - u8 - - u16 - - u32 - - u64 - - usize - - v128 - - void - - builtins: - - Intl - - console - - Date - - Error - - Map - - Set - - Math - - tokenizer: - root: - - - "/[a-zA-Z_$][\\w$]*/" - - cases: - "@keywords": keyword - "@typeKeywords": type - "@builtins": type - "@default": identifier - - - "/[{}[\\]()]/" - - "@brackets" - - - "/\\b(NaN|Infinity)\\b/" - - number - - - "/0[xX][0-9a-fA-F]+n?|0[bB][01]+n?|0[oO][0-7]+n?|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+)?n?/" - - number - - - "/`(?:[^`\\\\]|\\\\.)*`/" - - string - - - "/'(?:[^'\\\\]|\\\\.)*'/" - - string - - - "/\".*?\"/" - - string - - - "/[;,.]/" - - delimiter - - - "/\/\/.*$/" - - comment - - - "/\\/\\*[\\s\\S]*?\\*\\//" - - comment + "tokenizer": { + "root": [ + [ + "/\\b(abstract|else|internal|static|as|enum|switch|async|export|let|super|await|extends|native|this|break|false|new|throw|case|final|null|true|class|for|override|try|const|function|package|undefined|constructor|if|private|while|continue|implements|protected|default|import|public|do|interface|return|boolean|double|number|byte|float|short|bigint|int|string|char|long|void|catch|namespace|throws)\\b/", + "keyword" + ], + [ + "/[{}[\\]()]/", + "@brackets" + ], + [ + "/[a-zA-Z_$][\\w$]*/", + "identifier" + ], + [ + "/\\d+/", + "number" + ], + [ + "/\".*?\"/", + "string" + ], + [ + "/[;,.]/", + "delimiter", + ], + [ + "/\/\/.*$/", + "comment" + ], + [ + "/\\/\\*[\\s\\S]*?\\*\\//", + "comment" + ] + ] + } diff --git a/static_core/plugins/ets/playground/backend/pyproject.toml b/static_core/plugins/ets/playground/backend/pyproject.toml index 652e7b763d..20c7937dc7 100644 --- a/static_core/plugins/ets/playground/backend/pyproject.toml +++ b/static_core/plugins/ets/playground/backend/pyproject.toml @@ -25,7 +25,7 @@ build-backend = "setuptools.build_meta" [tool.setuptools_scm] write_to = "src/arkts_playground/_version.py" -fallback_version = "0.0.4" +fallback_version = "0.0.3" version_scheme = "release-branch-semver" [project.scripts] diff --git a/static_core/plugins/ets/playground/backend/src/arkts_playground/config.py b/static_core/plugins/ets/playground/backend/src/arkts_playground/config.py index e6673d1079..a5cd3f7265 100644 --- a/static_core/plugins/ets/playground/backend/src/arkts_playground/config.py +++ b/static_core/plugins/ets/playground/backend/src/arkts_playground/config.py @@ -16,20 +16,17 @@ from argparse import ArgumentParser from functools import lru_cache -from typing import List, Optional, Tuple, Dict, Union +from typing import List, Optional, Tuple, Dict import yaml -from pydantic import BaseModel, Field +from pydantic import BaseModel from pydantic_settings import BaseSettings from .models.options import OptionModel class SyntaxModel(BaseModel): - keywords: List[str] - type_keywords: List[str] = Field(alias="typeKeywords") - builtins: List[str] - tokenizer: Dict[str, List[Tuple[str, Union[str, dict]]]] + tokenizer: Dict[str, List[Tuple[str, str]]] class Server(BaseModel): diff --git a/static_core/plugins/ets/playground/backend/src/arkts_playground/deps/runner.py b/static_core/plugins/ets/playground/backend/src/arkts_playground/deps/runner.py index 32bc8f3941..2e2464879a 100644 --- a/static_core/plugins/ets/playground/backend/src/arkts_playground/deps/runner.py +++ b/static_core/plugins/ets/playground/backend/src/arkts_playground/deps/runner.py @@ -220,7 +220,7 @@ class Runner: entry_point = f"{Path(abcfile_name).stem[:-4]}.ETSGLOBAL::main" run_cmd = [f"--boot-panda-files={self.stdlib_abc}", "--load-runtimes=ets"] if runtime_verify: - run_cmd += ["--verification-mode=ahead-of-time"] + run_cmd += ["--verification-mode=on-the-fly"] if self._icu_data: run_cmd.append(f"--icu-data-path={self._icu_data}") run_cmd.append(abcfile_name) diff --git a/static_core/plugins/ets/playground/backend/tests/fixtures/app.py b/static_core/plugins/ets/playground/backend/tests/fixtures/app.py index 96eb77a45c..856fa2172a 100644 --- a/static_core/plugins/ets/playground/backend/tests/fixtures/app.py +++ b/static_core/plugins/ets/playground/backend/tests/fixtures/app.py @@ -63,11 +63,33 @@ def conf_data_fixture(): "build": "str" }, "syntax": { - "keywords": [], - "typeKeywords": [], - "builtins": [], "tokenizer": { - "root": [] + "root": [ + [ + "/\\b(function|if|else|return|char|void)\\b/", + "keyword" + ], + [ + "[{}[\\]()]", + "@brackets" + ], + [ + "[a-zA-Z_$][\\w$]*", + "identifier" + ], + [ + "\\d+", + "number" + ], + [ + "/\".*?\"/", + "string" + ], + [ + "[;,.]", + "delimiter", + ] + ] } } } diff --git a/static_core/plugins/ets/playground/backend/tests/test_api.py b/static_core/plugins/ets/playground/backend/tests/test_api.py index b8a18786e3..cd3a69b9ee 100644 --- a/static_core/plugins/ets/playground/backend/tests/test_api.py +++ b/static_core/plugins/ets/playground/backend/tests/test_api.py @@ -21,13 +21,21 @@ from tests.fixtures.overrides import override_get_options def test_formatting_api(playground_client, monkeypatch): - expected = {"keywords": [], "typeKeywords": [], "builtins": [], "tokenizer": {"root": []}} + expected = { + "tokenizer": { + "root": [ + ["/\\b(function|if|else|return|char|void)\\b/", "keyword"], + ["[{}[\\]()]", "@brackets"], + ["[a-zA-Z_$][\\w$]*", "identifier"], + ["\\d+", "number"], + ["""/".*?"/""", "string"], + ["[;,.]", "delimiter"] + ] + } + } monkeypatch.setattr("src.arkts_playground.routers.formatting.get_syntax", lambda: expected) resp = playground_client.get("/syntax") - data = resp.json() - - expected_top_keys = {"keywords", "typeKeywords", "builtins", "tokenizer"} - assert expected_top_keys.issubset(data.keys()) + assert resp.json() == expected def test_options_api(playground_client, conf_data, monkeypatch): diff --git a/static_core/plugins/ets/playground/backend/tests/test_runner.py b/static_core/plugins/ets/playground/backend/tests/test_runner.py index 0c74fa252a..608c9ed917 100644 --- a/static_core/plugins/ets/playground/backend/tests/test_runner.py +++ b/static_core/plugins/ets/playground/backend/tests/test_runner.py @@ -289,7 +289,7 @@ async def test_run_with_verify_on_the_fly(monkeypatch, ark_build, ): return_code=0), FakeCommand(expected=str(ark_build[3]), opts=[f"--boot-panda-files={ark_build[4]}", "--load-runtimes=ets", - "--verification-mode=ahead-of-time", "ETSGLOBAL::main"], + "--verification-mode=on-the-fly", "ETSGLOBAL::main"], stderr=b"runtime verify error", return_code=1), diff --git a/static_core/plugins/ets/playground/frontend/public/env.js b/static_core/plugins/ets/playground/frontend/public/env.js deleted file mode 100644 index b2c881b3c6..0000000000 --- a/static_core/plugins/ets/playground/frontend/public/env.js +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright (c) 2024 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -window.runEnv = { - apiUrl: '/', -}; diff --git a/static_core/plugins/ets/playground/frontend/src/index.css b/static_core/plugins/ets/playground/frontend/src/index.css index c5fa5b5449..9fa4bf2e54 100644 --- a/static_core/plugins/ets/playground/frontend/src/index.css +++ b/static_core/plugins/ets/playground/frontend/src/index.css @@ -71,7 +71,3 @@ a { .monaco-editor .scroll-decoration { box-shadow: none !important; } - -.mosaic-window, .mosaic-preview { - overflow: unset !important; -} \ No newline at end of file diff --git a/static_core/plugins/ets/playground/frontend/src/models/logs.ts b/static_core/plugins/ets/playground/frontend/src/models/logs.ts index 56b1362d21..fd8997712e 100644 --- a/static_core/plugins/ets/playground/frontend/src/models/logs.ts +++ b/static_core/plugins/ets/playground/frontend/src/models/logs.ts @@ -18,7 +18,6 @@ import { setCompileErrLogs, setCompileOutLogs, setDisasmErrLogs, setDisasmOutLogs, setErrLogs, - setHighlightErrors, setOutLogs, setRunErrLogs, setRunOutLogs, @@ -77,27 +76,6 @@ export interface IApiResponse { }; } -const collectHighlights = (str?: string): { message: string; line: number; column: number }[] => { - if (!str) return []; - const re = - /(?\w+(?:Error|Exception|Warning|Notice|Info|Debug|Fatal)?):\s+(?[\s\S]*?)\s+\[(?[^\[\]]+?):(?\d+):(?\d+)\]/g; - - const out: { message: string; line: number; column: number, type: string }[] = []; - const arr = [...str.matchAll(re)] - for (const m of arr) { - const { type, msg, file, line, col } = m.groups as { - type: string; msg: string; file: string; line: string; col: string; - }; - out.push({ - message: `${type}: ${msg.trim()} [${file}:${line}:${col}]`, - line: Number(line), - column: Number(col), - type: type - }); - } - return out; - }; - export const handleResponseLogs = createAsyncThunk( 'logs/compileLogs', async (response: IApiResponse, thunkAPI) => { @@ -206,9 +184,6 @@ export const handleResponseLogs = createAsyncThunk( }) )); } - const outHighlight = collectHighlights(data.output) - const errHighlight = collectHighlights(data.error) - thunkAPI.dispatch(setHighlightErrors([...outHighlight, ...errHighlight])); }; handleLog( diff --git a/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.test.tsx b/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.test.tsx index bd1914510c..f8005c3f62 100644 --- a/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.test.tsx +++ b/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.test.tsx @@ -13,6 +13,7 @@ * limitations under the License. */ +import React from 'react'; import { render, screen } from '@testing-library/react'; import ArkTSEditor from './ArkTSEditor'; import { Provider } from 'react-redux'; @@ -43,8 +44,7 @@ describe('ArkTSEditor component', () => { appState: { theme: 'light', primaryColor: '#e32b49', disasm: false }, code: { compileLoading: false, runLoading: false, code: '' }, options: { isLoading: false, options: [], pickedOptions: [] }, - syntax: { isLoading: false, syntax }, - logs: {out: [], err: [], highlightErrors: []} + syntax: { isLoading: false, syntax } }); store.dispatch = jest.fn(); }); diff --git a/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.tsx b/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.tsx index 6aae25a89e..810027a0f7 100644 --- a/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.tsx +++ b/static_core/plugins/ets/playground/frontend/src/pages/codeEditor/ArkTSEditor.tsx @@ -23,9 +23,7 @@ import {setCodeAction} from '../../store/actions/code'; import {AppDispatch} from '../../store'; import debounce from 'lodash.debounce'; import * as monaco from 'monaco-editor'; -import { editor as monacoEditor } from 'monaco-editor'; import { loader } from '@monaco-editor/react'; -import { selectHighlightErrors } from '../../store/selectors/logs'; loader.config({ monaco }); @@ -35,8 +33,6 @@ const ArkTSEditor: React.FC = () => { const dispatch = useDispatch(); const {theme} = useTheme(); const [syn, setSyn] = useState(backendSyntax); - const highlightErrors = useSelector(selectHighlightErrors); - const [editorInstance, setEditorInstance] = useState(null); useEffect(() => { setSyn(backendSyntax); @@ -85,34 +81,8 @@ const ArkTSEditor: React.FC = () => { dispatch(setCodeAction(value)); }, 300); - useEffect(() => { - if (!monaco || !editorInstance) { - return; - } - const model = editorInstance.getModel(); - if (!model) { - return; - } - const markers: monaco.editor.IMarkerData[] = highlightErrors.map(err => ({ - startLineNumber: err.line, - startColumn: err.column, - endLineNumber: err.line, - endColumn: err.column + 1, - message: err.message, - severity: err.type === 'Warning' - ? monaco.MarkerSeverity.Warning - : monaco.MarkerSeverity.Error - }) - ); - - monacoEditor.setModelMarkers(model, 'arkts', markers); - }, [highlightErrors, monaco, editorInstance]); - return ( { - setEditorInstance(editor); - }} defaultLanguage="arkts" defaultValue={'console.log("Hello, ArkTS!");'} theme={theme === 'dark' ? 'vs-dark' : 'light'} diff --git a/static_core/plugins/ets/playground/frontend/src/store/actions/code.ts b/static_core/plugins/ets/playground/frontend/src/store/actions/code.ts index ef27c2d232..e2c0ceb1d5 100644 --- a/static_core/plugins/ets/playground/frontend/src/store/actions/code.ts +++ b/static_core/plugins/ets/playground/frontend/src/store/actions/code.ts @@ -20,7 +20,6 @@ import {handleResponseLogs} from '../../models/logs'; import { RootState } from '..'; import { clearErrLogs, clearOutLogs } from './logs'; import { setOptionsPicked } from '../slices/options'; -import { setClearHighLightErrs } from '../slices/logs'; export const fetchCompileCode = createAsyncThunk( '@code/compileCode', @@ -33,7 +32,6 @@ export const fetchCompileCode = createAsyncThunk( const appState = state?.appState || false; const logsState = state?.logs || []; const optionsState = state.options || {}; - thunkAPI.dispatch(setClearHighLightErrs([])); if (appState.clearLogsEachRun) { thunkAPI.dispatch(clearOutLogs()); thunkAPI.dispatch(clearErrLogs()); @@ -65,7 +63,6 @@ export const fetchRunCode = createAsyncThunk( const appState = state?.appState || false; const logsState = state?.logs; const optionsState = state?.options || {}; - thunkAPI.dispatch(setClearHighLightErrs([])); if (appState.clearLogsEachRun) { thunkAPI.dispatch(clearOutLogs()); thunkAPI.dispatch(clearErrLogs()); diff --git a/static_core/plugins/ets/playground/frontend/src/store/actions/logs.ts b/static_core/plugins/ets/playground/frontend/src/store/actions/logs.ts index 294895508e..d608f9e0d5 100644 --- a/static_core/plugins/ets/playground/frontend/src/store/actions/logs.ts +++ b/static_core/plugins/ets/playground/frontend/src/store/actions/logs.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024-2025 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -15,7 +15,6 @@ import { createAsyncThunk } from '@reduxjs/toolkit'; import { - setClearHighLightErrs, setCompileErrLogs, setCompileOutLogs, setDisasmErrLogs, setDisasmOutLogs, setErrLogs, @@ -31,7 +30,6 @@ export const clearOutLogs = createAsyncThunk( thunkAPI.dispatch(setRunOutLogs([])); thunkAPI.dispatch(setDisasmOutLogs([])); thunkAPI.dispatch(setOutLogs([])); - thunkAPI.dispatch(setClearHighLightErrs([])); }, ); export const clearErrLogs = createAsyncThunk( @@ -41,6 +39,5 @@ export const clearErrLogs = createAsyncThunk( thunkAPI.dispatch(setRunErrLogs([])); thunkAPI.dispatch(setDisasmErrLogs([])); thunkAPI.dispatch(setErrLogs([])); - thunkAPI.dispatch(setClearHighLightErrs([])); }, ); diff --git a/static_core/plugins/ets/playground/frontend/src/store/selectors/appState.test.ts b/static_core/plugins/ets/playground/frontend/src/store/selectors/appState.test.ts index 7cd02f4720..1e061462f9 100644 --- a/static_core/plugins/ets/playground/frontend/src/store/selectors/appState.test.ts +++ b/static_core/plugins/ets/playground/frontend/src/store/selectors/appState.test.ts @@ -56,7 +56,6 @@ export const mockAllState: RootState = { verifierErr: [], out: [], err: [], - highlightErrors: [] }, }; describe('Redux Selectors', () => { diff --git a/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.test.ts b/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.test.ts index 42886d19f9..d36d7b867e 100644 --- a/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.test.ts +++ b/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.test.ts @@ -22,7 +22,6 @@ import { selectDisasmErrLogs, selectOutLogs, selectErrLogs, - selectHighlightErrors, } from './logs'; import { RootState } from '..'; import {mockAllState} from './appState.test'; @@ -43,7 +42,6 @@ describe('Log Selectors', () => { verifierErr: [{ message: 'verifier error log', isRead: false }], out: [{ message: 'general output log', isRead: true }], err: [{ message: 'general error log', isRead: false }], - highlightErrors: [] }, }; }); @@ -87,12 +85,4 @@ describe('Log Selectors', () => { expect(selectErrLogs(mockState)) .toEqual([{ message: 'general error log', isRead: false }]); }); - it('should select highlight errors', () => { - mockState.logs.highlightErrors = [ - { line: 1, column: 2, message: 'Syntax error' }, - ]; - expect(selectHighlightErrors(mockState)).toEqual([ - { line: 1, column: 2, message: 'Syntax error' }, - ]); - }); }); diff --git a/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.ts b/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.ts index 0837c99483..2689794ecb 100644 --- a/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.ts +++ b/static_core/plugins/ets/playground/frontend/src/store/selectors/logs.ts @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024-2025 Huawei Device Co., Ltd. + * Copyright (c) 2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -15,7 +15,6 @@ import { RootState } from '..'; import { ILog } from '../../models/logs'; -import { HighlightError } from '../slices/logs'; export const selectCompileOutLogs = (state: RootState): ILog[] => state.logs.compileOut; export const selectCompileErrLogs = (state: RootState): ILog[] => state.logs.compileErr; @@ -25,4 +24,3 @@ export const selectDisasmOutLogs = (state: RootState): ILog[] => state.logs.disa export const selectDisasmErrLogs = (state: RootState): ILog[] => state.logs.disasmErr; export const selectOutLogs = (state: RootState): ILog[] => state.logs.out; export const selectErrLogs = (state: RootState): ILog[] => state.logs.err; -export const selectHighlightErrors = (state: RootState): HighlightError[] => state.logs.highlightErrors; diff --git a/static_core/plugins/ets/playground/frontend/src/store/slices/logs.ts b/static_core/plugins/ets/playground/frontend/src/store/slices/logs.ts index ec8d7bd3fd..3f09d56d8b 100644 --- a/static_core/plugins/ets/playground/frontend/src/store/slices/logs.ts +++ b/static_core/plugins/ets/playground/frontend/src/store/slices/logs.ts @@ -27,14 +27,6 @@ interface IState { verifierErr: ILog[] out: ILog[] err: ILog[] - highlightErrors: HighlightError[]; -} - -export interface HighlightError { - message: string; - line: number; - column: number; - type?: string } const initialState: IState = { @@ -47,8 +39,7 @@ const initialState: IState = { verifierOut: [], verifierErr: [], out: [], - err: [], - highlightErrors: [] + err: [] }; const logsSlice = createSlice({ @@ -85,12 +76,6 @@ const logsSlice = createSlice({ setErrLogs(state, action: PayloadAction) { state.err = action.payload; }, - setHighlightErrors: (state, action) => { - state.highlightErrors = state.highlightErrors.concat(action.payload); - }, - setClearHighLightErrs: (state, action) => { - state.highlightErrors = []; - } } }); @@ -104,9 +89,7 @@ export const { setVerifierOutLogs, setVerifierErrLogs, setOutLogs, - setErrLogs, - setHighlightErrors, - setClearHighLightErrs + setErrLogs } = logsSlice.actions; export default logsSlice.reducer; diff --git a/static_core/plugins/ets/playground/frontend/tsconfig.json b/static_core/plugins/ets/playground/frontend/tsconfig.json index 21eaa394d0..ef4874261b 100644 --- a/static_core/plugins/ets/playground/frontend/tsconfig.json +++ b/static_core/plugins/ets/playground/frontend/tsconfig.json @@ -15,9 +15,8 @@ { "compilerOptions": { - "target": "es2020", + "target": "es5", "lib": [ - "es2020", "dom", "dom.iterable", "esnext" diff --git a/static_core/plugins/ets/runtime/CMakeLists.txt b/static_core/plugins/ets/runtime/CMakeLists.txt index e722f281eb..5d9a0a17fb 100644 --- a/static_core/plugins/ets/runtime/CMakeLists.txt +++ b/static_core/plugins/ets/runtime/CMakeLists.txt @@ -14,18 +14,14 @@ set(ETS_EXT_SOURCES ${PANDA_ETS_PLUGIN_SOURCE}/runtime) set(ETS_RUNTIME_SOURCES - ${PANDA_ETS_PLUGIN_SOURCE}/dfx/heap_helpers.cpp ${ETS_EXT_SOURCES}/ani/ani_interaction_api.cpp ${ETS_EXT_SOURCES}/ani/ani_mangle.cpp - ${ETS_EXT_SOURCES}/ani/ani_options.cpp - ${ETS_EXT_SOURCES}/ani/ani_options_parser.cpp ${ETS_EXT_SOURCES}/ani/ani_vm_api.cpp ${ETS_EXT_SOURCES}/ets_annotation.cpp ${ETS_EXT_SOURCES}/ets_class_linker.cpp ${ETS_EXT_SOURCES}/ets_class_linker_context.cpp ${ETS_EXT_SOURCES}/ets_class_linker_extension.cpp ${ETS_EXT_SOURCES}/ets_exceptions.cpp - ${ETS_EXT_SOURCES}/ets_itable_builder.cpp ${ETS_EXT_SOURCES}/ets_language_context.cpp ${ETS_EXT_SOURCES}/ets_napi_env.cpp ${ETS_EXT_SOURCES}/ets_native_library.cpp @@ -34,22 +30,20 @@ set(ETS_RUNTIME_SOURCES ${ETS_EXT_SOURCES}/ets_namespace_manager_impl.cpp ${ETS_EXT_SOURCES}/ets_platform_types.cpp ${ETS_EXT_SOURCES}/ets_runtime_interface.cpp - ${ETS_EXT_SOURCES}/ets_stdlib_cache.cpp - ${ETS_EXT_SOURCES}/ets_stubs.cpp ${ETS_EXT_SOURCES}/ets_vm.cpp - ${ETS_EXT_SOURCES}/ets_vtable_builder.cpp + ${ETS_EXT_SOURCES}/ets_stubs.cpp ${ETS_EXT_SOURCES}/integrate/ets_ani_expo.cpp ${ETS_EXT_SOURCES}/intrinsics/std_core.cpp + ${ETS_EXT_SOURCES}/ets_itable_builder.cpp + ${ETS_EXT_SOURCES}/ets_vtable_builder.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_Array.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_ArrayBuffer.cpp - ${ETS_EXT_SOURCES}/intrinsics/escompat_RegExp.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_TypedArrays.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_Date.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_JSON.cpp + ${ETS_EXT_SOURCES}/intrinsics/escompat_RegExp.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_taskpool.cpp ${ETS_EXT_SOURCES}/intrinsics/escompat_Reflect.cpp - ${ETS_EXT_SOURCES}/intrinsics/escompat_Map.cpp - ${ETS_EXT_SOURCES}/intrinsics/escompat_Set.cpp ${ETS_EXT_SOURCES}/intrinsics/compiler_intrinsics.cpp ${ETS_EXT_SOURCES}/intrinsics/debugger_api.cpp ${ETS_EXT_SOURCES}/intrinsics/std_core_AniHelpers.cpp @@ -90,10 +84,15 @@ set(ETS_RUNTIME_SOURCES ${ETS_EXT_SOURCES}/intrinsics/helpers/ets_to_string_cache.cpp ${ETS_EXT_SOURCES}/intrinsics/helpers/json_helper.cpp ${ETS_EXT_SOURCES}/finalreg/finalization_registry_manager.cpp - ${ETS_EXT_SOURCES}/unhandled_manager/unhandled_object_manager.cpp - ${ETS_EXT_SOURCES}/mem/ets_gc_stat.cpp ${ETS_EXT_SOURCES}/mem/ets_reference_processor.cpp - ${ETS_EXT_SOURCES}/ani/ani_helpers.cpp + ${ETS_EXT_SOURCES}/napi/ets_napi_helpers.cpp + ${ETS_EXT_SOURCES}/napi/ets_napi_invoke_interface.cpp + ${ETS_EXT_SOURCES}/napi/ets_napi_native_interface.cpp + ${ETS_EXT_SOURCES}/napi/ets_mangle.cpp + ${ETS_EXT_SOURCES}/regexp/regexp_executor.cpp + ${ETS_EXT_SOURCES}/regexp/regexp.cpp + ${ETS_EXT_SOURCES}/regexp/regexp_16.cpp + ${ETS_EXT_SOURCES}/regexp/regexp_8.cpp ${ETS_EXT_SOURCES}/ets_coroutine.cpp ${ETS_EXT_SOURCES}/ets_entrypoints.cpp ${ETS_EXT_SOURCES}/types/ets_class.cpp @@ -104,27 +103,20 @@ set(ETS_RUNTIME_SOURCES ${ETS_EXT_SOURCES}/types/ets_object.cpp ${ETS_EXT_SOURCES}/types/ets_sync_primitives.cpp ${ETS_EXT_SOURCES}/types/ets_string_builder.cpp - ${ETS_EXT_SOURCES}/types/ets_string.cpp ${ETS_EXT_SOURCES}/types/ets_typeapi_create.cpp ${ETS_EXT_SOURCES}/types/ets_typeapi_field.cpp ${ETS_EXT_SOURCES}/types/ets_typeapi_method.cpp ${ETS_EXT_SOURCES}/types/ets_typeapi_parameter.cpp ${ETS_EXT_SOURCES}/types/ets_waiters_list.cpp + ${ETS_EXT_SOURCES}/types/ets_weak_reference.cpp ${ETS_EXT_SOURCES}/types/ets_finalizable_weak_ref.cpp ${ETS_EXT_SOURCES}/types/ets_job.cpp - ${ETS_EXT_SOURCES}/types/ets_map.cpp ${ETS_EXT_SOURCES}/ets_vm_api.cpp ${ETS_EXT_SOURCES}/ets_utils.cpp ${ETS_EXT_SOURCES}/ets_object_state_info.cpp ${ETS_EXT_SOURCES}/ets_object_state_table.cpp - ${ETS_EXT_SOURCES}/static_object_accessor.cpp - ${ETS_EXT_SOURCES}/static_type_converter.cpp ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/init_native_methods.cpp ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/escompat/Process.cpp - ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/escompat/RegExp.cpp - ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/escompat/regexp/regexp.cpp - ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/escompat/regexp/regexp_16.cpp - ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/escompat/regexp/regexp_8.cpp ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/etsstdlib.cpp ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/core/Intl.cpp ${PANDA_ETS_PLUGIN_SOURCE}/stdlib/native/core/IntlCommon.cpp @@ -149,20 +141,20 @@ get_directory_property(CURRENT_DEFS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMPIL if (PANDA_TARGET_ARM32_ABI_SOFT OR PANDA_TARGET_ARM32_ABI_SOFTFP) list (APPEND ETS_RUNTIME_SOURCES - ${ETS_EXT_SOURCES}/ani/arch/arm32/ets_async_entry_point_arm32.S - ${ETS_EXT_SOURCES}/ani/arch/arm32/ets_napi_entry_point_arm32.S) + ${ETS_EXT_SOURCES}/napi/arch/arm32/ets_async_entry_point_arm32.S + ${ETS_EXT_SOURCES}/napi/arch/arm32/ets_napi_entry_point_arm32.S) elseif(PANDA_TARGET_ARM32_ABI_HARD) list (APPEND ETS_RUNTIME_SOURCES - ${ETS_EXT_SOURCES}/ani/arch/arm32/ets_async_entry_point_arm32hf.S - ${ETS_EXT_SOURCES}/ani/arch/arm32/ets_napi_entry_point_arm32hf.S) + ${ETS_EXT_SOURCES}/napi/arch/arm32/ets_async_entry_point_arm32hf.S + ${ETS_EXT_SOURCES}/napi/arch/arm32/ets_napi_entry_point_arm32hf.S) elseif(PANDA_TARGET_ARM64) list (APPEND ETS_RUNTIME_SOURCES - ${ETS_EXT_SOURCES}/ani/arch/arm64/ets_async_entry_point_aarch64.S - ${ETS_EXT_SOURCES}/ani/arch/arm64/ets_napi_entry_point_aarch64.S) + ${ETS_EXT_SOURCES}/napi/arch/arm64/ets_async_entry_point_aarch64.S + ${ETS_EXT_SOURCES}/napi/arch/arm64/ets_napi_entry_point_aarch64.S) elseif (PANDA_TARGET_AMD64) list (APPEND ETS_RUNTIME_SOURCES - ${ETS_EXT_SOURCES}/ani/arch/amd64/ets_async_entry_point_amd64.S - ${ETS_EXT_SOURCES}/ani/arch/amd64/ets_napi_entry_point_amd64.S) + ${ETS_EXT_SOURCES}/napi/arch/amd64/ets_async_entry_point_amd64.S + ${ETS_EXT_SOURCES}/napi/arch/amd64/ets_napi_entry_point_amd64.S) endif() if (PANDA_TARGET_OHOS) @@ -177,7 +169,6 @@ panda_target_include_directories(arkruntime_obj PUBLIC ${PANDA_BINARY_ROOT}/ # The line below needed only for stdlib. It must be removed after stdlib separation from runtime is implemented(#18135). ${PANDA_ETS_PLUGIN_SOURCE}/runtime/ani/ - ${PANDA_ROOT}/../common_interfaces ) add_dependencies(arkruntime_obj es2panda-public) panda_target_link_libraries(arkruntime_obj es2panda-public arkassembler) @@ -197,6 +188,7 @@ if (PANDA_ETS_INTEROP_JS) add_subdirectory(interop_js) endif() +add_subdirectory(napi) add_subdirectory(libani_helpers) set(IRTOC_ETS_SCRIPTS ${PANDA_ROOT}/plugins/ets/irtoc_scripts) @@ -205,9 +197,6 @@ if(NOT (CMAKE_CROSSCOMPILING OR PANDA_TARGET_OHOS)) irtoc_compile(TARGET_NAME irtoc_ets_fastpath INPUT_FILES ${IRTOC_ETS_SCRIPTS}/to_string_cache.irt ${IRTOC_ETS_SCRIPTS}/typed_arrays.irt - ${IRTOC_ETS_SCRIPTS}/escompat_array.irt - ${IRTOC_ETS_SCRIPTS}/map.irt - ${IRTOC_ETS_SCRIPTS}/set.irt TARGET_VARIABLE IRTOC_ETS_FASTPATH_OBJ TARGET_VARIABLE_LLVM IRTOC_ETS_FASTPATH_LLVM_OBJ) @@ -254,5 +243,3 @@ endif() panda_target_sources(arkruntime_interpreter_static PRIVATE ${IRTOC_ETS_FASTPATH_OBJ} ${IRTOC_ETS_LLVM_OBJECTS}) panda_target_sources(arkruntime_static PRIVATE ${IRTOC_ETS_FASTPATH_OBJ} ${IRTOC_ETS_LLVM_OBJECTS}) - -panda_target_link_libraries(arkruntime_obj ani_interface) diff --git a/static_core/plugins/ets/runtime/ani/ani.h b/static_core/plugins/ets/runtime/ani/ani.h index 37c1791a7f..86561b2656 100644 --- a/static_core/plugins/ets/runtime/ani/ani.h +++ b/static_core/plugins/ets/runtime/ani/ani.h @@ -71,6 +71,7 @@ class __ani_arraybuffer : public __ani_object {}; class __ani_string : public __ani_object {}; class __ani_class : public __ani_type {}; class __ani_enum : public __ani_type {}; +class __ani_union : public __ani_type {}; class __ani_array : public __ani_object {}; class __ani_array_boolean : public __ani_array {}; class __ani_array_char : public __ani_array {}; @@ -81,16 +82,6 @@ class __ani_array_long : public __ani_array {}; class __ani_array_float : public __ani_array {}; class __ani_array_double : public __ani_array {}; class __ani_array_ref : public __ani_array {}; -class __ani_fixedarray : public __ani_object {}; -class __ani_fixedarray_boolean : public __ani_fixedarray {}; -class __ani_fixedarray_char : public __ani_fixedarray {}; -class __ani_fixedarray_byte : public __ani_fixedarray {}; -class __ani_fixedarray_short : public __ani_fixedarray {}; -class __ani_fixedarray_int : public __ani_fixedarray {}; -class __ani_fixedarray_long : public __ani_fixedarray {}; -class __ani_fixedarray_float : public __ani_fixedarray {}; -class __ani_fixedarray_double : public __ani_fixedarray {}; -class __ani_fixedarray_ref : public __ani_fixedarray {}; typedef __ani_ref *ani_ref; typedef __ani_module *ani_module; typedef __ani_namespace *ani_namespace; @@ -104,6 +95,7 @@ typedef __ani_arraybuffer *ani_arraybuffer; typedef __ani_string *ani_string; typedef __ani_class *ani_class; typedef __ani_enum *ani_enum; +typedef __ani_union *ani_union; typedef __ani_array *ani_array; typedef __ani_array_boolean *ani_array_boolean; typedef __ani_array_char *ani_array_char; @@ -114,16 +106,6 @@ typedef __ani_array_long *ani_array_long; typedef __ani_array_float *ani_array_float; typedef __ani_array_double *ani_array_double; typedef __ani_array_ref *ani_array_ref; -typedef __ani_fixedarray *ani_fixedarray; -typedef __ani_fixedarray_boolean *ani_fixedarray_boolean; -typedef __ani_fixedarray_char *ani_fixedarray_char; -typedef __ani_fixedarray_byte *ani_fixedarray_byte; -typedef __ani_fixedarray_short *ani_fixedarray_short; -typedef __ani_fixedarray_int *ani_fixedarray_int; -typedef __ani_fixedarray_long *ani_fixedarray_long; -typedef __ani_fixedarray_float *ani_fixedarray_float; -typedef __ani_fixedarray_double *ani_fixedarray_double; -typedef __ani_fixedarray_ref *ani_fixedarray_ref; #else // __cplusplus struct __ani_ref; typedef struct __ani_ref *ani_ref; @@ -139,6 +121,7 @@ typedef ani_object ani_arraybuffer; typedef ani_object ani_string; typedef ani_type ani_class; typedef ani_type ani_enum; +typedef ani_type ani_union; typedef ani_object ani_array; typedef ani_array ani_array_boolean; typedef ani_array ani_array_char; @@ -149,16 +132,6 @@ typedef ani_array ani_array_long; typedef ani_array ani_array_float; typedef ani_array ani_array_double; typedef ani_array ani_array_ref; -typedef ani_object ani_fixedarray; -typedef ani_fixedarray ani_fixedarray_boolean; -typedef ani_fixedarray ani_fixedarray_char; -typedef ani_fixedarray ani_fixedarray_byte; -typedef ani_fixedarray ani_fixedarray_short; -typedef ani_fixedarray ani_fixedarray_int; -typedef ani_fixedarray ani_fixedarray_long; -typedef ani_fixedarray ani_fixedarray_float; -typedef ani_fixedarray ani_fixedarray_double; -typedef ani_fixedarray ani_fixedarray_ref; #endif // __cplusplus struct __ani_wref; @@ -185,6 +158,8 @@ typedef struct __ani_static_method *ani_static_method; struct __ani_resolver; typedef struct __ani_resolver *ani_resolver; +typedef void (*ani_finalizer)(void *data, void *hint); + typedef union { ani_boolean z; ani_char c; @@ -963,7 +938,7 @@ struct __ani_interaction_api { ani_status (*Array_GetLength)(ani_env *env, ani_array array, ani_size *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of booleans. + * @brief Creates a new array of booleans. * * This function creates a new array of the specified length for boolean values. * @@ -971,13 +946,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Boolean)(ani_env *env, ani_size length, ani_array_boolean *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of characters. + * @brief Creates a new array of characters. * * This function creates a new array of the specified length for character values. * @@ -985,13 +958,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Char)(ani_env *env, ani_size length, ani_array_char *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of bytes. + * @brief Creates a new array of bytes. * * This function creates a new array of the specified length for byte values. * @@ -999,13 +970,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Byte)(ani_env *env, ani_size length, ani_array_byte *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of shorts. + * @brief Creates a new array of shorts. * * This function creates a new array of the specified length for short integer values. * @@ -1013,13 +982,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Short)(ani_env *env, ani_size length, ani_array_short *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of integers. + * @brief Creates a new array of integers. * * This function creates a new array of the specified length for integer values. * @@ -1027,13 +994,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Int)(ani_env *env, ani_size length, ani_array_int *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of long integers. + * @brief Creates a new array of long integers. * * This function creates a new array of the specified length for long integer values. * @@ -1041,13 +1006,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Long)(ani_env *env, ani_size length, ani_array_long *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of floats. + * @brief Creates a new array of floats. * * This function creates a new array of the specified length for float values. * @@ -1055,13 +1018,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Float)(ani_env *env, ani_size length, ani_array_float *result); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of doubles. + * @brief Creates a new array of doubles. * * This function creates a new array of the specified length for double values. * @@ -1069,14 +1030,11 @@ struct __ani_interaction_api { * @param[in] length The length of the array to be created. * @param[out] result A pointer to store the created array. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Double)(ani_env *env, ani_size length, ani_array_double *result); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of boolean values from an - * array. + * @brief Retrieves a region of boolean values from an array. * * This function retrieves a portion of the specified boolean array into a native buffer. * @@ -1086,15 +1044,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved boolean values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Boolean)(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length, ani_boolean *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of character values from an - * array. + * @brief Retrieves a region of character values from an array. * * This function retrieves a portion of the specified character array into a native buffer. * @@ -1104,15 +1059,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved character values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Char)(ani_env *env, ani_array_char array, ani_size offset, ani_size length, ani_char *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of byte values from an - * array. + * @brief Retrieves a region of byte values from an array. * * This function retrieves a portion of the specified byte array into a native buffer. * @@ -1122,15 +1074,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved byte values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Byte)(ani_env *env, ani_array_byte array, ani_size offset, ani_size length, ani_byte *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of short values from an - * array. + * @brief Retrieves a region of short values from an array. * * This function retrieves a portion of the specified short array into a native buffer. * @@ -1140,15 +1089,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved short values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Short)(ani_env *env, ani_array_short array, ani_size offset, ani_size length, ani_short *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of integer values from an - * array. + * @brief Retrieves a region of integer values from an array. * * This function retrieves a portion of the specified integer array into a native buffer. * @@ -1158,15 +1104,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved integer values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Int)(ani_env *env, ani_array_int array, ani_size offset, ani_size length, ani_int *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of long integer values from - * an array. + * @brief Retrieves a region of long integer values from an array. * * This function retrieves a portion of the specified long integer array into a native buffer. * @@ -1176,15 +1119,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved long integer values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Long)(ani_env *env, ani_array_long array, ani_size offset, ani_size length, ani_long *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of float values from an - * array. + * @brief Retrieves a region of float values from an array. * * This function retrieves a portion of the specified float array into a native buffer. * @@ -1194,15 +1134,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved float values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Float)(ani_env *env, ani_array_float array, ani_size offset, ani_size length, ani_float *native_buffer); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a region of double values from an - * array. + * @brief Retrieves a region of double values from an array. * * This function retrieves a portion of the specified double array into a native buffer. * @@ -1212,14 +1149,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to retrieve. * @param[out] native_buffer A buffer to store the retrieved double values. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_GetRegion_Double)(ani_env *env, ani_array_double array, ani_size offset, ani_size length, ani_double *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of boolean values in an array. + * @brief Sets a region of boolean values in an array. * * This function sets a portion of the specified boolean array using a native buffer. * @@ -1229,14 +1164,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the boolean values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Boolean)(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length, const ani_boolean *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of character values in an array. + * @brief Sets a region of character values in an array. * * This function sets a portion of the specified character array using a native buffer. * @@ -1246,14 +1179,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the character values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Char)(ani_env *env, ani_array_char array, ani_size offset, ani_size length, const ani_char *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of byte values in an array. + * @brief Sets a region of byte values in an array. * * This function sets a portion of the specified byte array using a native buffer. * @@ -1263,14 +1194,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the byte values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Byte)(ani_env *env, ani_array_byte array, ani_size offset, ani_size length, const ani_byte *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of short values in an array. + * @brief Sets a region of short values in an array. * * This function sets a portion of the specified short array using a native buffer. * @@ -1280,14 +1209,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the short values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Short)(ani_env *env, ani_array_short array, ani_size offset, ani_size length, const ani_short *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of integer values in an array. + * @brief Sets a region of integer values in an array. * * This function sets a portion of the specified integer array using a native buffer. * @@ -1297,15 +1224,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the integer values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Int)(ani_env *env, ani_array_int array, ani_size offset, ani_size length, const ani_int *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of long integer values in an - * array. + * @brief Sets a region of long integer values in an array. * * This function sets a portion of the specified long integer array using a native buffer. * @@ -1315,14 +1239,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the long integer values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Long)(ani_env *env, ani_array_long array, ani_size offset, ani_size length, const ani_long *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of float values in an array. + * @brief Sets a region of float values in an array. * * This function sets a portion of the specified float array using a native buffer. * @@ -1332,14 +1254,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the float values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Float)(ani_env *env, ani_array_float array, ani_size offset, ani_size length, const ani_float *native_buffer); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a region of double values in an array. + * @brief Sets a region of double values in an array. * * This function sets a portion of the specified double array using a native buffer. * @@ -1349,14 +1269,12 @@ struct __ani_interaction_api { * @param[in] length The number of elements to set. * @param[in] native_buffer A buffer containing the double values to set. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_SetRegion_Double)(ani_env *env, ani_array_double array, ani_size offset, ani_size length, const ani_double *native_buffer); /** - * @brief This function is deprecated, please use Array_New instead. Creates a new array of references. + * @brief Creates a new array of references. * * This function creates a new array of references, optionally initializing it with an array of references. * @@ -1366,15 +1284,12 @@ struct __ani_interaction_api { * @param[in] initial_element An optional reference to initialize the array. Can be null. * @param[out] result A pointer to store the created array of references. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result); /** - * @brief This function is deprecated, please use Array_Set instead. Sets a reference at a specific index in an - * array. + * @brief Sets a reference at a specific index in an array. * * This function sets the value of a reference at the specified index in the array. * @@ -1383,14 +1298,11 @@ struct __ani_interaction_api { * @param[in] index The index at which to set the reference. * @param[in] ref The reference to set at the specified index. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_Set_Ref)(ani_env *env, ani_array_ref array, ani_size index, ani_ref ref); /** - * @brief This function is deprecated, please use Array_Get instead. Retrieves a reference from a specific index in - * an array. + * @brief Retrieves a reference from a specific index in an array. * * This function retrieves the value of a reference at the specified index in the array. * @@ -1399,463 +1311,9 @@ struct __ani_interaction_api { * @param[in] index The index from which to retrieve the reference. * @param[out] result A pointer to store the retrieved reference. * @return Returns a status code of type `ani_status` indicating success or failure. - * - * @deprecated */ ani_status (*Array_Get_Ref)(ani_env *env, ani_array_ref array, ani_size index, ani_ref *result); - /** - * @brief Creates a new array - * - * This function creates a new array of the specified length. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the array to be created. - * @param[in] initial_element Element the array will be initialized with - * @param[out] result A pointer to store the created array. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Array_New)(ani_env *env, ani_size length, ani_ref initial_element, ani_array *result); - - /** - * @brief Sets a value to an array. - * - * This function sets a value to array from an ani_ref value. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The array to retrieve values from. - * @param[in] index The index of element to retrieve. - * @param[in] ref Value to set - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Array_Set)(ani_env *env, ani_array array, ani_size index, ani_ref ref); - - /** - * @brief Retrieves a value from an array. - * - * This function retrieves a value from array into an ani_ref pointer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The array to retrieve values from. - * @param[in] index The index of element to retrieve. - * @param[out] result A pointer to store the retrieved value. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Array_Get)(ani_env *env, ani_array array, ani_size index, ani_ref *result); - - /** - * @brief Push a value to the end of array. - * - * This function pushes value from an ani_ref to the end of array. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The array to retrieve values from. - * @param[in] ref Value to set - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Array_Push)(ani_env *env, ani_array array, ani_ref ref); - - /** - * @brief Retrieves the last element and erases it from array. - * - * This function retrieves the last element and erases it from array. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The array whose last element is to be retrieved. - * @param[out] result A pointer to store the last element of the array. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Array_Pop)(ani_env *env, ani_array array, ani_ref *result); - - /** - * @brief Retrieves the length of an fixedarray. - * - * This function retrieves the length of the specified array. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray whose length is to be retrieved. - * @param[out] result A pointer to store the length of the fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetLength)(ani_env *env, ani_fixedarray array, ani_size *result); - - /** - * @brief Creates a new fixedarray of booleans. - * - * This function creates a new fixedarray of the specified length for boolean values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Boolean)(ani_env *env, ani_size length, ani_fixedarray_boolean *result); - - /** - * @brief Creates a new fixedarray of characters. - * - * This function creates a new fixedarray of the specified length for character values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Char)(ani_env *env, ani_size length, ani_fixedarray_char *result); - - /** - * @brief Creates a new fixedarray of bytes. - * - * This function creates a new fixedarray of the specified length for byte values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Byte)(ani_env *env, ani_size length, ani_fixedarray_byte *result); - - /** - * @brief Creates a new fixedarray of shorts. - * - * This function creates a new fixedarray of the specified length for short integer values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Short)(ani_env *env, ani_size length, ani_fixedarray_short *result); - - /** - * @brief Creates a new fixedarray of integers. - * - * This function creates a new fixedarray of the specified length for integer values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Int)(ani_env *env, ani_size length, ani_fixedarray_int *result); - - /** - * @brief Creates a new fixedarray of long integers. - * - * This function creates a new fixedarray of the specified length for long integer values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Long)(ani_env *env, ani_size length, ani_fixedarray_long *result); - - /** - * @brief Creates a new fixedarray of floats. - * - * This function creates a new fixedarray of the specified length for float values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Float)(ani_env *env, ani_size length, ani_fixedarray_float *result); - - /** - * @brief Creates a new fixedarray of doubles. - * - * This function creates a new fixedarray of the specified length for double values. - * - * @param[in] env A pointer to the environment structure. - * @param[in] length The length of the fixedarray to be created. - * @param[out] result A pointer to store the created fixedarray. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Double)(ani_env *env, ani_size length, ani_fixedarray_double *result); - - /** - * @brief Retrieves a region of boolean values from an fixedarray. - * - * This function retrieves a portion of the specified boolean fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved boolean values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Boolean)(ani_env *env, ani_fixedarray_boolean array, ani_size offset, - ani_size length, ani_boolean *native_buffer); - - /** - * @brief Retrieves a region of character values from an fixedarray. - * - * This function retrieves a portion of the specified character fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved character values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Char)(ani_env *env, ani_fixedarray_char array, ani_size offset, ani_size length, - ani_char *native_buffer); - - /** - * @brief Retrieves a region of byte values from an fixedarray. - * - * This function retrieves a portion of the specified byte fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved byte values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Byte)(ani_env *env, ani_fixedarray_byte array, ani_size offset, ani_size length, - ani_byte *native_buffer); - - /** - * @brief Retrieves a region of short values from an fixedarray. - * - * This function retrieves a portion of the specified short fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved short values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Short)(ani_env *env, ani_fixedarray_short array, ani_size offset, ani_size length, - ani_short *native_buffer); - - /** - * @brief Retrieves a region of integer values from an fixedarray. - * - * This function retrieves a portion of the specified integer fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved integer values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Int)(ani_env *env, ani_fixedarray_int array, ani_size offset, ani_size length, - ani_int *native_buffer); - - /** - * @brief Retrieves a region of long integer values from an fixedarray. - * - * This function retrieves a portion of the specified long integer fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved long integer values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Long)(ani_env *env, ani_fixedarray_long array, ani_size offset, ani_size length, - ani_long *native_buffer); - - /** - * @brief Retrieves a region of float values from an fixedarray. - * - * This function retrieves a portion of the specified float fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved float values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Float)(ani_env *env, ani_fixedarray_float array, ani_size offset, ani_size length, - ani_float *native_buffer); - - /** - * @brief Retrieves a region of double values from an fixedarray. - * - * This function retrieves a portion of the specified double fixedarray into a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to retrieve values from. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to retrieve. - * @param[out] native_buffer A buffer to store the retrieved double values. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_GetRegion_Double)(ani_env *env, ani_fixedarray_double array, ani_size offset, - ani_size length, ani_double *native_buffer); - - /** - * @brief Sets a region of boolean values in an fixedarray. - * - * This function sets a portion of the specified boolean fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the boolean values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Boolean)(ani_env *env, ani_fixedarray_boolean array, ani_size offset, - ani_size length, const ani_boolean *native_buffer); - - /** - * @brief Sets a region of character values in an fixedarray. - * - * This function sets a portion of the specified character fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the character values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Char)(ani_env *env, ani_fixedarray_char array, ani_size offset, ani_size length, - const ani_char *native_buffer); - - /** - * @brief Sets a region of byte values in an fixedarray. - * - * This function sets a portion of the specified byte fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the byte values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Byte)(ani_env *env, ani_fixedarray_byte array, ani_size offset, ani_size length, - const ani_byte *native_buffer); - - /** - * @brief Sets a region of short values in an fixedarray. - * - * This function sets a portion of the specified short fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the short values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Short)(ani_env *env, ani_fixedarray_short array, ani_size offset, ani_size length, - const ani_short *native_buffer); - - /** - * @brief Sets a region of integer values in an fixedarray. - * - * This function sets a portion of the specified integer fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the integer values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Int)(ani_env *env, ani_fixedarray_int array, ani_size offset, ani_size length, - const ani_int *native_buffer); - - /** - * @brief Sets a region of long integer values in an fixedarray. - * - * This function sets a portion of the specified long integer fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the long integer values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Long)(ani_env *env, ani_fixedarray_long array, ani_size offset, ani_size length, - const ani_long *native_buffer); - - /** - * @brief Sets a region of float values in an fixedarray. - * - * This function sets a portion of the specified float fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the float values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Float)(ani_env *env, ani_fixedarray_float array, ani_size offset, ani_size length, - const ani_float *native_buffer); - - /** - * @brief Sets a region of double values in an fixedarray. - * - * This function sets a portion of the specified double fixedarray using a native buffer. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray to set values in. - * @param[in] offset The starting offset of the region. - * @param[in] length The number of elements to set. - * @param[in] native_buffer A buffer containing the double values to set. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_SetRegion_Double)(ani_env *env, ani_fixedarray_double array, ani_size offset, - ani_size length, const ani_double *native_buffer); - - /** - * @brief Creates a new fixedarray of references. - * - * This function creates a new fixedarray of references, optionally initializing it with an initial_element ref. - * - * @param[in] env A pointer to the environment structure. - * @param[in] type The type of the elements of the fixedarray. - * @param[in] length The length of the fixedarray to be created. - * @param[in] initial_element An optional reference to initialize the fixedarray. Can be null. - * @param[out] result A pointer to store the created fixedarray of references. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element, - ani_fixedarray_ref *result); - - /** - * @brief Sets a reference at a specific index in an fixedarray. - * - * This function sets the value of a reference at the specified index in the fixedarray. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The array of references to modify. - * @param[in] index The index at which to set the reference. - * @param[in] ref The reference to set at the specified index. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_Set_Ref)(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref ref); - - /** - * @brief Retrieves a reference from a specific index in an fixedarray. - * - * This function retrieves the value of a reference at the specified index in the fixedarray. - * - * @param[in] env A pointer to the environment structure. - * @param[in] array The fixedarray of references to query. - * @param[in] index The index from which to retrieve the reference. - * @param[out] result A pointer to store the retrieved reference. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*FixedArray_Get_Ref)(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref *result); - /** * @brief Retrieves an enum item by its name. * @@ -6107,6 +5565,23 @@ struct __ani_interaction_api { ani_status (*CreateArrayBuffer)(ani_env *env, size_t length, void **data_result, ani_arraybuffer *arraybuffer_result); + /** + * @brief Creates a new array buffer using external data. + * + * This function creates an array buffer that uses external data. The provided finalizer will be called when the + * array buffer is no longer needed. + * + * @param[in] env A pointer to the environment structure. + * @param[in] external_data A pointer to the external data to be used by the array buffer. + * @param[in] length The length of the external data in bytes. + * @param[in] finalizer A callback function to be called when the array buffer is finalized. Can be nullptr. + * @param[in] hint A user-defined hint to be passed to the finalizer. Can be nullptr. + * @param[out] result A pointer to store the created array buffer object. + * @return Returns a status code of type `ani_status` indicating success or failure. + */ + ani_status (*CreateArrayBufferExternal)(ani_env *env, void *external_data, size_t length, ani_finalizer finalizer, + void *hint, ani_arraybuffer *result); + /** * @brief Retrieves information about an array buffer. * @@ -6162,154 +5637,116 @@ struct __ani_interaction_api { ani_status (*PromiseResolver_Reject)(ani_env *env, ani_resolver resolver, ani_error rejection); /** - * @brief Checks if Any reference is an instance of a specified Any type. - * - * This function checks whether the given Any reference is an instance of the specified Any type. - * - * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference to check. - * @param[in] type The type to compare against. - * @param[out] result A pointer to store the boolean result (true if the reference is an instance of the type, - * false otherwise). - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Any_InstanceOf)(ani_env *env, ani_ref ref, ani_ref type, ani_boolean *result); - - /** - * @brief Gets a property of an Any reference by name. - * - * This function retrieves the value of a named property from the given Any reference. - * - * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference from which to retrieve the property. - * @param[in] name The name of the property to retrieve. - * @param[out] result A pointer to store the retrieved property value. - * @return Returns a status code of type `ani_status` indicating success or failure. - */ - ani_status (*Any_GetProperty)(ani_env *env, ani_ref ref, const char *name, ani_ref *result); - - /** - * @brief Sets a property of an Any reference by name. + * @brief Creates a new fixedarray of booleans. * - * This function sets the value of a named property on the given Any reference. + * This function creates a new array of the specified length for boolean values. * * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference on which to set the property. - * @param[in] name The name of the property to set. - * @param[in] value The value to assign to the property. + * @param[in] length The length of the fixedarray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_SetProperty)(ani_env *env, ani_ref ref, const char *name, ani_ref value); + ani_status (*FixedArray_New_Boolean)(ani_env *env, ani_size length, ani_array_boolean *result); /** - * @brief Gets an element of an Any reference by index. + * @brief Creates a new FixedArray of characters. * - * This function retrieves the value at a specific index from the given Any reference. + * This function creates a new FixedArray of the specified length for character values. * * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference from which to retrieve the element. - * @param[in] index The index of the element to retrieve. - * @param[out] result A pointer to store the retrieved value. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_GetByIndex)(ani_env *env, ani_ref ref, ani_size index, ani_ref *result); + ani_status (*FixedArray_New_Char)(ani_env *env, ani_size length, ani_array_char *result); /** - * @brief Sets an element of an Any reference by index. + * @brief Creates a new FixedArray of bytes. * - * This function sets the value at a specific index on the given Any reference. + * This function creates a new FixedArray of the specified length for byte values. * * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference on which to set the element. - * @param[in] index The index of the element to set. - * @param[in] value The value to assign to the specified index. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_SetByIndex)(ani_env *env, ani_ref ref, ani_size index, ani_ref value); + ani_status (*FixedArray_New_Byte)(ani_env *env, ani_size length, ani_array_byte *result); /** - * @brief Gets a property of an Any reference by key reference. + * @brief Creates a new FixedArray of shorts. * - * This function retrieves the value of a property using another Any reference as the key. + * This function creates a new FixedArray of the specified length for short integer values. * * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference from which to retrieve the property. - * @param[in] key The key reference used to access the property. - * @param[out] result A pointer to store the retrieved property value. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_GetByValue)(ani_env *env, ani_ref ref, ani_ref key, ani_ref *result); + ani_status (*FixedArray_New_Short)(ani_env *env, ani_size length, ani_array_short *result); /** - * @brief Sets a property of an Any reference by key reference. + * @brief Creates a new FixedArray of integers. * - * This function sets the value of a property using another Any reference as the key. + * This function creates a new FixedArray of the specified length for integer values. * * @param[in] env A pointer to the environment structure. - * @param[in] ref The reference on which to set the property. - * @param[in] key The key reference used to access the property. - * @param[in] value The value to assign to the specified key. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_SetByValue)(ani_env *env, ani_ref ref, ani_ref key, ani_ref value); + ani_status (*FixedArray_New_Int)(ani_env *env, ani_size length, ani_array_int *result); /** - * @brief Calls an Any reference as a function. + * @brief Creates a new FixedArray of long integers. * - * This function invokes the given Any reference if it represents a callable object. + * This function creates a new FixedArray of the specified length for long integer values. * * @param[in] env A pointer to the environment structure. - * @param[in] func The function reference to invoke. - * @param[in] argc The number of arguments. - * @param[in] argv An array of argument references. - * @param[out] result A pointer to store the function call result. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_Call)(ani_env *env, ani_ref func, ani_size argc, ani_ref *argv, ani_ref *result); + ani_status (*FixedArray_New_Long)(ani_env *env, ani_size length, ani_array_long *result); /** - * @brief Calls a method of an Any reference by name. + * @brief Creates a new FixedArray of floats. * - * This function invokes a named method on the given Any reference. + * This function creates a new FixedArray of the specified length for float values. * * @param[in] env A pointer to the environment structure. - * @param[in] self The object reference on which to invoke the method. - * @param[in] name The name of the method to invoke. - * @param[in] argc The number of arguments. - * @param[in] argv An array of argument references. - * @param[out] result A pointer to store the method call result. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_CallMethod)(ani_env *env, ani_ref self, const char *name, ani_size argc, ani_ref *argv, - ani_ref *result); + ani_status (*FixedArray_New_Float)(ani_env *env, ani_size length, ani_array_float *result); /** - * @brief Constructs a new object using an Any reference as a constructor. + * @brief Creates a new FixedArray of doubles. * - * This function creates a new object using the given constructor reference and arguments. + * This function creates a new FixedArray of the specified length for double values. * * @param[in] env A pointer to the environment structure. - * @param[in] ctor The constructor function reference. - * @param[in] argc The number of arguments. - * @param[in] argv An array of argument references. - * @param[out] result A pointer to store the created object reference. + * @param[in] length The length of the FixedArray to be created. + * @param[out] result A pointer to store the created FixedArray. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Any_New)(ani_env *env, ani_ref ctor, ani_size argc, ani_ref *argv, ani_ref *result); + ani_status (*FixedArray_New_Double)(ani_env *env, ani_size length, ani_array_double *result); /** - * @brief Binds static native methods to a class. + * @brief Creates a new FixedArray of references. * - * This function binds an array of static native methods to the specified class. + * This function creates a new FixedArray of references, optionally initializing it with an FixedArray of + * references. * * @param[in] env A pointer to the environment structure. - * @param[in] cls The class to which the native methods will be bound. - * @param[in] methods A pointer to an array of static native methods to bind. - * @param[in] nr_methods The number of static native methods in the array. + * @param[in] type The type of the elements of the FixedArray. + * @param[in] length The length of the FixedArray to be created. + * @param[in] initial_element An optional reference to initialize the FixedArray. Can be null. + * @param[out] result A pointer to store the created FixedArray of references. * @return Returns a status code of type `ani_status` indicating success or failure. */ - ani_status (*Class_BindStaticNativeMethods)(ani_env *env, ani_class cls, const ani_native_function *methods, - ani_size nr_methods); + ani_status (*FixedArray_New_Ref)(ani_env *env, ani_type type, ani_size length, ani_ref initial_element, + ani_array_ref *result); }; // C++ API @@ -6683,154 +6120,6 @@ struct __ani_env { { return c_api->Array_Get_Ref(this, array, index, result); } - ani_status Array_New(ani_size length, ani_ref initial_element, ani_array *result) - { - return c_api->Array_New(this, length, initial_element, result); - } - ani_status Array_Set(ani_array array, ani_size index, ani_ref ref) - { - return c_api->Array_Set(this, array, index, ref); - } - ani_status Array_Get(ani_array array, ani_size index, ani_ref *result) - { - return c_api->Array_Get(this, array, index, result); - } - ani_status Array_Push(ani_array array, ani_ref ref) - { - return c_api->Array_Push(this, array, ref); - } - ani_status Array_Pop(ani_array array, ani_ref *result) - { - return c_api->Array_Pop(this, array, result); - } - ani_status FixedArray_GetLength(ani_fixedarray array, ani_size *result) - { - return c_api->FixedArray_GetLength(this, array, result); - } - ani_status FixedArray_New_Boolean(ani_size length, ani_fixedarray_boolean *result) - { - return c_api->FixedArray_New_Boolean(this, length, result); - } - ani_status FixedArray_New_Char(ani_size length, ani_fixedarray_char *result) - { - return c_api->FixedArray_New_Char(this, length, result); - } - ani_status FixedArray_New_Byte(ani_size length, ani_fixedarray_byte *result) - { - return c_api->FixedArray_New_Byte(this, length, result); - } - ani_status FixedArray_New_Short(ani_size length, ani_fixedarray_short *result) - { - return c_api->FixedArray_New_Short(this, length, result); - } - ani_status FixedArray_New_Int(ani_size length, ani_fixedarray_int *result) - { - return c_api->FixedArray_New_Int(this, length, result); - } - ani_status FixedArray_New_Long(ani_size length, ani_fixedarray_long *result) - { - return c_api->FixedArray_New_Long(this, length, result); - } - ani_status FixedArray_New_Float(ani_size length, ani_fixedarray_float *result) - { - return c_api->FixedArray_New_Float(this, length, result); - } - ani_status FixedArray_New_Double(ani_size length, ani_fixedarray_double *result) - { - return c_api->FixedArray_New_Double(this, length, result); - } - ani_status FixedArray_GetRegion_Boolean(ani_fixedarray_boolean array, ani_size offset, ani_size length, - ani_boolean *native_buffer) - { - return c_api->FixedArray_GetRegion_Boolean(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Char(ani_fixedarray_char array, ani_size offset, ani_size length, - ani_char *native_buffer) - { - return c_api->FixedArray_GetRegion_Char(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Byte(ani_fixedarray_byte array, ani_size offset, ani_size length, - ani_byte *native_buffer) - { - return c_api->FixedArray_GetRegion_Byte(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Short(ani_fixedarray_short array, ani_size offset, ani_size length, - ani_short *native_buffer) - { - return c_api->FixedArray_GetRegion_Short(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Int(ani_fixedarray_int array, ani_size offset, ani_size length, - ani_int *native_buffer) - { - return c_api->FixedArray_GetRegion_Int(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Long(ani_fixedarray_long array, ani_size offset, ani_size length, - ani_long *native_buffer) - { - return c_api->FixedArray_GetRegion_Long(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Float(ani_fixedarray_float array, ani_size offset, ani_size length, - ani_float *native_buffer) - { - return c_api->FixedArray_GetRegion_Float(this, array, offset, length, native_buffer); - } - ani_status FixedArray_GetRegion_Double(ani_fixedarray_double array, ani_size offset, ani_size length, - ani_double *native_buffer) - { - return c_api->FixedArray_GetRegion_Double(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Boolean(ani_fixedarray_boolean array, ani_size offset, ani_size length, - const ani_boolean *native_buffer) - { - return c_api->FixedArray_SetRegion_Boolean(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Char(ani_fixedarray_char array, ani_size offset, ani_size length, - const ani_char *native_buffer) - { - return c_api->FixedArray_SetRegion_Char(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Byte(ani_fixedarray_byte array, ani_size offset, ani_size length, - const ani_byte *native_buffer) - { - return c_api->FixedArray_SetRegion_Byte(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Short(ani_fixedarray_short array, ani_size offset, ani_size length, - const ani_short *native_buffer) - { - return c_api->FixedArray_SetRegion_Short(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Int(ani_fixedarray_int array, ani_size offset, ani_size length, - const ani_int *native_buffer) - { - return c_api->FixedArray_SetRegion_Int(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Long(ani_fixedarray_long array, ani_size offset, ani_size length, - const ani_long *native_buffer) - { - return c_api->FixedArray_SetRegion_Long(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Float(ani_fixedarray_float array, ani_size offset, ani_size length, - const ani_float *native_buffer) - { - return c_api->FixedArray_SetRegion_Float(this, array, offset, length, native_buffer); - } - ani_status FixedArray_SetRegion_Double(ani_fixedarray_double array, ani_size offset, ani_size length, - const ani_double *native_buffer) - { - return c_api->FixedArray_SetRegion_Double(this, array, offset, length, native_buffer); - } - ani_status FixedArray_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_fixedarray_ref *result) - { - return c_api->FixedArray_New_Ref(this, type, length, initial_element, result); - } - ani_status FixedArray_Set_Ref(ani_fixedarray_ref array, ani_size index, ani_ref ref) - { - return c_api->FixedArray_Set_Ref(this, array, index, ref); - } - ani_status FixedArray_Get_Ref(ani_fixedarray_ref array, ani_size index, ani_ref *result) - { - return c_api->FixedArray_Get_Ref(this, array, index, result); - } ani_status Enum_GetEnumItemByName(ani_enum enm, const char *name, ani_enum_item *result) { return c_api->Enum_GetEnumItemByName(this, enm, name, result); @@ -8300,6 +7589,11 @@ struct __ani_env { { return c_api->CreateArrayBuffer(this, length, data_result, arraybuffer_result); } + ani_status CreateArrayBufferExternal(void *external_data, size_t length, ani_finalizer finalizer, void *hint, + ani_arraybuffer *result) + { + return c_api->CreateArrayBufferExternal(this, external_data, length, finalizer, hint, result); + } ani_status ArrayBuffer_GetInfo(ani_arraybuffer arraybuffer, void **data_result, size_t *length_result) { return c_api->ArrayBuffer_GetInfo(this, arraybuffer, data_result, length_result); @@ -8316,49 +7610,41 @@ struct __ani_env { { return c_api->PromiseResolver_Reject(this, resolver, rejection); } - ani_status Any_InstanceOf(ani_ref ref, ani_ref type, ani_boolean *result) - { - return c_api->Any_InstanceOf(this, ref, type, result); - } - ani_status Any_GetProperty(ani_ref ref, const char *name, ani_ref *result) + ani_status FixedArray_New_Boolean(ani_size length, ani_array_boolean *result) { - return c_api->Any_GetProperty(this, ref, name, result); - } - ani_status Any_SetProperty(ani_ref ref, const char *name, ani_ref value) - { - return c_api->Any_SetProperty(this, ref, name, value); + return c_api->FixedArray_New_Boolean(this, length, result); } - ani_status Any_GetByIndex(ani_ref ref, ani_size index, ani_ref *result) + ani_status FixedArray_New_Char(ani_size length, ani_array_char *result) { - return c_api->Any_GetByIndex(this, ref, index, result); + return c_api->FixedArray_New_Char(this, length, result); } - ani_status Any_SetByIndex(ani_ref ref, ani_size index, ani_ref value) + ani_status FixedArray_New_Byte(ani_size length, ani_array_byte *result) { - return c_api->Any_SetByIndex(this, ref, index, value); + return c_api->FixedArray_New_Byte(this, length, result); } - ani_status Any_GetByValue(ani_ref ref, ani_ref key, ani_ref *result) + ani_status FixedArray_New_Short(ani_size length, ani_array_short *result) { - return c_api->Any_GetByValue(this, ref, key, result); + return c_api->FixedArray_New_Short(this, length, result); } - ani_status Any_SetByValue(ani_ref ref, ani_ref key, ani_ref value) + ani_status FixedArray_New_Int(ani_size length, ani_array_int *result) { - return c_api->Any_SetByValue(this, ref, key, value); + return c_api->FixedArray_New_Int(this, length, result); } - ani_status Any_Call(ani_ref func, ani_size argc, ani_ref *argv, ani_ref *result) + ani_status FixedArray_New_Long(ani_size length, ani_array_long *result) { - return c_api->Any_Call(this, func, argc, argv, result); + return c_api->FixedArray_New_Long(this, length, result); } - ani_status Any_CallMethod(ani_ref self, const char *name, ani_size argc, ani_ref *argv, ani_ref *result) + ani_status FixedArray_New_Float(ani_size length, ani_array_float *result) { - return c_api->Any_CallMethod(this, self, name, argc, argv, result); + return c_api->FixedArray_New_Float(this, length, result); } - ani_status Any_New(ani_ref ctor, ani_size argc, ani_ref *argv, ani_ref *result) + ani_status FixedArray_New_Double(ani_size length, ani_array_double *result) { - return c_api->Any_New(this, ctor, argc, argv, result); + return c_api->FixedArray_New_Double(this, length, result); } - ani_status Class_BindStaticNativeMethods(ani_class cls, const ani_native_function *methods, ani_size nr_methods) + ani_status FixedArray_New_Ref(ani_type type, ani_size length, ani_ref initial_element, ani_array_ref *result) { - return c_api->Class_BindStaticNativeMethods(this, cls, methods, nr_methods); + return c_api->FixedArray_New_Ref(this, type, length, initial_element, result); } #endif // __cplusplus }; diff --git a/static_core/plugins/ets/runtime/ani/ani_helpers.cpp b/static_core/plugins/ets/runtime/ani/ani_helpers.cpp deleted file mode 100644 index 1f1970b2bd..0000000000 --- a/static_core/plugins/ets/runtime/ani/ani_helpers.cpp +++ /dev/null @@ -1,487 +0,0 @@ -/** - * Copyright (c) 2021-2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "plugins/ets/runtime/ani/ani_helpers.h" - -#include "libarkfile/shorty_iterator.h" -#include "macros.h" -#include "plugins/ets/runtime/ani/scoped_objects_fix.h" -#include "plugins/ets/runtime/ets_coroutine.h" -#include "plugins/ets/runtime/mem/ets_reference.h" -#include "plugins/ets/runtime/types/ets_method.h" -#include "plugins/ets/runtime/types/ets_object.h" -#include "plugins/ets/runtime/types/ets_promise.h" -#include "plugins/ets/runtime/ets_handle_scope.h" -#include "plugins/ets/runtime/ets_handle.h" -#include "plugins/ets/runtime/ets_exceptions.h" -#include "plugins/ets/runtime/ets_class_linker_extension.h" -#include "runtime/arch/helpers.h" -#include "runtime/include/managed_thread.h" -#include "runtime/include/method.h" -#include "runtime/include/runtime.h" -#include "runtime/include/runtime_notification.h" - -#include - -namespace ark::ets::ani { -namespace { -using Type = panda_file::Type; -using TypeId = panda_file::Type::TypeId; - -using ExtArchTraits = arch::ExtArchTraits; -using ArgReader = arch::ArgReader; -using ArgCounter = arch::ArgCounter; - -class ArgWriter : public arch::ArgWriter { -public: - ArgWriter(Span gprArgs, Span fprArgs, uint8_t *stackArgs) - : arch::ArgWriter(gprArgs, fprArgs, stackArgs) - { - } - ~ArgWriter() = default; - - template - ALWAYS_INLINE typename std::enable_if_t::value, void> Write(T v) - { - EtsReference *ref = nullptr; - auto *objPtr = reinterpret_cast(v); - ASSERT(objPtr != nullptr); - if (EtsReferenceStorage::IsUndefinedEtsObject(*objPtr)) { - ref = EtsReference::GetUndefined(); - } else { - ref = EtsReferenceStorage::NewEtsStackRef(objPtr); - } - arch::ArgWriter::Write(ref); - } - - template - ALWAYS_INLINE typename std::enable_if_t::value, void> Write(T v) - { - // Check T is not some kind of pointer to ObjectHeader - static_assert(!std::is_same_v::type>>); - arch::ArgWriter::Write(v); - } - - NO_COPY_SEMANTIC(ArgWriter); - NO_MOVE_SEMANTIC(ArgWriter); -}; -} // namespace - -extern "C" void EtsNapiEntryPoint(); - -const void *GetANIEntryPoint() -{ - return reinterpret_cast(EtsNapiEntryPoint); -} - -extern "C" void EtsNapiCriticalNativeEntryPoint(); - -const void *GetANICriticalEntryPoint() -{ - return reinterpret_cast(EtsNapiCriticalNativeEntryPoint); -} - -extern "C" uint32_t EtsNapiCalcStackArgsSpaceSize(Method *method, bool isCritical) -{ - ASSERT(method != nullptr); - - ArgCounter counter; - if (!isCritical) { - counter.Count(); // ani_env arg - counter.Count(); // class or this arg - } - - panda_file::ShortyIterator it(method->GetShorty()); - ++it; // Skip the return type - panda_file::ShortyIterator end; - while (it != end) { - Type type = *it++; - switch (type.GetId()) { - case TypeId::U1: - counter.Count(); - break; - case TypeId::I8: - case TypeId::U8: - counter.Count(); - break; - case TypeId::I16: - case TypeId::U16: - counter.Count(); - break; - case TypeId::I32: - case TypeId::U32: - counter.Count(); - break; - case TypeId::F32: - counter.Count(); - break; - case TypeId::F64: - counter.Count(); - break; - case TypeId::I64: - case TypeId::U64: - counter.Count(); - break; - case TypeId::REFERENCE: - counter.Count(); - break; - default: - UNREACHABLE(); - break; - } - } - - return counter.GetStackSpaceSize(); -} - -static void ThrowUnresolvedMethodException(Method *method, EtsCoroutine *coroutine) -{ - PandaStringStream ss; - ss << "No implementation found for " << method->GetFullName(); - ThrowEtsException(coroutine, panda_file_items::class_descriptors::LINKER_UNRESOLVED_METHOD_ERROR, ss.str()); -} - -// Disable warning because the function uses ARCH_COPY_METHOD_ARGS macro. -// The macro uses computed goto -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu-label-as-value" -#elif defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" -#endif - -// input stack structure output stack structure -// +-------+ <- out_args +-------+ -// | ... | | x0-x7 | -// +-------+ <- in_reg_args +-------+ -// | x0-x7 | | d0-d7 | -// +-------+ +-------+ -// | d0-d7 | | stack | -// +-------+ | arg 0 | -// | ... | +-------+ -// +-------+ <- in_stack_args | ... | -// | stack | +-------+ -// | arg 0 | | stack | -// +-------+ | arg N | -// | ... | +-------+ -extern "C" void EtsNapiBeginCritical(Method *method, uint8_t *inRegsArgs, uint8_t *inStackArgs, uint8_t *outArgs, - ManagedThread *thread) -{ - ASSERT(method->IsStatic()); - ASSERT(thread == ManagedThread::GetCurrent()); - - Span inGprArgs(inRegsArgs, ExtArchTraits::GP_ARG_NUM_BYTES); - Span inFprArgs(inGprArgs.end(), ExtArchTraits::FP_ARG_NUM_BYTES); - ArgReader argReader(inGprArgs, inFprArgs, inStackArgs); - - Span outGprArgs(outArgs, ExtArchTraits::GP_ARG_NUM_BYTES); - Span outFprArgs(outGprArgs.end(), ExtArchTraits::FP_ARG_NUM_BYTES); - auto outStackArgs = outFprArgs.end(); - ArgWriter argWriter(outGprArgs, outFprArgs, outStackArgs); - - argReader.Read(); // Skip method - - if (UNLIKELY(method->GetNativePointer() == nullptr)) { - ThrowUnresolvedMethodException(method, EtsCoroutine::CastFromThread(thread)); - } - - ARCH_COPY_METHOD_ARGS(method, argReader, argWriter); - - Runtime::GetCurrent()->GetNotificationManager()->MethodEntryEvent(thread, method); -} - -// Input stack =======> Output stack -// 0xFFFF -// | | | | -// | Prev frame | | Prev frame | -// | ... | | ... | -// +------------------------+ +------------------------+ -// | ... | | ... | -// | stack args | | stack args | <--------+ -// | ... | | ... | | -// +---+---+----------------+ <- inStackArgs --> +----------------+---+---+ | -// | | | LR | | LR | | | | -// | | | FP | | FP | | | | -// | | | Method * | | Method * | | | | -// | | c | FLAGS | | FLAGS | c | | | -// | | f +----------------+ +----------------+ f | | | -// | | r | ... | | ... | r | | | -// | | a | locals | | locals | a | | | -// | | m | ... | | ... | m | | | -// | | e +----------------+ +----------------+ e | | | -// | N | | ... | | ... | | N | | -// | A | | callee saved | | callee saved | | A | | -// | P | | ... | | ... | | P | | -// | I +---+----------------+ +----------------+---+ I | | -// | | ... | | ... | | | -// | | float args | | float args | | | -// | f | ... | | ... | f | | -// | r +--------------------+ +--------------------+ r | | -// | a | ... | | ... | a | | -// | m | general args | | general args | m | <----+ | -// | e | ... | | ... | e | | | -// | | arg0|Method* | |arg0|class/null(opt)| | | | -// | +--------------------+ <-- inRegsArgs --> +--------------------+ | | | References -// | | | | ... | | | | to ObjectHeader *s -// | | | | NAPI float args | | | | on the stack -// | | | | (on regs) | | | | -// | | | | ... | | | | -// | | | +--------------------+ | | | -// | | | | ... | | | | -// | | space for | | NAPI general args | | -----+ | -// | | NAPI args | | (on regs) | | | -// | | | | ... | | | -// | | | +--------------------+ | | -// | | | | ... | | | -// | | | | NAPI args | | ---------+ -// | | | | (on stack) | | -// | | | | ... | | -// +---+--------------------+ <- outStackArgs -> +--------------------+---+ -// | | | | -// 0x0000 -static uint8_t *PrepareArgsOnStack(Method *method, uint8_t *inRegsArgs, uint8_t *inStackArgs, uint8_t *outStackArgs, - PandaEnv *pandaEnv) -{ - // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - auto outRegsArgs = inRegsArgs - ExtArchTraits ::FP_ARG_NUM_BYTES - ExtArchTraits ::GP_ARG_NUM_BYTES; - - ASSERT(outStackArgs <= outRegsArgs); - ASSERT(outRegsArgs < inRegsArgs); - ASSERT(inRegsArgs < inStackArgs); - - Span inGprArgs(inRegsArgs, ExtArchTraits::GP_ARG_NUM_BYTES); - Span inFprArgs(inGprArgs.end(), ExtArchTraits::FP_ARG_NUM_BYTES); - ArgReader argReader(inGprArgs, inFprArgs, inStackArgs); - - Span outGprArgs(outRegsArgs, ExtArchTraits::GP_ARG_NUM_BYTES); - Span outFprArgs(outGprArgs.end(), ExtArchTraits::FP_ARG_NUM_BYTES); - ArgWriter argWriter(outGprArgs, outFprArgs, outStackArgs); - - argReader.Read(); // Skip method - - EtsMethod *etsMethod = EtsMethod::FromRuntimeMethod(method); - EtsReference *classOrThisRef = nullptr; - if (method->IsStatic()) { - if (etsMethod->IsFunction()) { - // NOTE: - // Replace the method pointer (Method *) with a pointer to the nullptr - // to avoid GC crash during traversal of method arguments. - auto classPtr = reinterpret_cast(inRegsArgs); - *classPtr = nullptr; - } else { - // Handle class object - auto classObj = EtsClass::FromRuntimeClass(method->GetClass())->AsObject(); - ASSERT(classObj != nullptr); - - // Replace the method pointer (Method *) with a pointer to the class object - auto classPtr = reinterpret_cast(inRegsArgs); - *classPtr = classObj; - - classOrThisRef = EtsReferenceStorage::NewEtsStackRef(classPtr); - } - } else { - ASSERT(method->GetNumArgs() != 0); - ASSERT(!method->GetArgType(0).IsPrimitive()); - ASSERT(!etsMethod->IsFunction()); - - // Handle this arg - auto thisPtr = const_cast(argReader.ReadPtr()); - classOrThisRef = EtsReferenceStorage::NewEtsStackRef(thisPtr); - } - - // Prepare ANI args - argWriter.Write(static_cast(pandaEnv)); - if (!etsMethod->IsFunction()) { - argWriter.Write(classOrThisRef); - } - ARCH_COPY_METHOD_ARGS(method, argReader, argWriter); - // Completed the preparation of ANI arguments on the stack - - return outRegsArgs; -} - -extern "C" uint8_t *EtsNapiBegin(Method *method, uint8_t *inRegsArgs, uint8_t *inStackArgs, uint8_t *outStackArgs, - ManagedThread *thread) -{ - ASSERT(!method->IsSynchronized()); - ASSERT(thread == ManagedThread::GetCurrent()); - - EtsCoroutine *coroutine = EtsCoroutine::CastFromThread(thread); - PandaEnv *pandaEnv = coroutine->GetEtsNapiEnv(); - - uint8_t *outRegsArgs = PrepareArgsOnStack(method, inRegsArgs, inStackArgs, outStackArgs, pandaEnv); - - // ATTENTION!!! - // Don't move the following code above, because only from this point on, - // the stack of the current frame is correct, so we can safely walk it - // (e.g. stop at a safepoint and walk the stack args of NAPI frame) - - if (UNLIKELY(method->GetNativePointer() == nullptr)) { - ThrowUnresolvedMethodException(method, coroutine); - } - - Runtime::GetCurrent()->GetNotificationManager()->MethodEntryEvent(thread, method); - - // CC-OFFNXT(G.NAM.03) project code style - constexpr uint32_t MAX_LOCAL_REF = 4096; - if (UNLIKELY(!pandaEnv->GetEtsReferenceStorage()->PushLocalEtsFrame(MAX_LOCAL_REF))) { - LOG(FATAL, RUNTIME) << "eTS NAPI push local frame failed"; - } - - EtsMethod *etsMethod = EtsMethod::FromRuntimeMethod(method); - if (!etsMethod->IsFastNative()) { - thread->NativeCodeBegin(); - } - - return outRegsArgs; -} - -#if defined(__clang__) -#pragma clang diagnostic pop -#elif defined(__GNUC__) -#pragma GCC diagnostic pop -#endif - -extern "C" void EtsNapiEnd(Method *method, ManagedThread *thread, bool isFastNative) -{ - ASSERT(method != nullptr); - ASSERT(!method->IsSynchronized()); - ASSERT(thread == ManagedThread::GetCurrent()); - - if (!isFastNative) { - thread->NativeCodeEnd(); - } - - Runtime::GetCurrent()->GetNotificationManager()->MethodExitEvent(thread, method); - - auto coroutine = EtsCoroutine::CastFromThread(thread); - auto storage = coroutine->GetEtsNapiEnv()->GetEtsReferenceStorage(); - storage->PopLocalEtsFrame(EtsReference::GetUndefined()); -} - -extern "C" EtsObject *EtsNapiObjEnd(Method *method, EtsReference *etsRef, ManagedThread *thread, bool isFastNative) -{ - ASSERT(method != nullptr); - ASSERT(!method->IsSynchronized()); - ASSERT(thread == ManagedThread::GetCurrent()); - - // End native scope first to get into managed scope for object manipulation - if (!isFastNative) { - thread->NativeCodeEnd(); - } - - Runtime::GetCurrent()->GetNotificationManager()->MethodExitEvent(thread, method); - - auto coroutine = EtsCoroutine::CastFromThread(thread); - auto storage = coroutine->GetEtsNapiEnv()->GetEtsReferenceStorage(); - EtsObject *ret = nullptr; - if (LIKELY(!coroutine->HasPendingException())) { - ret = storage->GetEtsObject(etsRef); - } - - storage->PopLocalEtsFrame(EtsReference::GetUndefined()); - - return ret; -} - -extern "C" bool IsEtsMethodFastNative(Method *method) -{ - return EtsMethod::FromRuntimeMethod(method)->IsFastNative(); -} - -// Disable warning because the function uses ARCH_COPY_METHOD_ARGS macro. -// The macro uses computed goto -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wgnu-label-as-value" -#elif defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" -#endif -// CC-OFFNXT(huge_method[C++], G.FUN.01) solid logic -extern "C" ObjectPointerType EtsAsyncCall(Method *method, EtsCoroutine *currentCoro, uint8_t *regArgs, - uint8_t *stackArgs) -{ - PandaEtsVM *vm = currentCoro->GetPandaVM(); - auto *coroManager = currentCoro->GetCoroutineManager(); - Method *impl = vm->GetClassLinker()->GetAsyncImplMethod(method, currentCoro); - if (impl == nullptr) { - ASSERT(currentCoro->HasPendingException()); - // Exception is thrown by GetAsyncImplMethod - return 0; - } - ASSERT(!currentCoro->HasPendingException()); - if (coroManager->IsCoroutineSwitchDisabled()) { - ThrowEtsException(currentCoro, panda_file_items::class_descriptors::INVALID_COROUTINE_OPERATION_ERROR, - "Cannot call async in the current context!"); - return 0; - } - - PandaVector args; - args.reserve(method->GetNumArgs()); - Span gprArgs(regArgs, ExtArchTraits::GP_ARG_NUM_BYTES); - Span fprArgs(gprArgs.end(), ExtArchTraits::FP_ARG_NUM_BYTES); - ArgReader argReader(gprArgs, fprArgs, stackArgs); - argReader.Read(); // Skip method - if (method->IsStatic()) { - // Replace the method pointer (Method *) by the pointer to the object class - // to satisfy stack walker - auto classObj = EtsClass::FromRuntimeClass(method->GetClass())->AsObject(); - ASSERT(classObj != nullptr); - auto classPtr = reinterpret_cast(regArgs); - *classPtr = classObj; - } - - // Create object after arg fix ^^^. - // Arg fix is needed for StackWalker. So if GC gets triggered in EtsPromise::Create - // it StackWalker correctly finds all vregs. - EtsPromise *promise = EtsPromise::Create(currentCoro); - if (UNLIKELY(promise == nullptr)) { - ThrowOutOfMemoryError(currentCoro, "Cannot allocate Promise"); - return 0; - } - auto promiseRef = vm->GetGlobalObjectStorage()->Add(promise, mem::Reference::ObjectType::GLOBAL); - auto evt = Runtime::GetCurrent()->GetInternalAllocator()->New(promiseRef, coroManager); - - // Read values from stack and keep in args values for Launch after possible GC in EtsPromise::Create - if (!method->IsStatic()) { - // Handle this arg - ASSERT(method->GetNumArgs() != 0 && !method->GetArgType(0).IsPrimitive()); - args.push_back(Value(*const_cast(argReader.ReadPtr()))); - } - arch::ValueWriter writer(&args); - ARCH_COPY_METHOD_ARGS(method, argReader, writer); - - [[maybe_unused]] EtsHandleScope scope(currentCoro); - EtsHandle promiseHandle(currentCoro, promise); - bool launchResult = coroManager->LaunchImmediately( - evt, impl, std::move(args), - ark::CoroutineWorkerGroup::GenerateExactWorkerId(ark::ets::EtsCoroutine::GetCurrent()->GetWorker()->GetId()), - EtsCoroutine::ASYNC_CALL, false); - if (UNLIKELY(!launchResult)) { - ASSERT(currentCoro->HasPendingException()); - // OOM is thrown by Launch - Runtime::GetCurrent()->GetInternalAllocator()->Delete(evt); - return 0; - } - return ToObjPtr(promiseHandle.GetPtr()); -} -#if defined(__clang__) -#pragma clang diagnostic pop -#elif defined(__GNUC__) -#pragma GCC diagnostic pop -#endif -} // namespace ark::ets::ani diff --git a/static_core/plugins/ets/runtime/ani/ani_helpers.h b/static_core/plugins/ets/runtime/ani/ani_helpers.h deleted file mode 100644 index 6f14891888..0000000000 --- a/static_core/plugins/ets/runtime/ani/ani_helpers.h +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Copyright (c) 2021-2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef PANDA_PLUGINS_ETS_RUNTIME_NAPI_ETS_NAPI_HELPERS_H -#define PANDA_PLUGINS_ETS_RUNTIME_NAPI_ETS_NAPI_HELPERS_H - -namespace ark::ets::ani { -const void *GetANIEntryPoint(); -const void *GetANICriticalEntryPoint(); -} // namespace ark::ets::ani - -#endif // PANDA_PLUGINS_ETS_RUNTIME_NAPI_ETS_NAPI_HELPERS_H diff --git a/static_core/plugins/ets/runtime/ani/ani_interaction_api.cpp b/static_core/plugins/ets/runtime/ani/ani_interaction_api.cpp index 46adccc0e7..c90079eb64 100644 --- a/static_core/plugins/ets/runtime/ani/ani_interaction_api.cpp +++ b/static_core/plugins/ets/runtime/ani/ani_interaction_api.cpp @@ -16,31 +16,28 @@ #include #include #include -#include #include +#include #include -#include - #include "ani.h" -#include "libpandabase/macros.h" +#include "macros.h" #include "libpandabase/utils/logger.h" +#include "runtime/coroutines/coroutine_scopes.h" #include "plugins/ets/runtime/ani/ani_checkers.h" #include "plugins/ets/runtime/ani/ani_interaction_api.h" #include "plugins/ets/runtime/ani/ani_mangle.h" #include "plugins/ets/runtime/ani/ani_type_info.h" #include "plugins/ets/runtime/ani/scoped_objects_fix.h" +#include "plugins/ets/runtime/types/ets_module.h" +#include "plugins/ets/runtime/types/ets_namespace.h" +#include "plugins/ets/runtime/types/ets_box_primitive-inl.h" #include "plugins/ets/runtime/ets_class_linker_extension.h" -#include "plugins/ets/runtime/ets_handle_scope.h" #include "plugins/ets/runtime/ets_napi_env.h" -#include "plugins/ets/runtime/ets_stubs.h" #include "plugins/ets/runtime/ets_stubs-inl.h" +#include "plugins/ets/runtime/types/ets_object.h" #include "plugins/ets/runtime/types/ets_array.h" -#include "plugins/ets/runtime/types/ets_box_primitive-inl.h" #include "plugins/ets/runtime/types/ets_escompat_array.h" -#include "plugins/ets/runtime/types/ets_module.h" -#include "plugins/ets/runtime/types/ets_namespace.h" -#include "plugins/ets/runtime/types/ets_object.h" -#include "runtime/coroutines/coroutine_scopes.h" +#include "plugins/ets/runtime/ets_handle_scope.h" // NOLINTBEGIN(cppcoreguidelines-macro-usage) @@ -218,6 +215,16 @@ static ani_status InitializeClass(ScopedManagedCodeFix &s, EtsClass *klass) return ANI_OK; } +static Value ConstructValueFromFloatingPoint(float val) +{ + return Value(bit_cast(val)); +} + +static Value ConstructValueFromFloatingPoint(double val) +{ + return Value(bit_cast(val)); +} + static ArgVector GetArgValues(ScopedManagedCodeFix &s, EtsMethod *method, va_list args, ani_object object) { ASSERT(method != nullptr); @@ -231,63 +238,41 @@ static ArgVector GetArgValues(ScopedManagedCodeFix &s, EtsMethod *method, panda_file::ShortyIterator end; ++it; // skip the return value for (; it != end; ++it) { - // NOLINTBEGIN(cppcoreguidelines-pro-type-vararg) panda_file::Type type = *it; - Value val; - - auto id = type.GetId(); - if (id == TypeId::REFERENCE) { - auto *param = s.ToInternalType(va_arg(args, ani_ref)); - val = Value(param != nullptr ? param->GetCoreType() : nullptr); - } else if (id == TypeId::U1 || id == TypeId::U16) { - val = Value(static_cast(va_arg(args, uint32_t))); - } else if (id == TypeId::I8 || id == TypeId::I16 || id == TypeId::I32) { - val = Value(static_cast(va_arg(args, int32_t))); - } else if (id == TypeId::I64) { - val = Value(static_cast(va_arg(args, int64_t))); - } else if (id == TypeId::F32) { - val = Value(bit_cast(static_cast(va_arg(args, double)))); - } else if (id == TypeId::F64) { - double d = va_arg(args, double); - val = Value(bit_cast(d)); - } else { - LOG(FATAL, ANI) << "Unexpected argument type"; + // NOLINTBEGIN(cppcoreguidelines-pro-type-vararg) + switch (type.GetId()) { + case TypeId::U1: + case TypeId::U16: + parsedArgs.emplace_back(va_arg(args, uint32_t)); + break; + case TypeId::I8: + case TypeId::I16: + case TypeId::I32: + parsedArgs.emplace_back(va_arg(args, int32_t)); + break; + case TypeId::I64: + parsedArgs.emplace_back(va_arg(args, int64_t)); + break; + case TypeId::F32: + parsedArgs.push_back(ConstructValueFromFloatingPoint(static_cast(va_arg(args, double)))); + break; + case TypeId::F64: + parsedArgs.push_back(ConstructValueFromFloatingPoint(va_arg(args, double))); + break; + case TypeId::REFERENCE: { + auto *param = s.ToInternalType(va_arg(args, ani_ref)); + parsedArgs.emplace_back(param != nullptr ? param->GetCoreType() : nullptr); + break; + } + default: + LOG(FATAL, ANI) << "Unexpected argument type"; + break; } - parsedArgs.emplace_back(val); // NOLINTEND(cppcoreguidelines-pro-type-vararg) } return parsedArgs; } -static Value ConvertArgValue(ScopedManagedCodeFix &s, const ani_value *arg, panda_file::Type type) -{ - switch (type.GetId()) { - case TypeId::U1: - return Value(arg->z); - case TypeId::U16: - return Value(arg->c); - case TypeId::I8: - return Value(arg->b); - case TypeId::I16: - return Value(arg->s); - case TypeId::I32: - return Value(arg->i); - case TypeId::I64: - return Value(arg->l); - case TypeId::F32: - return Value(bit_cast(arg->f)); - case TypeId::F64: - return Value(bit_cast(arg->d)); - case TypeId::REFERENCE: { - auto *param = s.ToInternalType(arg->r); - return Value(param != nullptr ? param->GetCoreType() : nullptr); - } - default: - LOG(FATAL, ANI) << "Unexpected argument type"; - } - return Value(nullptr); -} - // CC-OFFNXT(huge_method[C++], G.FUN.01-CPP) solid logic static ArgVector GetArgValues(ScopedManagedCodeFix &s, EtsMethod *method, const ani_value *args, ani_object object) @@ -299,12 +284,47 @@ static ArgVector GetArgValues(ScopedManagedCodeFix &s, EtsMethod *method, if (object != nullptr) { parsedArgs.emplace_back(s.ToInternalType(object)->GetCoreType()); } + panda_file::ShortyIterator it(method->GetPandaMethod()->GetShorty()); panda_file::ShortyIterator end; ++it; // skip the return value // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) for (const auto *arg = args; it != end; ++arg, ++it) { - parsedArgs.emplace_back(ConvertArgValue(s, arg, *it)); + panda_file::Type type = *it; + switch (type.GetId()) { + case TypeId::U1: + parsedArgs.emplace_back(arg->z); + break; + case TypeId::U16: + parsedArgs.emplace_back(arg->c); + break; + case TypeId::I8: + parsedArgs.emplace_back(arg->b); + break; + case TypeId::I16: + parsedArgs.emplace_back(arg->s); + break; + case TypeId::I32: + parsedArgs.emplace_back(arg->i); + break; + case TypeId::I64: + parsedArgs.emplace_back(arg->l); + break; + case TypeId::F32: + parsedArgs.push_back(ConstructValueFromFloatingPoint(arg->f)); + break; + case TypeId::F64: + parsedArgs.push_back(ConstructValueFromFloatingPoint(arg->d)); + break; + case TypeId::REFERENCE: { + auto *param = s.ToInternalType(arg->r); + parsedArgs.emplace_back(param != nullptr ? param->GetCoreType() : nullptr); + break; + } + default: + LOG(FATAL, ANI) << "Unexpected argument type"; + break; + } } return parsedArgs; } @@ -529,8 +549,7 @@ static bool CheckUniqueMethod(EtsClass *klass, const char *name) ASSERT(klass != nullptr); ASSERT(name != nullptr); size_t nameCounter = 0; - auto methodsList = (panda_file_items::CTOR == name) ? klass->GetConstructors() : klass->GetMethods(); - for (auto &method : methodsList) { + for (auto &method : klass->GetMethods()) { if (method->IsStatic() == IS_STATIC && ::strcmp(method->GetName(), name) == 0) { if (++nameCounter == 2U) { return false; @@ -616,61 +635,38 @@ static std::optional ReplaceArrayInSignature(const char *signature) return ss.str(); } -// NOTE(@srokashevich, #25051): This function is used only for warnings about old mangling, remove it after issue -// resolution -static void CheckSignatureMangling(const char *str) -{ - static std::regex rgx1(":[ZCBSIJFDV]$"); - static std::regex rgx2(".*L.*;.*"); - static std::regex rgx3(".*\\[.*"); - if (std::regex_match(str, rgx1) || std::regex_match(str, rgx2) || std::regex_match(str, rgx3)) { - LOG(ERROR, ANI) << "Use new mangling rules for signature \"" << str << "\""; - } -} - template static ani_status DoGetClassMethod(EtsClass *klass, const char *name, const char *signature, EtsMethod **result) { ASSERT_MANAGED_CODE(); ASSERT(klass != nullptr); ASSERT(result != nullptr); - // Note: Remove CheckUniqueMethod once FE #ICIITH is solved if (signature == nullptr && !CheckUniqueMethod(klass, name)) { return ANI_AMBIGUOUS; } - std::optional replacedSignature; - if (signature != nullptr) { - CheckSignatureMangling(signature); - replacedSignature = ReplaceArrayInSignature(signature); - signature = replacedSignature.has_value() ? replacedSignature->c_str() : signature; - } + // CC-OFFNXT(G.FMT.14-CPP) project code style auto *method = [klass, name, signature]() -> EtsMethod * { - if constexpr (IS_STATIC_METHOD) { - return klass->GetStaticMethod(name, signature, true); - } else { - return klass->GetInstanceMethod(name, signature, true); + if (signature == nullptr) { + if constexpr (IS_STATIC_METHOD) { + return klass->GetStaticMethod(name, signature, true); + } else { + return klass->GetInstanceMethod(name, signature, true); + } + } + auto optSignature = ReplaceArrayInSignature(signature); + if (optSignature) { + if constexpr (IS_STATIC_METHOD) { + return klass->GetStaticMethod(name, optSignature.value().c_str(), true); + } else { + return klass->GetInstanceMethod(name, optSignature.value().c_str(), true); + } } + return nullptr; }(); - - if (method != nullptr && method->IsStatic() == IS_STATIC_METHOD) { - *result = method; - return ANI_OK; - } - PandaVector methodVec; - if constexpr (IS_STATIC_METHOD) { - methodVec = klass->GetStaticMethodOverload(name, signature, true); - } else { - methodVec = klass->GetInstanceMethodOverload(name, signature, true); - } - if (methodVec.empty()) { + if (method == nullptr || method->IsStatic() != IS_STATIC_METHOD) { return ANI_NOT_FOUND; } - if (methodVec.size() > 1U) { - return ANI_AMBIGUOUS; - } - method = methodVec[0]; - ASSERT(method->IsStatic() == IS_STATIC_METHOD); *result = method; return ANI_OK; } @@ -679,7 +675,7 @@ template static ani_status GetClassMethod(ani_env *env, ani_class cls, const char *name, const char *signature, EtsMethod **result) { - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsClass *klass = s.ToInternalType(cls); return DoGetClassMethod(klass, name, signature, result); } @@ -804,9 +800,9 @@ static ani_status AllocObject(ScopedManagedCodeFix &s, ani_class cls, ani_object template static ani_status DoNewObject(ani_env *env, ani_class cls, ani_method method, ani_object *result, Args args) { - LocalRef object(env); + ani_object object; ScopedManagedCodeFix s(env); - ani_status status = AllocObject(s, cls, &object.GetRef()); + ani_status status = AllocObject(s, cls, &object); ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); EtsClass *klass = s.ToInternalType(cls); @@ -815,9 +811,9 @@ static ani_status DoNewObject(ani_env *env, ani_class cls, ani_method method, an // Use any primitive type as template parameter and just ignore the result ani_int tmp; - status = DoGeneralMethodCall(s, object.GetRef(), method, &tmp, args); + status = DoGeneralMethodCall(s, object, method, &tmp, args); ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); - *result = object.Release(); + *result = object; return ANI_OK; } @@ -856,13 +852,14 @@ NO_UB_SANITIZE static ani_status Object_GetType(ani_env *env, ani_object object, CHECK_PTR_ARG(object); CHECK_PTR_ARG(result); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsObject *etsObject = s.ToInternalType(object); ASSERT(etsObject != nullptr); EtsClass *etsClass = etsObject->GetClass(); ASSERT(etsClass != nullptr); - return s.AddLocalRef(etsClass->AsObject(), reinterpret_cast(result)); + s.AddLocalRef(etsClass->AsObject(), reinterpret_cast(result)); + return ANI_OK; } // NOLINTNEXTLINE(readability-identifier-naming) @@ -1104,25 +1101,24 @@ NO_UB_SANITIZE static ani_status Module_FindNamespace(ani_env *env, ani_module m template static ani_status NewPrimitiveTypeArray(ani_env *env, ani_size length, AniFixedArrayType *result) { - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); auto *array = InternalType::Create(length); ANI_CHECK_RETURN_IF_EQ(array, nullptr, ANI_OUT_OF_MEMORY); return s.AddLocalRef(reinterpret_cast(array), reinterpret_cast(result)); } template -static ani_status GetArrayRegion(EtsCoroutine *coro, EtsEscompatArray *objectArray, size_t start, size_t offset, - T *buff) +static ani_status GetArrayRegion(EtsArrayObject> *objectArray, size_t start, size_t offset, T *buff) { ASSERT(buff != nullptr); ANI_CHECK_RETURN_IF_GT(offset, std::numeric_limits::max() - start, ANI_OUT_OF_RANGE); size_t end = start + offset; ANI_CHECK_RETURN_IF_GT(end, objectArray->GetActualLength(), ANI_OUT_OF_RANGE); - Class *boxPrimitiveClass = EtsBoxPrimitive::GetBoxClass(coro); + Class *boxPrimitiveClass = EtsBoxPrimitive::GetBoxClass(EtsCoroutine::GetCurrent()); for (size_t posArr = start, posBuff = 0; posArr < end; ++posArr, ++posBuff) { EtsBoxPrimitive *boxedVal = nullptr; - [[maybe_unused]] auto getRes = objectArray->GetRef(posArr, reinterpret_cast(&boxedVal)); + [[maybe_unused]] auto getRes = objectArray->GetRef(posArr, &boxedVal); ASSERT(getRes); ANI_CHECK_RETURN_IF_EQ(boxedVal, nullptr, ANI_ERROR); if (boxPrimitiveClass != boxedVal->GetClass()->GetRuntimeClass()) { @@ -1136,21 +1132,48 @@ static ani_status GetArrayRegion(EtsCoroutine *coro, EtsEscompatArray *objectArr return ANI_OK; } +template +static ani_status SetArrayRegion(ScopedManagedCodeFix &s, + EtsArrayObject>> *objectArray, size_t start, + size_t offset, T *buff) +{ + ASSERT(buff != nullptr); + auto *coro = EtsCoroutine::GetCurrent(); + + ANI_CHECK_RETURN_IF_GT(offset, std::numeric_limits::max() - start, ANI_OUT_OF_RANGE); + size_t end = start + offset; + ANI_CHECK_RETURN_IF_GT(end, objectArray->GetActualLength(), ANI_OUT_OF_RANGE); + + EtsCoroutine *coroutine = s.GetCoroutine(); + EtsHandleScope scope(coroutine); + EtsHandle objectArrayHandle(coroutine, objectArray); + ASSERT(objectArrayHandle.GetPtr() != nullptr); + for (size_t posArr = start, posBuff = 0; posArr < end; ++posArr, ++posBuff) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) + T value = buff[posBuff]; + auto boxedValue = EtsBoxPrimitive>::Create(coro, value); + ANI_CHECK_RETURN_IF_EQ(boxedValue, nullptr, ANI_OUT_OF_MEMORY); + [[maybe_unused]] auto setRes = objectArrayHandle->SetRef(posArr, boxedValue); + ASSERT(setRes); + } + return ANI_OK; +} + template static ani_status GetPrimitiveTypeArrayRegion(ani_env *env, ArrayType array, ani_size start, ani_size len, T *buf) { ASSERT(array != nullptr); ANI_CHECK_RETURN_IF_EQ(len != 0 && buf == nullptr, true, ANI_INVALID_ARGS); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsObject *objArray = s.ToInternalType(static_cast(array)); if (!objArray->IsArrayClass()) { - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); + EtsArrayObject> *escompatArray = EtsArrayObject>::FromEtsObject(objArray); auto length = escompatArray->GetActualLength(); if (UNLIKELY(start > length || len > (length - start))) { return ANI_OUT_OF_RANGE; } - return GetArrayRegion(s.GetCoroutine(), escompatArray, start, len, buf); + return GetArrayRegion(escompatArray, start, len, buf); } EtsArray *internalArray = EtsArray::FromEtsObject(objArray); @@ -1166,40 +1189,16 @@ static ani_status GetPrimitiveTypeArrayRegion(ani_env *env, ArrayType array, ani return ANI_OK; } -template -static ani_status SetArrayRegion(ScopedManagedCodeFix &s, EtsEscompatArray *objectArray, size_t start, size_t offset, - T *buff) -{ - ASSERT(buff != nullptr); - - ANI_CHECK_RETURN_IF_GT(offset, std::numeric_limits::max() - start, ANI_OUT_OF_RANGE); - size_t end = start + offset; - ANI_CHECK_RETURN_IF_GT(end, objectArray->GetActualLength(), ANI_OUT_OF_RANGE); - - EtsCoroutine *coroutine = s.GetCoroutine(); - EtsHandleScope scope(coroutine); - EtsHandle objectArrayHandle(coroutine, objectArray); - ASSERT(objectArrayHandle.GetPtr() != nullptr); - for (size_t posArr = start, posBuff = 0; posArr < end; ++posArr, ++posBuff) { - // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - T value = buff[posBuff]; - auto boxedValue = EtsBoxPrimitive>::Create(coroutine, value); - ANI_CHECK_RETURN_IF_EQ(boxedValue, nullptr, ANI_OUT_OF_MEMORY); - [[maybe_unused]] auto setRes = objectArrayHandle->SetRef(posArr, boxedValue); - ASSERT(setRes); - } - return ANI_OK; -} - template static ani_status SetPrimitiveTypeArrayRegion(ani_env *env, ArrayType array, ani_size start, ani_size len, T *buf) { ASSERT(array != nullptr); ANI_CHECK_RETURN_IF_EQ(len != 0 && buf == nullptr, true, ANI_INVALID_ARGS); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsObject *objArray = s.ToInternalType(static_cast(array)); if (!objArray->IsArrayClass()) { - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); + EtsArrayObject>> *escompatArray = + EtsArrayObject>>::FromEtsObject(objArray); auto length = escompatArray->GetActualLength(); if (UNLIKELY(start > length || len > (length - start))) { return ANI_OUT_OF_RANGE; @@ -1221,6 +1220,7 @@ static ani_status SetPrimitiveTypeArrayRegion(ani_env *env, ArrayType array, ani } return ANI_OK; } + // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_GetLength(ani_env *env, ani_array array, ani_size *result) { @@ -1232,7 +1232,7 @@ NO_UB_SANITIZE static ani_status Array_GetLength(ani_env *env, ani_array array, ScopedManagedCodeFix s(env); EtsObject *objArray = s.ToInternalType(static_cast(array)); if (!objArray->IsArrayClass()) { - auto escompatArray = EtsEscompatArray::FromEtsObject(objArray); + auto escompatArray = EtsArrayObject::FromEtsObject(objArray); *result = escompatArray->GetActualLength(); } else { auto etsArray = reinterpret_cast(objArray); @@ -1245,97 +1245,79 @@ NO_UB_SANITIZE static ani_status Array_GetLength(ani_env *env, ani_array array, // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Boolean(ani_env *env, ani_size length, ani_array_boolean *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Boolean' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Char(ani_env *env, ani_size length, ani_array_char *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Char' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Byte(ani_env *env, ani_size length, ani_array_byte *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Byte' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Short(ani_env *env, ani_size length, ani_array_short *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Short' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Int(ani_env *env, ani_size length, ani_array_int *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Int' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Long(ani_env *env, ani_size length, ani_array_long *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Long' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Float(ani_env *env, ani_size length, ani_array_float *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Float' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_New_Double(ani_env *env, ani_size length, ani_array_double *result) { - LOG(ERROR, ANI) << "Function 'Array_New_Double' is deprecated. Use Array_New instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Array_GetRegion_Boolean(ani_env *env, ani_array_boolean array, ani_size offset, ani_size length, ani_boolean *nativeBuffer) { - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Boolean' is deprecated. Use Array_Get instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(array); @@ -1347,8 +1329,6 @@ NO_UB_SANITIZE static ani_status Array_GetRegion_Boolean(ani_env *env, ani_array NO_UB_SANITIZE static ani_status Array_GetRegion_Char(ani_env *env, ani_array_char array, ani_size offset, ani_size length, ani_char *nativeBuffer) { - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Char' is deprecated. Use Array_Get instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(array); @@ -1360,73 +1340,6 @@ NO_UB_SANITIZE static ani_status Array_GetRegion_Char(ani_env *env, ani_array_ch NO_UB_SANITIZE static ani_status Array_GetRegion_Byte(ani_env *env, ani_array_byte array, ani_size offset, ani_size length, ani_byte *nativeBuffer) { - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Byte' is deprecated. Use Array_Get instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_GetRegion_Short(ani_env *env, ani_array_short array, ani_size offset, - ani_size length, ani_short *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Short' is deprecated. Use Array_Get instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_GetRegion_Int(ani_env *env, ani_array_int array, ani_size offset, - ani_size length, ani_int *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Int' is deprecated. Use Array_Get instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_GetRegion_Long(ani_env *env, ani_array_long array, ani_size offset, - ani_size length, ani_long *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Long' is deprecated. Use Array_Get instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_GetRegion_Float(ani_env *env, ani_array_float array, ani_size offset, - ani_size length, ani_float *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Float' is deprecated. Use Array_Get instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_GetRegion_Double(ani_env *env, ani_array_double array, ani_size offset, - ani_size length, ani_double *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_GetRegion_Double' is deprecated. Use Array_Get instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(array); @@ -1435,467 +1348,62 @@ NO_UB_SANITIZE static ani_status Array_GetRegion_Double(ani_env *env, ani_array_ } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Char(ani_env *env, ani_array_char array, ani_size offset, - ani_size length, const ani_char *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Char' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Boolean(ani_env *env, ani_array_boolean array, ani_size offset, - ani_size length, const ani_boolean *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Boolean' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Short(ani_env *env, ani_array_short array, ani_size offset, - ani_size length, const ani_short *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Short' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Int(ani_env *env, ani_array_int array, ani_size offset, - ani_size length, const ani_int *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Int' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Long(ani_env *env, ani_array_long array, ani_size offset, - ani_size length, const ani_long *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Long' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Float(ani_env *env, ani_array_float array, ani_size offset, - ani_size length, const ani_float *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_New_Ref(ani_env *env, ani_type type, ani_size length, ani_ref initialElement, + ani_array_ref *result) { - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Float' is deprecated. Use Array_Set instead"; - ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Double(ani_env *env, ani_array_double array, ani_size offset, - ani_size length, const ani_double *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Double' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_SetRegion_Byte(ani_env *env, ani_array_byte array, ani_size offset, - ani_size length, const ani_byte *nativeBuffer) -{ - LOG(ERROR, ANI) << "Function 'Array_SetRegion_Byte' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_New_Ref(ani_env *env, ani_type type, ani_size length, ani_ref initialElement, - ani_array_ref *result) -{ - LOG(ERROR, ANI) << "Function 'Array_New_Ref' is deprecated. Use Array_New instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - ANI_CHECK_RETURN_IF_GT(length, std::numeric_limits::max(), ANI_INVALID_ARGS); - CHECK_PTR_ARG(type); - CHECK_PTR_ARG(result); + ANI_CHECK_RETURN_IF_GT(length, std::numeric_limits::max(), ANI_INVALID_ARGS); + CHECK_PTR_ARG(type); + CHECK_PTR_ARG(result); ScopedManagedCodeFix s(env); - auto *internalArray = EtsEscompatArray::Create(length); + auto *internalArray = EtsArrayObject::Create(length); ANI_CHECK_RETURN_IF_EQ(internalArray, nullptr, ANI_OUT_OF_MEMORY); if (initialElement != nullptr) { EtsObject *obj = s.ToInternalType(initialElement); for (ani_size i = 0; i < length; i++) { - internalArray->SetRef(i, obj); - } - } - return s.AddLocalRef(reinterpret_cast(internalArray), reinterpret_cast(result)); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_Set_Ref(ani_env *env, ani_array_ref array, ani_size index, ani_ref ref) -{ - LOG(ERROR, ANI) << "Function 'Array_Set_Ref' is deprecated. Use Array_Set instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - - ScopedManagedCodeFix s(env); - EtsObject *objArray = s.ToInternalType(reinterpret_cast(array)); - EtsObject *obj = s.ToInternalType(ref); - if (!objArray->IsArrayClass()) { - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); - const auto length = escompatArray->GetActualLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - if (!escompatArray->SetRef(index, obj)) { - return ANI_ERROR; - } - } else { - EtsObjectArray *internalArray = EtsObjectArray::FromEtsObject(objArray); - const auto length = internalArray->GetLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - - if (obj != nullptr) { - auto componentClass = internalArray->GetClass()->GetComponentType(); - if (!obj->IsInstanceOf(componentClass)) { - return ANI_INVALID_TYPE; - } - } - internalArray->Set(static_cast(index), obj); - } - return ANI_OK; -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_Get_Ref(ani_env *env, ani_array_ref array, ani_size index, ani_ref *result) -{ - LOG(ERROR, ANI) << "Function 'Array_Get_Ref' is deprecated. Use Array_Get instead"; - - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsObject *objArray = s.ToInternalType(reinterpret_cast(array)); - EtsObject *obj = nullptr; - if (!objArray->IsArrayClass()) { - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); - const auto length = escompatArray->GetActualLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - if (!escompatArray->GetRef(index, &obj)) { - return ANI_ERROR; - } - } else { - EtsObjectArray *internalArray = EtsObjectArray::FromEtsObject(objArray); - const auto length = internalArray->GetLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - - obj = internalArray->Get(static_cast(index)); - } - return s.AddLocalRef(obj, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_New(ani_env *env, ani_size length, ani_ref initialElement, ani_array *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - ANI_CHECK_RETURN_IF_GT(length, std::numeric_limits::max(), ANI_INVALID_ARGS); - if (LIKELY(length != 0)) { - CHECK_PTR_ARG(initialElement); - } - CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - auto *internalArray = EtsEscompatArray::Create(length); - ANI_CHECK_RETURN_IF_EQ(internalArray, nullptr, ANI_OUT_OF_MEMORY); - if (length != 0 && !IsUndefined(initialElement)) { - EtsObject *obj = s.ToInternalType(initialElement); - for (ani_size i = 0; i < length; ++i) { - internalArray->SetRef(i, obj); - } - } - return s.AddLocalRef(internalArray->AsObject(), reinterpret_cast(result)); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_Set(ani_env *env, ani_array array, ani_size index, ani_ref ref) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(ref); - - ScopedManagedCodeFix s(env); - EtsObject *objArray = s.ToInternalType(array); - EtsObject *obj = s.ToInternalType(ref); - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); - const auto length = escompatArray->GetActualLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - if (!escompatArray->SetRef(index, obj)) { - return ANI_ERROR; - } - return ANI_OK; -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_Get(ani_env *env, ani_array array, ani_size index, ani_ref *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsObject *obj = nullptr; - EtsObject *objArray = s.ToInternalType(array); - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); - const auto length = escompatArray->GetActualLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - if (!escompatArray->GetRef(index, &obj)) { - return ANI_ERROR; - } - return s.AddLocalRef(obj, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_Push(ani_env *env, ani_array array, ani_ref ref) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(ref); - - ScopedManagedCodeFix s(env); - EtsObject *obj = s.ToInternalType(ref); - EtsObject *objArray = s.ToInternalType(array); - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); - escompatArray->Push(obj); - return ANI_OK; -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Array_Pop(ani_env *env, ani_array array, ani_ref *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsObject *obj = nullptr; - EtsObject *objArray = s.ToInternalType(array); - EtsEscompatArray *escompatArray = EtsEscompatArray::FromEtsObject(objArray); - obj = escompatArray->Pop(); - return s.AddLocalRef(obj, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetLength(ani_env *env, ani_fixedarray array, ani_size *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsArray *etsArray = s.ToInternalType(array); - *result = etsArray->GetLength(); - - return ANI_OK; -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Boolean(ani_env *env, ani_size length, ani_fixedarray_boolean *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Char(ani_env *env, ani_size length, ani_fixedarray_char *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Byte(ani_env *env, ani_size length, ani_fixedarray_byte *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Short(ani_env *env, ani_size length, ani_fixedarray_short *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Int(ani_env *env, ani_size length, ani_fixedarray_int *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Long(ani_env *env, ani_size length, ani_fixedarray_long *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Float(ani_env *env, ani_size length, ani_fixedarray_float *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Double(ani_env *env, ani_size length, ani_fixedarray_double *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(result); - return NewPrimitiveTypeArray(env, length, result); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Boolean(ani_env *env, ani_fixedarray_boolean array, - ani_size offset, ani_size length, - ani_boolean *nativeBuffer) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Char(ani_env *env, ani_fixedarray_char array, ani_size offset, - ani_size length, ani_char *nativeBuffer) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Byte(ani_env *env, ani_fixedarray_byte array, ani_size offset, - ani_size length, ani_byte *nativeBuffer) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(array); - CHECK_PTR_ARG(nativeBuffer); - return GetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_New_Ref(ani_env *env, ani_type type, ani_size length, - ani_ref initialElement, ani_fixedarray_ref *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(type); - ANI_CHECK_RETURN_IF_GT(length, std::numeric_limits::max(), ANI_INVALID_ARGS); - if (LIKELY(length != 0)) { - CHECK_PTR_ARG(initialElement); - } - CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsClass *internalClass = s.ToInternalType(type); - auto *internalArray = EtsObjectArray::Create(internalClass, static_cast(length)); - ANI_CHECK_RETURN_IF_EQ(internalArray, nullptr, ANI_OUT_OF_MEMORY); - if (length != 0 && !IsUndefined(initialElement)) { - EtsObject *obj = s.ToInternalType(initialElement); - for (ani_size i = 0; i < length; i++) { - internalArray->Set(static_cast(i), obj); + internalArray->SetRef(i, obj); } } return s.AddLocalRef(reinterpret_cast(internalArray), reinterpret_cast(result)); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_Set_Ref(ani_env *env, ani_fixedarray_ref array, ani_size index, ani_ref ref) +NO_UB_SANITIZE static ani_status Array_Set_Ref(ani_env *env, ani_array_ref array, ani_size index, ani_ref ref) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); CHECK_PTR_ARG(array); - CHECK_PTR_ARG(ref); ScopedManagedCodeFix s(env); + EtsObject *objArray = s.ToInternalType(reinterpret_cast(array)); EtsObject *obj = s.ToInternalType(ref); - EtsObjectArray *internalArray = s.ToInternalType(array); - const auto length = internalArray->GetLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); + if (!objArray->IsArrayClass()) { + EtsArrayObject *escompatArray = EtsArrayObject::FromEtsObject(objArray); + const auto length = escompatArray->GetActualLength(); + ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); + if (!escompatArray->SetRef(index, obj)) { + return ANI_ERROR; + } + } else { + EtsObjectArray *internalArray = EtsObjectArray::FromEtsObject(objArray); + const auto length = internalArray->GetLength(); + ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - if (!IsUndefined(ref)) { - auto componentClass = internalArray->GetClass()->GetComponentType(); - if (!obj->IsInstanceOf(componentClass)) { - return ANI_INVALID_TYPE; + if (obj != nullptr) { + auto componentClass = internalArray->GetClass()->GetComponentType(); + if (!obj->IsInstanceOf(componentClass)) { + return ANI_INVALID_TYPE; + } } + internalArray->Set(static_cast(index), obj); } - internalArray->Set(static_cast(index), obj); return ANI_OK; } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_Get_Ref(ani_env *env, ani_fixedarray_ref array, ani_size index, - ani_ref *result) +NO_UB_SANITIZE static ani_status Array_Get_Ref(ani_env *env, ani_array_ref array, ani_size index, ani_ref *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -1903,11 +1411,22 @@ NO_UB_SANITIZE static ani_status FixedArray_Get_Ref(ani_env *env, ani_fixedarray CHECK_PTR_ARG(result); ScopedManagedCodeFix s(env); - EtsObjectArray *internalArray = s.ToInternalType(array); - const auto length = internalArray->GetLength(); - ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); + EtsObject *objArray = s.ToInternalType(reinterpret_cast(array)); + EtsObject *obj = nullptr; + if (!objArray->IsArrayClass()) { + EtsArrayObject *escompatArray = EtsArrayObject::FromEtsObject(objArray); + const auto length = escompatArray->GetActualLength(); + ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); + if (!escompatArray->GetRef(index, &obj)) { + return ANI_ERROR; + } + } else { + EtsObjectArray *internalArray = EtsObjectArray::FromEtsObject(objArray); + const auto length = internalArray->GetLength(); + ANI_CHECK_RETURN_IF_GE(index, length, ANI_OUT_OF_RANGE); - EtsObject *obj = internalArray->Get(static_cast(index)); + obj = internalArray->Get(static_cast(index)); + } return s.AddLocalRef(obj, result); } @@ -1949,36 +1468,24 @@ static ani_status DoBindNativeFunctions(ani_env *env, ani_namespace ns, const an ani_size nrFunctions) { ANI_CHECK_RETURN_IF_EQ(nrFunctions, 0, ANI_OK); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsNamespace *etsNs = s.ToInternalType(ns); PandaVector etsMethods; etsMethods.reserve(nrFunctions); - for (const auto &fn : Span(functions, nrFunctions)) { - const char *name = fn.name; - const char *signature = fn.signature; - std::optional replacedSignature; - if (signature != nullptr) { - CheckSignatureMangling(signature); - replacedSignature = ReplaceArrayInSignature(signature); - signature = replacedSignature.has_value() ? replacedSignature->c_str() : signature; - } + for (ani_size i = 0; i < nrFunctions; ++i) { // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - EtsMethod *method = etsNs->GetFunction(name, signature, true); - if (method != nullptr) { - etsMethods.push_back(method); - continue; - } - PandaVector methodVec = etsNs->GetFunctionOverload(name, signature, true); - if (methodVec.size() == 1U) { - etsMethods.push_back(methodVec[0]); + if (functions[i].signature == nullptr) { + // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) + etsMethods.push_back(etsNs->GetFunction(functions[i].name, functions[i].signature)); continue; } - if (methodVec.empty()) { - return ANI_NOT_FOUND; - } - if (methodVec.size() > 1U) { - return ANI_AMBIGUOUS; + // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) + auto optSignature = ReplaceArrayInSignature(functions[i].signature); + if (!optSignature) { + return ANI_INVALID_ARGS; } + // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) + etsMethods.push_back(etsNs->GetFunction(functions[i].name, optSignature.value().c_str())); } return DoBindNative(s, etsMethods, functions, nrFunctions); } @@ -2009,8 +1516,8 @@ NO_UB_SANITIZE static ani_status Namespace_BindNativeFunctions(ani_env *env, ani } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Short(ani_env *env, ani_fixedarray_short array, ani_size offset, - ani_size length, ani_short *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_GetRegion_Short(ani_env *env, ani_array_short array, ani_size offset, + ani_size length, ani_short *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2020,8 +1527,8 @@ NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Short(ani_env *env, ani_fi } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Int(ani_env *env, ani_fixedarray_int array, ani_size offset, - ani_size length, ani_int *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_GetRegion_Int(ani_env *env, ani_array_int array, ani_size offset, + ani_size length, ani_int *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2031,8 +1538,8 @@ NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Int(ani_env *env, ani_fixe } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Long(ani_env *env, ani_fixedarray_long array, ani_size offset, - ani_size length, ani_long *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_GetRegion_Long(ani_env *env, ani_array_long array, ani_size offset, + ani_size length, ani_long *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2042,8 +1549,8 @@ NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Long(ani_env *env, ani_fix } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Float(ani_env *env, ani_fixedarray_float array, ani_size offset, - ani_size length, ani_float *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_GetRegion_Float(ani_env *env, ani_array_float array, ani_size offset, + ani_size length, ani_float *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2053,8 +1560,8 @@ NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Float(ani_env *env, ani_fi } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Double(ani_env *env, ani_fixedarray_double array, ani_size offset, - ani_size length, ani_double *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_GetRegion_Double(ani_env *env, ani_array_double array, ani_size offset, + ani_size length, ani_double *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2064,8 +1571,8 @@ NO_UB_SANITIZE static ani_status FixedArray_GetRegion_Double(ani_env *env, ani_f } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Char(ani_env *env, ani_fixedarray_char array, ani_size offset, - ani_size length, const ani_char *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Char(ani_env *env, ani_array_char array, ani_size offset, + ani_size length, const ani_char *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2075,9 +1582,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Char(ani_env *env, ani_fix } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Boolean(ani_env *env, ani_fixedarray_boolean array, - ani_size offset, ani_size length, - const ani_boolean *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Boolean(ani_env *env, ani_array_boolean array, ani_size offset, + ani_size length, const ani_boolean *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2087,8 +1593,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Boolean(ani_env *env, ani_ } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Short(ani_env *env, ani_fixedarray_short array, ani_size offset, - ani_size length, const ani_short *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Short(ani_env *env, ani_array_short array, ani_size offset, + ani_size length, const ani_short *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2098,8 +1604,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Short(ani_env *env, ani_fi } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Int(ani_env *env, ani_fixedarray_int array, ani_size offset, - ani_size length, const ani_int *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Int(ani_env *env, ani_array_int array, ani_size offset, + ani_size length, const ani_int *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2109,8 +1615,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Int(ani_env *env, ani_fixe } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Long(ani_env *env, ani_fixedarray_long array, ani_size offset, - ani_size length, const ani_long *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Long(ani_env *env, ani_array_long array, ani_size offset, + ani_size length, const ani_long *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2120,8 +1626,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Long(ani_env *env, ani_fix } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Float(ani_env *env, ani_fixedarray_float array, ani_size offset, - ani_size length, const ani_float *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Float(ani_env *env, ani_array_float array, ani_size offset, + ani_size length, const ani_float *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2131,8 +1637,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Float(ani_env *env, ani_fi } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Double(ani_env *env, ani_fixedarray_double array, ani_size offset, - ani_size length, const ani_double *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Double(ani_env *env, ani_array_double array, ani_size offset, + ani_size length, const ani_double *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2142,8 +1648,8 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Double(ani_env *env, ani_f } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Byte(ani_env *env, ani_fixedarray_byte array, ani_size offset, - ani_size length, const ani_byte *nativeBuffer) +NO_UB_SANITIZE static ani_status Array_SetRegion_Byte(ani_env *env, ani_array_byte array, ani_size offset, + ani_size length, const ani_byte *nativeBuffer) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2152,19 +1658,9 @@ NO_UB_SANITIZE static ani_status FixedArray_SetRegion_Byte(ani_env *env, ani_fix return SetPrimitiveTypeArrayRegion(env, array, offset, length, nativeBuffer); } -static ani_status GetDirectMethodOverload(EtsClass *klass, const char *name, const char *signature, EtsMethod **result) -{ - PandaVector methodVec = klass->GetDirectMethodOverload(name, signature, true); - if (!methodVec.empty()) { - ANI_CHECK_RETURN_IF_GT(methodVec.size(), 1U, ANI_AMBIGUOUS); - ASSERT(methodVec.size() == 1U); - *result = methodVec[0]; - } - return ANI_OK; -} - -static ani_status BindNativeMethods(ani_env *env, ani_class cls, const ani_native_function *methods, ani_size nrMethods, - bool isStatic) +// NOLINTNEXTLINE(readability-identifier-naming) +NO_UB_SANITIZE static ani_status Class_BindNativeMethods(ani_env *env, ani_class cls, + const ani_native_function *methods, ani_size nrMethods) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); @@ -2172,71 +1668,31 @@ static ani_status BindNativeMethods(ani_env *env, ani_class cls, const ani_nativ CHECK_PTR_ARG(methods); ANI_CHECK_RETURN_IF_EQ(nrMethods, 0, ANI_OK); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsClass *klass = s.ToInternalType(cls); PandaVector etsMethods; etsMethods.reserve(nrMethods); - for (const ani_native_function &m : Span(methods, nrMethods)) { - const char *name = m.name; + for (ani_size i = 0; i < nrMethods; ++i) { + ani_native_function m = methods[i]; // NOLINT(cppcoreguidelines-pro-bounds-pointer-arithmetic) const char *signature = m.signature; - std::optional replacedSignature; - if (signature != nullptr) { - CheckSignatureMangling(signature); - replacedSignature = ReplaceArrayInSignature(signature); - signature = replacedSignature.has_value() ? replacedSignature->c_str() : signature; - } - EtsMethod *method = nullptr; - if (isStatic) { - if (signature == nullptr) { - bool isUnique = false; - method = klass->GetDirectStaticMethod(name, &isUnique); - ANI_CHECK_RETURN_IF_EQ(isUnique, false, ANI_AMBIGUOUS); - } else { - method = klass->GetDirectStaticMethod(name, signature); - } - } else { + + // CC-OFFNXT(G.FMT.14-CPP) project code style + auto *method = [klass, name = m.name, signature]() -> EtsMethod * { if (signature == nullptr) { - method = klass->GetDirectMethod(name); - } else { - method = klass->GetDirectMethod(name, signature, true); + return klass->GetDirectMethod(name); } - if (method == nullptr) { - ani_status status = GetDirectMethodOverload(klass, name, signature, &method); - ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); + auto optSignature = ReplaceArrayInSignature(signature); + if (optSignature) { + return klass->GetDirectMethod(name, optSignature.value().c_str()); } - } - ANI_CHECK_RETURN_IF_EQ(method, nullptr, ANI_NOT_FOUND); - ANI_CHECK_RETURN_IF_EQ(method->IsNative(), false, ANI_NOT_FOUND); - - // NOTE: - // Replace condition by 'ANI_CHECK_RETURN_IF_NE(isStatic, method->IsStatic(), ANI_INVALID_ARGS)' - // when all parts that uses Class_BindNativeMethods for static method will be fixed, #23863 - ANI_CHECK_RETURN_IF_EQ(isStatic && !method->IsStatic(), true, ANI_INVALID_ARGS); - - if (!isStatic && method->IsStatic()) { - LOG(ERROR, ANI) << "Use 'Class_BindStaticNativeMethods()' to bind static methods, method=" - << method->GetFullName(true); - } + return nullptr; + }(); etsMethods.push_back(method); } return DoBindNative(s, etsMethods, methods, nrMethods); } -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Class_BindNativeMethods(ani_env *env, ani_class cls, - const ani_native_function *methods, ani_size nrMethods) -{ - return BindNativeMethods(env, cls, methods, nrMethods, false); -} - -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Class_BindStaticNativeMethods(ani_env *env, ani_class cls, - const ani_native_function *methods, ani_size nrMethods) -{ - return BindNativeMethods(env, cls, methods, nrMethods, true); -} - // NOLINTNEXTLINE(readability-identifier-naming) NO_UB_SANITIZE static ani_status Reference_Delete(ani_env *env, ani_ref ref) { @@ -2284,8 +1740,6 @@ NO_UB_SANITIZE static ani_status FunctionalObject_Call(ani_env *env, ani_fn_obje } CHECK_PTR_ARG(result); - // API should migrate to a correct threshold - static constexpr size_t STD_CORE_FUNCTION_MAX_ARITY = EtsPlatformTypes::CORE_FUNCTION_ARITY_THRESHOLD - 2U; ANI_CHECK_RETURN_IF_GT(argc, STD_CORE_FUNCTION_MAX_ARITY, ANI_INVALID_ARGS); ani_status status = ANI_OK; @@ -2385,9 +1839,8 @@ NO_UB_SANITIZE static ani_status Variable_SetValue_Ref(ani_env *env, ani_variabl template static ani_status DoGetField(ScopedManagedCodeFix &s, ani_class cls, const char *name, EtsField **result) { - ASSERT(name != nullptr); - ASSERT(result != nullptr); EtsClass *klass = s.ToInternalType(cls); + EtsField *field = [&]() { if constexpr (IS_STATIC_FIELD) { return klass->GetStaticFieldIDByName(name, nullptr); @@ -3947,7 +3400,6 @@ NO_UB_SANITIZE static ani_status Object_SetPropertyByName_Ref(ani_env *env, ani_ CHECK_ENV(env); CHECK_PTR_ARG(object); CHECK_PTR_ARG(name); - CHECK_PTR_ARG(value); return DoSetPropertyByName(env, object, name, value); } @@ -3982,10 +3434,11 @@ NO_UB_SANITIZE static ani_status ThrowError(ani_env *env, ani_error err) CHECK_PTR_ARG(env); CHECK_PTR_ARG(err); - ScopedManagedCodeFix s(env); + PandaEnv *pandaEnv = PandaEnv::FromAniEnv(env); + ScopedManagedCodeFix s(pandaEnv); EtsThrowable *exception = s.ToInternalType(err); ANI_CHECK_RETURN_IF_EQ(exception, nullptr, ANI_ERROR); - PandaEnv::FromAniEnv(env)->SetException(exception); + PandaEnv::ToPandaEtsEnv(pandaEnv)->SetException(exception); return ANI_OK; } @@ -4027,37 +3480,59 @@ private: ani_error error_ {nullptr}; }; +static ani_status FindClassByName(ani_env *env, const char *name, ani_class *cls) +{ + // NOTE(dslynko, #23447): use cache of well-known classes + auto status = env->FindClass(name, cls); + ASSERT(status == ANI_OK); + return status; +} + +static ani_status FindMethodByName(ani_env *env, ani_class cls, const char *name, const char *sig, ani_method *res) +{ + auto status = env->Class_FindMethod(cls, name, sig, res); + ASSERT(status == ANI_OK); + return status; +} + +static ani_status CallParameterlessCtor(ani_env *env, ani_class cls, ani_object *obj) +{ + ani_method ctor {}; + // NOLINTNEXTLINE(clang-analyzer-deadcode.DeadStores) + auto status = env->Class_FindMethod(cls, "", ":V", &ctor); + ASSERT(status == ANI_OK); + + // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) + status = env->Object_New(cls, ctor, obj); + ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); + return status; +} + // NOLINTBEGIN(clang-analyzer-deadcode.DeadStores) static ani_status GetErrorDescriptionLines(ani_env *env, ani_error error, ani_string *errDesc) { - const StdlibCache *cache = PandaEnv::FromAniEnv(env)->GetEtsVM()->GetStdlibCache(); - - LocalRef errorType(env); - auto status = env->Object_GetType(error, &errorType.GetRef()); + ani_type errorType = nullptr; + auto status = env->Object_GetType(error, &errorType); ASSERT(status == ANI_OK); // Get error message ani_ref errorMessage = nullptr; - // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) - status = env->Object_CallMethod_Ref(error, cache->std_core_String_Builder_toString, &errorMessage); + status = env->Object_CallMethodByName_Ref(error, "toString", ":Lstd/core/String;", &errorMessage); ASSERT(status == ANI_OK); // Add newline between error message and stack trace - LocalRef newlineString(env); - + ani_string newlineString = nullptr; std::string_view newline = "\n"; // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) - status = env->String_NewUTF8(newline.data(), newline.size(), &newlineString.GetRef()); + status = env->String_NewUTF8(newline.data(), newline.size(), &newlineString); ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); // Get stack trace ani_method getterMethod = nullptr; - status = env->Class_FindGetter(static_cast(errorType.GetRef()), "stack", &getterMethod); + status = env->Class_FindGetter(static_cast(errorType), "stack", &getterMethod); ASSERT(status == ANI_OK); - ani_ref stackTrace = nullptr; - // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) status = env->Object_CallMethod_Ref(error, getterMethod, &stackTrace); ASSERT(status == ANI_OK); @@ -4073,24 +3548,31 @@ static ani_status GetErrorDescriptionLines(ani_env *env, ani_error error, ani_st stackTrace = createdString; } - LocalRef sbObj(env); + ani_class sbCls = nullptr; + FindClassByName(env, "Lstd/core/StringBuilder;", &sbCls); - // NOLINTBEGIN(cppcoreguidelines-pro-type-vararg) + // assemble error message, newline and trace into a single string + ani_method sbAppend = nullptr; status = - env->Object_New(cache->std_core_String_Builder, cache->std_core_String_Builder_default_ctor, &sbObj.GetRef()); - // NOLINTEND(cppcoreguidelines-pro-type-vararg) + FindMethodByName(env, sbCls, "append", + "Lstd/core/String;Lstd/core/String;Lstd/core/String;:Lstd/core/StringBuilder;", &sbAppend); + ASSERT(status == ANI_OK); + ani_object sbObj = nullptr; + status = CallParameterlessCtor(env, sbCls, &sbObj); ASSERT(status == ANI_OK); // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) - status = env->Object_CallMethod_Ref(sbObj.GetRef(), cache->std_core_String_Builder_append, - reinterpret_cast(&sbObj.GetRef()), errorMessage, - newlineString.GetRef(), stackTrace); + status = env->Object_CallMethod_Ref(sbObj, sbAppend, reinterpret_cast(&sbObj), errorMessage, + newlineString, stackTrace); + ASSERT(status == ANI_OK); + + ani_method sbToString = nullptr; + status = FindMethodByName(env, sbCls, "toString", ":Lstd/core/String;", &sbToString); ASSERT(status == ANI_OK); // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) - status = env->Object_CallMethod_Ref(sbObj.GetRef(), cache->std_core_String_Builder_toString, - reinterpret_cast(errDesc)); + status = env->Object_CallMethod_Ref(sbObj, sbToString, reinterpret_cast(errDesc)); ASSERT(status == ANI_OK); return status; } @@ -4100,8 +3582,6 @@ NO_UB_SANITIZE static ani_status DescribeError(ani_env *env) ANI_DEBUG_TRACE(env); CHECK_PTR_ARG(env); - const StdlibCache *cache = PandaEnv::FromAniEnv(env)->GetEtsVM()->GetStdlibCache(); - ani_boolean errorExists = ANI_FALSE; auto status = env->ExistUnhandledError(&errorExists); ASSERT(status == ANI_OK); @@ -4114,17 +3594,29 @@ NO_UB_SANITIZE static ani_status DescribeError(ani_env *env) status = GetErrorDescriptionLines(env, s.GetError(), &errorDescription); ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); - LocalRef console(env); - status = env->Variable_GetValue_Ref(cache->std_core_console, &console.GetRef()); + // Get `std.core.console` global variable [Lstd/core/Object + ani_module stdCoreModule = nullptr; + status = env->FindModule("Lstd/core;", &stdCoreModule); + ASSERT(status == ANI_OK); + + ani_variable consoleVar = nullptr; + status = env->Module_FindVariable(stdCoreModule, "console", &consoleVar); + ASSERT(status == ANI_OK); + + ani_ref console = nullptr; + status = env->Variable_GetValue_Ref(consoleVar, &console); + ASSERT(status == ANI_OK); + + ani_type strTyp = nullptr; + status = env->Object_GetType(errorDescription, &strTyp); ASSERT(status == ANI_OK); - LocalRef arr(env); - status = env->Array_New(1, errorDescription, &arr.GetRef()); + ani_array_ref arr = nullptr; + status = env->Array_New_Ref(strTyp, 1, errorDescription, &arr); ANI_CHECK_RETURN_IF_NE(status, ANI_OK, status); // NOLINTNEXTLINE(cppcoreguidelines-pro-type-vararg) - status = env->Object_CallMethod_Void(static_cast(console.GetRef()), cache->std_core_Console_error, - arr.GetRef()); + status = env->Object_CallMethodByName_Void(static_cast(console), "error", "Lescompat/Array;:V", arr); ASSERT(status == ANI_OK); return status; } @@ -4175,7 +3667,6 @@ NO_UB_SANITIZE static ani_status Reference_IsNull(ani_env *env, ani_ref ref, ani { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); // Fast path @@ -4194,7 +3685,6 @@ NO_UB_SANITIZE static ani_status Reference_IsUndefined(ani_env *env, ani_ref ref { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); *result = IsUndefined(ref) ? ANI_TRUE : ANI_FALSE; @@ -4206,7 +3696,6 @@ NO_UB_SANITIZE static ani_status Reference_IsNullishValue(ani_env *env, ani_ref { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); // Fast path @@ -4225,8 +3714,6 @@ NO_UB_SANITIZE static ani_status Reference_Equals(ani_env *env, ani_ref ref0, an { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref0); - CHECK_PTR_ARG(ref1); CHECK_PTR_ARG(result); // Fast path @@ -4246,8 +3733,6 @@ NO_UB_SANITIZE static ani_status Reference_StrictEquals(ani_env *env, ani_ref re { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref0); - CHECK_PTR_ARG(ref1); CHECK_PTR_ARG(result); // Fast path @@ -4267,11 +3752,11 @@ NO_UB_SANITIZE static ani_status Object_InstanceOf(ani_env *env, ani_object obje { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(object); CHECK_PTR_ARG(type); + CHECK_PTR_ARG(object); CHECK_PTR_ARG(result); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsClass *internalClass = s.ToInternalType(type); EtsObject *internalObject = s.ToInternalType(object); @@ -4710,7 +4195,7 @@ NO_UB_SANITIZE static ani_status String_NewUTF8(ani_env *env, const char *utf8_s CHECK_PTR_ARG(utf8_string); CHECK_PTR_ARG(result); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); auto internalString = EtsString::CreateFromUtf8(utf8_string, size); ANI_CHECK_RETURN_IF_EQ(internalString, nullptr, ANI_OUT_OF_MEMORY); return s.AddLocalRef(internalString->AsObject(), reinterpret_cast(result)); @@ -4724,7 +4209,7 @@ NO_UB_SANITIZE static ani_status String_GetUTF8Size(ani_env *env, ani_string str CHECK_PTR_ARG(string); CHECK_PTR_ARG(result); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); auto internalString = s.ToInternalType(string); *result = internalString->GetUtf8Length(); return ANI_OK; @@ -4767,7 +4252,7 @@ NO_UB_SANITIZE static ani_status String_GetUTF8SubString(ani_env *env, ani_strin return ANI_BUFFER_TO_SMALL; } - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); EtsString *internalString = s.ToInternalType(string); auto utf8Length = internalString->GetUtf8Length(); if (UNLIKELY(substr_offset > utf8Length || substrSize > (utf8Length - substr_offset))) { @@ -4802,7 +4287,7 @@ NO_UB_SANITIZE static ani_status String_GetUTF16Size(ani_env *env, ani_string st CHECK_PTR_ARG(string); CHECK_PTR_ARG(result); - ScopedManagedCodeFix s(env); + ScopedManagedCodeFix s(PandaEnv::FromAniEnv(env)); auto internalString = s.ToInternalType(string); *result = internalString->GetUtf16Length(); return ANI_OK; @@ -6356,7 +5841,6 @@ NO_UB_SANITIZE static ani_status GlobalReference_Create(ani_env *env, ani_ref re { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); ScopedManagedCodeFix s(env); @@ -6368,7 +5852,6 @@ NO_UB_SANITIZE static ani_status GlobalReference_Delete(ani_env *env, ani_ref gr { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(gref); ScopedManagedCodeFix s(env); return s.DelGlobalRef(gref); @@ -6379,7 +5862,6 @@ NO_UB_SANITIZE static ani_status WeakReference_Create(ani_env *env, ani_ref ref, { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); ScopedManagedCodeFix s(env); @@ -6511,7 +5993,6 @@ NO_UB_SANITIZE static ani_status DestroyEscapeLocalScope(ani_env *env, ani_ref r { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); ScopedManagedCodeFix s(env); @@ -6783,8 +6264,6 @@ NO_UB_SANITIZE static ani_status PromiseResolver_Resolve(ani_env *env, ani_resol { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(resolver); - CHECK_PTR_ARG(resolution); ScopedManagedCodeFix s(env); EtsPromise *promise = s.ToInternalType(resolver); @@ -6801,8 +6280,6 @@ NO_UB_SANITIZE static ani_status PromiseResolver_Reject(ani_env *env, ani_resolv { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(resolver); - CHECK_PTR_ARG(rejection); ScopedManagedCodeFix s(env); EtsPromise *promise = s.ToInternalType(resolver); @@ -6815,243 +6292,116 @@ NO_UB_SANITIZE static ani_status PromiseResolver_Reject(ani_env *env, ani_resolv } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_InstanceOf(ani_env *env, ani_ref ref, ani_ref type, ani_boolean *result) +NO_UB_SANITIZE static ani_status FixedArray_New_Boolean(ani_env *env, ani_size length, ani_array_boolean *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); - CHECK_PTR_ARG(type); CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsCoroutine *coro = s.GetCoroutine(); - EtsObject *lhsObj = s.ToInternalType(ref); - EtsObject *rhsObj = s.ToInternalType(type); - - bool isInstance = EtsIsinstance(coro, lhsObj, rhsObj); - *result = isInstance ? ANI_TRUE : ANI_FALSE; - return ANI_OK; -} - -template -static ani_status DoGetAnyProperty(ani_env *env, ani_ref ref, T key, ani_ref *result) -{ - ScopedManagedCodeFix s(env); - EtsCoroutine *coro = s.GetCoroutine(); - EtsObject *thisObj = s.ToInternalType(ref); - EtsObject *retObj = nullptr; - - if constexpr (std::is_same_v) { - panda_file::File::StringData propName = {static_cast(utf::MUtf8ToUtf16Size(utf::CStringAsMutf8(key))), - utf::CStringAsMutf8(key)}; - retObj = EtsLdbyname(coro, thisObj, propName); - } else if constexpr (std::is_same_v) { - retObj = EtsLdbyidx(coro, thisObj, key); - } else { - static_assert(std::is_same_v); - ASSERT(key != nullptr); - EtsObject *keyObj = s.ToInternalType(key); - retObj = EtsLdbyval(coro, thisObj, keyObj); - } - ANI_CHECK_RETURN_IF_EQ(s.HasPendingException(), true, ANI_PENDING_ERROR); - return s.AddLocalRef(retObj, result); -} - -template -static ani_status DoSetAnyProperty(ani_env *env, ani_ref ref, T key, ani_ref value) -{ - ScopedManagedCodeFix s(env); - EtsCoroutine *coro = s.GetCoroutine(); - EtsObject *thisObj = s.ToInternalType(ref); - EtsObject *valObj = s.ToInternalType(value); - - bool ok = false; - if constexpr (std::is_same_v) { - panda_file::File::StringData propName = {static_cast(utf::MUtf8ToUtf16Size(utf::CStringAsMutf8(key))), - utf::CStringAsMutf8(key)}; - EtsStbyname(coro, thisObj, propName, valObj); - ok = true; - } else if constexpr (std::is_same_v) { - ok = EtsStbyidx(coro, thisObj, key, valObj); - } else { - static_assert(std::is_same_v); - CHECK_PTR_ARG(key); - EtsObject *keyObj = s.ToInternalType(key); - ok = EtsStbyval(coro, thisObj, keyObj, valObj); - } - ANI_CHECK_RETURN_IF_EQ(s.HasPendingException(), true, ANI_PENDING_ERROR); - return ok ? ANI_OK : ANI_ERROR; + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_GetProperty(ani_env *env, ani_ref ref, const char *name, ani_ref *result) +NO_UB_SANITIZE static ani_status FixedArray_New_Char(ani_env *env, ani_size length, ani_array_char *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); - CHECK_PTR_ARG(name); CHECK_PTR_ARG(result); - - return DoGetAnyProperty(env, ref, name, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_SetProperty(ani_env *env, ani_ref ref, const char *name, ani_ref value) +NO_UB_SANITIZE static ani_status FixedArray_New_Byte(ani_env *env, ani_size length, ani_array_byte *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); - CHECK_PTR_ARG(name); - CHECK_PTR_ARG(value); - - return DoSetAnyProperty(env, ref, name, value); + CHECK_PTR_ARG(result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_GetByIndex(ani_env *env, ani_ref ref, ani_size index, ani_ref *result) +NO_UB_SANITIZE static ani_status FixedArray_New_Short(ani_env *env, ani_size length, ani_array_short *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); CHECK_PTR_ARG(result); - - return DoGetAnyProperty(env, ref, index, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_SetByIndex(ani_env *env, ani_ref ref, ani_size index, ani_ref value) +NO_UB_SANITIZE static ani_status FixedArray_New_Int(ani_env *env, ani_size length, ani_array_int *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); - CHECK_PTR_ARG(value); - - return DoSetAnyProperty(env, ref, index, value); + CHECK_PTR_ARG(result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_GetByValue(ani_env *env, ani_ref ref, ani_ref key, ani_ref *result) +NO_UB_SANITIZE static ani_status FixedArray_New_Long(ani_env *env, ani_size length, ani_array_long *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); - CHECK_PTR_ARG(key); CHECK_PTR_ARG(result); - - return DoGetAnyProperty(env, ref, key, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_SetByValue(ani_env *env, ani_ref ref, ani_ref key, ani_ref value) +NO_UB_SANITIZE static ani_status FixedArray_New_Float(ani_env *env, ani_size length, ani_array_float *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(ref); - CHECK_PTR_ARG(key); - CHECK_PTR_ARG(value); - - return DoSetAnyProperty(env, ref, key, value); + CHECK_PTR_ARG(result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_Call(ani_env *env, ani_ref func, ani_size argc, ani_ref *argv, ani_ref *result) +NO_UB_SANITIZE static ani_status FixedArray_New_Double(ani_env *env, ani_size length, ani_array_double *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(func); - if (argc > 0) { - CHECK_PTR_ARG(argv); - } CHECK_PTR_ARG(result); - - ScopedManagedCodeFix s(env); - EtsCoroutine *coroutine = s.GetCoroutine(); - HandleScope scope(coroutine); - EtsObject *funcObj = s.ToInternalType(func); - - PandaVector> argsVec; - if (argc > 0) { - argsVec.reserve(argc); - for (ani_size i = 0; i < argc; i++) { - // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - EtsObject *argObj = s.ToInternalType(argv[i]); - argsVec.emplace_back(VMHandle(coroutine, argObj->GetCoreType())); - } - } - Span> internalArgs = Span>(argsVec.data(), argc); - EtsObject *res = EtsCall(coroutine, funcObj, internalArgs); - ANI_CHECK_RETURN_IF_EQ(s.HasPendingException(), true, ANI_PENDING_ERROR); - - return s.AddLocalRef(res, result); + return NewPrimitiveTypeArray(env, length, result); } // NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_CallMethod(ani_env *env, ani_ref self, const char *name, ani_size argc, - ani_ref *argv, ani_ref *result) +NO_UB_SANITIZE static ani_status FixedArray_New_Ref(ani_env *env, ani_type type, ani_size length, + ani_ref initialElement, ani_array_ref *result) { ANI_DEBUG_TRACE(env); CHECK_ENV(env); - CHECK_PTR_ARG(self); - CHECK_PTR_ARG(name); - if (argc > 0) { - CHECK_PTR_ARG(argv); - } + ANI_CHECK_RETURN_IF_GT(length, std::numeric_limits::max(), ANI_INVALID_ARGS); + CHECK_PTR_ARG(type); CHECK_PTR_ARG(result); ScopedManagedCodeFix s(env); - EtsCoroutine *coroutine = s.GetCoroutine(); - HandleScope scope(coroutine); - EtsObject *thisObj = s.ToInternalType(self); - - PandaVector> argsVec; - if (argc > 0) { - argsVec.reserve(argc); - for (ani_size i = 0; i < argc; i++) { - // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - EtsObject *argObj = s.ToInternalType(argv[i]); - argsVec.emplace_back(VMHandle(coroutine, argObj->GetCoreType())); + EtsClass *internalClass = s.ToInternalType(type); + EtsObjectArray *internalArray = EtsObjectArray::Create(internalClass, static_cast(length)); + ANI_CHECK_RETURN_IF_EQ(internalArray, nullptr, ANI_OUT_OF_MEMORY); + if (initialElement != nullptr) { + EtsObject *obj = s.ToInternalType(initialElement); + for (ani_size i = 0; i < length; i++) { + internalArray->Set(static_cast(i), obj); } } - Span> internalArgs = Span>(argsVec.data(), argc); - panda_file::File::StringData propName = {static_cast(utf::MUtf8ToUtf16Size(utf::CStringAsMutf8(name))), - utf::CStringAsMutf8(name)}; - EtsObject *res = EtsCallThis(coroutine, thisObj, propName, internalArgs); - ANI_CHECK_RETURN_IF_EQ(s.HasPendingException(), true, ANI_PENDING_ERROR); - return s.AddLocalRef(res, result); + return s.AddLocalRef(reinterpret_cast(internalArray), reinterpret_cast(result)); } -// NOLINTNEXTLINE(readability-identifier-naming) -NO_UB_SANITIZE static ani_status Any_New(ani_env *env, ani_ref ctor, ani_size argc, ani_ref *argv, ani_ref *result) -{ - ANI_DEBUG_TRACE(env); - CHECK_ENV(env); - CHECK_PTR_ARG(ctor); - if (argc > 0) { - CHECK_PTR_ARG(argv); - } - CHECK_PTR_ARG(result); - ScopedManagedCodeFix s(env); - EtsCoroutine *coroutine = s.GetCoroutine(); - HandleScope scope(coroutine); - EtsObject *ctorObj = s.ToInternalType(ctor); - std::vector> argsVec; - if (argc > 0) { - argsVec.reserve(argc); - for (ani_size i = 0; i < argc; i++) { - // NOLINTNEXTLINE(cppcoreguidelines-pro-bounds-pointer-arithmetic) - EtsObject *argObj = s.ToInternalType(argv[i]); - argsVec.emplace_back(VMHandle(coroutine, argObj->GetCoreType())); - } - } +[[noreturn]] static void NotImplementedAPI(int nr) +{ + LOG(FATAL, ANI) << "Not implemented interaction_api, nr=" << nr; + UNREACHABLE(); +} - Span> internalArgs = Span>(argsVec.data(), argc); +template +static R NotImplementedAdapter([[maybe_unused]] Args... args) +{ + NotImplementedAPI(NR); +} - EtsObject *newObj = EtsCallNew(coroutine, ctorObj, internalArgs); - ANI_CHECK_RETURN_IF_EQ(s.HasPendingException(), true, ANI_PENDING_ERROR); - if (newObj == nullptr) { - return ANI_ERROR; - } - return s.AddLocalRef(newObj, result); +template +static R NotImplementedAdapterVargs([[maybe_unused]] Args... args, ...) +{ + NotImplementedAPI(NR); } // clang-format off @@ -7141,39 +6491,6 @@ const __ani_interaction_api INTERACTION_API = { Array_New_Ref, Array_Set_Ref, Array_Get_Ref, - Array_New, - Array_Set, - Array_Get, - Array_Push, - Array_Pop, - FixedArray_GetLength, - FixedArray_New_Boolean, - FixedArray_New_Char, - FixedArray_New_Byte, - FixedArray_New_Short, - FixedArray_New_Int, - FixedArray_New_Long, - FixedArray_New_Float, - FixedArray_New_Double, - FixedArray_GetRegion_Boolean, - FixedArray_GetRegion_Char, - FixedArray_GetRegion_Byte, - FixedArray_GetRegion_Short, - FixedArray_GetRegion_Int, - FixedArray_GetRegion_Long, - FixedArray_GetRegion_Float, - FixedArray_GetRegion_Double, - FixedArray_SetRegion_Boolean, - FixedArray_SetRegion_Char, - FixedArray_SetRegion_Byte, - FixedArray_SetRegion_Short, - FixedArray_SetRegion_Int, - FixedArray_SetRegion_Long, - FixedArray_SetRegion_Float, - FixedArray_SetRegion_Double, - FixedArray_New_Ref, - FixedArray_Set_Ref, - FixedArray_Get_Ref, Enum_GetEnumItemByName, Enum_GetEnumItemByIndex, EnumItem_GetEnum, @@ -7474,21 +6791,20 @@ const __ani_interaction_api INTERACTION_API = { WeakReference_Delete, WeakReference_GetReference, CreateArrayBuffer, + NotImplementedAdapter<445>, ArrayBuffer_GetInfo, Promise_New, PromiseResolver_Resolve, PromiseResolver_Reject, - Any_InstanceOf, - Any_GetProperty, - Any_SetProperty, - Any_GetByIndex, - Any_SetByIndex, - Any_GetByValue, - Any_SetByValue, - Any_Call, - Any_CallMethod, - Any_New, - Class_BindStaticNativeMethods, + FixedArray_New_Boolean, + FixedArray_New_Char, + FixedArray_New_Byte, + FixedArray_New_Short, + FixedArray_New_Int, + FixedArray_New_Long, + FixedArray_New_Float, + FixedArray_New_Double, + FixedArray_New_Ref }; // clang-format on diff --git a/static_core/plugins/ets/runtime/ani/ani_mangle.cpp b/static_core/plugins/ets/runtime/ani/ani_mangle.cpp index d71022b5de..821c552930 100644 --- a/static_core/plugins/ets/runtime/ani/ani_mangle.cpp +++ b/static_core/plugins/ets/runtime/ani/ani_mangle.cpp @@ -13,7 +13,6 @@ * limitations under the License. */ -#include "assembler/assembly-type.h" #include "plugins/ets/runtime/ani/ani_mangle.h" #include "plugins/ets/runtime/ets_panda_file_items.h" @@ -26,9 +25,6 @@ PandaString Mangle::ConvertDescriptor(const std::string_view descriptor, bool al { if (descriptor.empty() || descriptor.back() == ';' || descriptor.find('/') != std::string::npos) { // The 'descriptor' does not have a new format, so no conversion is required. - if (!descriptor.empty()) { - LOG(ERROR, ANI) << "Use new mangling rules for descriptor \"" << descriptor << "\""; - } return PandaString(descriptor); } @@ -58,41 +54,6 @@ static constexpr size_t MIN_BODY_SIZE = sizeof('{') + 1 + sizeof('}'); static size_t ParseType(char type, const std::string_view data, PandaStringStream &ss); -static size_t ParseUnionBody(const std::string_view data, PandaStringStream &ss) -{ - if (data.size() < MIN_BODY_SIZE || data[0] != '{') { - return std::string_view::npos; - } - PandaStringStream unionStream; - unionStream << "{U"; - - std::string_view previousConstituentTypes; - size_t size = 1; - while (size < data.size() && data[size] != '}') { - std::string_view substr = data.substr(size); - size_t sz = ParseType(data[size], substr, unionStream); - if (sz == std::string_view::npos) { - // The 'descriptor' does not have a new format, so no conversion is required. - return std::string_view::npos; - } - std::string_view parsedType = substr.substr(0, sz); - // NOTE(dslynko, #26223): move constituent types order check into VerifyANI - if (previousConstituentTypes > parsedType) { - // Constituent types must be ordered in alphabetical order with respect to ANI encodings. - return std::string_view::npos; - } - size += sz; - } - if (size >= data.size() || data[size] != '}') { - // Union descriptor must end with '}'. - return std::string_view::npos; - } - unionStream << '}'; - - ss << pandasm::Type::CanonicalizeDescriptor(unionStream.str()); - return size + sizeof('}'); -} - static size_t ParseArrayBody(const std::string_view data, PandaStringStream &ss) { if (data.size() < MIN_BODY_SIZE || data[0] != '{') { @@ -143,10 +104,9 @@ static size_t ParseType(char type, const std::string_view data, PandaStringStrea case 'l': ss << 'J'; return 1; case 'f': ss << 'F'; return 1; case 'd': ss << 'D'; return 1; - case 'N': ss << panda_file_items::class_descriptors::NULL_VALUE; return 1; + case 'N': ss << panda_file_items::class_descriptors::OBJECT; return 1; case 'U': ss << panda_file_items::class_descriptors::OBJECT; return 1; case 'A': bodySize = ParseArrayBody(data.substr(1), ss); break; - case 'X': bodySize = ParseUnionBody(data.substr(1), ss); break; case 'C': case 'E': case 'P': bodySize = ParseBody(type, data.substr(1), ss); break; diff --git a/static_core/plugins/ets/runtime/ani/ani_options.cpp b/static_core/plugins/ets/runtime/ani/ani_options.cpp deleted file mode 100644 index b55856a665..0000000000 --- a/static_core/plugins/ets/runtime/ani/ani_options.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/** - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "plugins/ets/runtime/ani/ani_options.h" - -#include - -#ifdef PANDA_TARGET_OHOS -#include "plugins/ets/runtime/platform/ohos/logger.h" -#endif - -namespace ark::ets::ani { - -LoggerCallback ANIOptions::GetLoggerCallback() const -{ - auto *callback = reinterpret_cast(GetExtra(OptionKey::LOGGER)); -#ifdef PANDA_TARGET_OHOS - return callback == nullptr ? ohos::DefaultLogger : callback; -#else - return callback; -#endif -} - -Expected ANIOptions::SetOption(std::string_view key, std::string_view value, void *extra) -{ - auto &map = GetOptionsMap(); - auto it = map.find(key); - if (it == map.end()) { - return false; - } - - auto v = it->second.fn(value, extra); - if (v.HasValue()) { - optionValues_[helpers::ToUnderlying(it->second.optionKey)] = std::move(v.Value()); - } else { - return Unexpected(v.Error()); - } - return true; -} - -const std::map &ANIOptions::GetOptionsMap() -{ - static const std::map OPTIONS_MAP = { - { - "--logger", - { - OptionKey::LOGGER, - [](std::string_view value, void *extra) -> Expected, std::string> { - if (!value.empty()) { - std::stringstream ss; - ss << "'--logger' option mustn't have value, value='" << value << "'"; - return Unexpected(ss.str()); - } - if (extra == nullptr) { - return Unexpected(std::string("'--logger' option has 'extra==NULL'")); - } - return std::make_unique(OptionValue {std::string(value), extra}); - }, - }, - }, -#ifdef PANDA_ETS_INTEROP_JS - // clang-format off - { - "--ext:interop", - { - OptionKey::INTEROP, - [](std::string_view value, void *extra) -> Expected, std::string> { - if (!value.empty()) { - std::stringstream ss; - ss << "'--ext:interop' option mustn't have value, value='" << value << "'"; - return Unexpected(ss.str()); - } - return std::make_unique(OptionValue {true, extra}); - } - }, - }, - // clang-format on -#endif // PANDA_ETS_INTEROP_JS - }; - - return OPTIONS_MAP; -} - -} // namespace ark::ets::ani diff --git a/static_core/plugins/ets/runtime/ani/ani_options.h b/static_core/plugins/ets/runtime/ani/ani_options.h index 940671db2c..2a83d5bb21 100644 --- a/static_core/plugins/ets/runtime/ani/ani_options.h +++ b/static_core/plugins/ets/runtime/ani/ani_options.h @@ -15,83 +15,26 @@ #ifndef PANDA_PLUGINS_ETS_RUNTIME_ANI_OPTIONS_H #define PANDA_PLUGINS_ETS_RUNTIME_ANI_OPTIONS_H -#include "libpandabase/macros.h" -#include "libpandabase/utils/expected.h" -#include "utils/type_helpers.h" - -#include -#include -#include #include -#include -namespace ark::ets::ani { +#include "include/runtime_options.h" -using LoggerCallback = void (*)(FILE *stream, int level, const char *component, const char *message); +namespace ark::ets::ani { -class ANIOptions final { +/** + * @brief Class represents ANI options + * + * It extends RuntimeOptions to provide ANI users possibility to use + * ANI specific options and runtime options while creating VM + * + */ +class PANDA_PUBLIC_API ANIOptions : public RuntimeOptions { public: - enum class OptionKey { - LOGGER, -#ifdef PANDA_ETS_INTEROP_JS - INTEROP, -#endif // PANDA_ETS_INTEROP_JS - - NUMBER_OF_ELEMENTS, - }; - - ANIOptions() = default; - ~ANIOptions() = default; - - Expected SetOption(std::string_view key, std::string_view value, void *extra); - - LoggerCallback GetLoggerCallback() const; - -#ifdef PANDA_ETS_INTEROP_JS - bool IsInteropMode() const - { - const OptionValue *v = GetValue(OptionKey::INTEROP); - return v != nullptr ? std::get<0>(v->value) : false; - } - - void *GetInteropEnv() const - { - return GetExtra(OptionKey::INTEROP); - } -#endif // PANDA_ETS_INTEROP_JS - -private: - struct OptionValue { - std::variant value; - void *extra {}; - }; - - struct OptionHandler { - using Fn = Expected, std::string> (*)(std::string_view value, void *extra); - - OptionKey optionKey; - Fn fn; - }; - - const OptionValue *GetValue(OptionKey key) const + explicit ANIOptions(const std::string &exePath = "") : RuntimeOptions(exePath) { - return optionValues_[helpers::ToUnderlying(key)].get(); + SetLoadRuntimes({"ets"}); } - - void *GetExtra(OptionKey key) const - { - const OptionValue *v = GetValue(key); - return v != nullptr ? v->extra : nullptr; - } - - const std::map &GetOptionsMap(); - - std::array, helpers::ToUnderlying(OptionKey::NUMBER_OF_ELEMENTS)> optionValues_; - - NO_COPY_SEMANTIC(ANIOptions); - NO_MOVE_SEMANTIC(ANIOptions); }; - } // namespace ark::ets::ani #endif // PANDA_PLUGINS_ETS_RUNTIME_ANI_OPTIONS_H diff --git a/static_core/plugins/ets/runtime/ani/ani_options_parser.cpp b/static_core/plugins/ets/runtime/ani/ani_options_parser.cpp deleted file mode 100644 index b8254c79d7..0000000000 --- a/static_core/plugins/ets/runtime/ani/ani_options_parser.cpp +++ /dev/null @@ -1,237 +0,0 @@ -/** - * Copyright (c) 2025 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "plugins/ets/runtime/ani/ani_options_parser.h" - -#include "compiler/compiler_options.h" -#include "plugins/ets/compiler/product_options.h" -#include "plugins/ets/runtime/product_options.h" - -namespace ark::ets::ani { - -#ifdef PANDA_PRODUCT_BUILD -static constexpr bool ANI_SUPPORTS_ONLY_PRODUCT_OPTIONS = true; -#else -static constexpr bool ANI_SUPPORTS_ONLY_PRODUCT_OPTIONS = false; -#endif // PANDA_PRODUCT_BUILD - -// clang-format off -static constexpr std::array AVAILABLE_LOGGER_OPTIONS_IN_PRODUCT = { - "log-components", - "log-level", -}; -// clang-format on - -OptionsParser::OptionsParser() -{ - loggerOptions_.AddOptions(&loggerOptionsParser_); - runtimeOptions_.AddOptions(&runtimeOptionsParser_); - compiler::g_options.AddOptions(&compilerOptionsParser_); - - // Set default runtime options for 'ets' language - runtimeOptions_.SetBootIntrinsicSpaces({"ets"}); - runtimeOptions_.SetBootClassSpaces({"ets"}); - runtimeOptions_.SetRuntimeType("ets"); - runtimeOptions_.SetLoadRuntimes({"ets"}); -} - -OptionsParser::ErrorMsg OptionsParser::GetParserDependentArgs(const PandArgParser &parser, - const std::set &productOptions, - OptionsMap &extOptionsMap, - std::vector &outArgs) -{ - auto names = parser.GetNamesOfParsedArgs(); - for (auto &name : names) { - if (ANI_SUPPORTS_ONLY_PRODUCT_OPTIONS && productOptions.find(name) == productOptions.end()) { - continue; // skip unsupported options - } - - auto it = extOptionsMap.find(name); - if (it != extOptionsMap.end()) { - if (it->second->opt->extra != nullptr) { - std::stringstream ss; - ss << "Extended '" << it->second->fullName - << "' option doesn't support 'extra' field, 'extra' must be NULL"; - return ss.str(); - } - std::string_view value = it->second->value; - std::stringstream ss; - ss << "--" << it->second->name; - if (!value.empty()) { - ss << '=' << value; - } - outArgs.emplace_back(ss.str()); - extOptionsMap.erase(it); - } - } - return {}; -} - -OptionsParser::ErrorMsg OptionsParser::Parse(const ani_options *options) -{ - if (options == nullptr) { - return {}; - } - - struct ExtOpt { - const ani_option *opt; - std::string_view name; - std::string_view value; - }; - - std::vector extOptions; - Span opts(options->options, options->nr_options); - for (const ani_option &opt : opts) { - std::string_view option = opt.option; - std::string_view name = option; - std::string_view value; - size_t pos = option.find('='); - if (pos != std::string_view::npos) { - name = option.substr(0, pos); - value = option.substr(pos + 1); - } - - auto isAddedOption = aniOptions_.SetOption(name, value, opt.extra); - if (!isAddedOption.HasValue()) { - return isAddedOption.Error(); - } - if (!isAddedOption.Value()) { - extOptions.push_back(ExtOpt {&opt, name, value}); - } - } - - OptionsMap extOptionsMap; - for (const ExtOpt &opt : extOptions) { - std::unique_ptr