mirror of
https://github.com/luau-lang/luau.git
synced 2024-11-15 14:25:44 +08:00
4b267aa5c5
* Added a limit on how many instructions the Compiler can safely produce (reported by @TheGreatSageEqualToHeaven) C++ API Changes: * With work started on read-only and write-only properties, `Property::type` member variable has been replaced with `TypeId type()` and `setType(TypeId)` functions. * New `LazyType` unwrap callback now has a `void` return type, all that's required from the callback is to write into `unwrapped` field. In our work on the new type solver, the following issues were fixed: * Work has started to support https://github.com/Roblox/luau/pull/77 and https://github.com/Roblox/luau/pull/79 * Refinements are no longer applied on l-values, removing some false-positive errors * Improved overload resolution against expected result type * `Frontend::prepareModuleScope` now works in the new solver * Cofinite strings are now comparable And these are the changes in native code generation (JIT): * Fixed MIN_NUM and MAX_NUM constant fold when one of the arguments is NaN * Added constant folding for number conversions and bit operations * Value spilling and rematerialization is now supported on arm64 * Improved FASTCALL2K IR generation to support second argument constant * Added value numbering and load/store propagation optimizations * Added STORE_VECTOR on arm64, completing the IR lowering on this target
216 lines
11 KiB
Plaintext
216 lines
11 KiB
Plaintext
AnnotationTests.too_many_type_params
|
|
AstQuery.last_argument_function_call_type
|
|
AstQuery::getDocumentationSymbolAtPosition.overloaded_class_method
|
|
AstQuery::getDocumentationSymbolAtPosition.overloaded_fn
|
|
AstQuery::getDocumentationSymbolAtPosition.table_overloaded_function_prop
|
|
AutocompleteTest.autocomplete_response_perf1
|
|
BuiltinTests.aliased_string_format
|
|
BuiltinTests.assert_removes_falsy_types
|
|
BuiltinTests.assert_removes_falsy_types2
|
|
BuiltinTests.assert_removes_falsy_types_even_from_type_pack_tail_but_only_for_the_first_type
|
|
BuiltinTests.assert_returns_false_and_string_iff_it_knows_the_first_argument_cannot_be_truthy
|
|
BuiltinTests.bad_select_should_not_crash
|
|
BuiltinTests.dont_add_definitions_to_persistent_types
|
|
BuiltinTests.gmatch_definition
|
|
BuiltinTests.math_max_checks_for_numbers
|
|
BuiltinTests.select_slightly_out_of_range
|
|
BuiltinTests.select_way_out_of_range
|
|
BuiltinTests.set_metatable_needs_arguments
|
|
BuiltinTests.setmetatable_should_not_mutate_persisted_types
|
|
BuiltinTests.sort_with_bad_predicate
|
|
BuiltinTests.string_format_as_method
|
|
BuiltinTests.string_format_correctly_ordered_types
|
|
BuiltinTests.string_format_report_all_type_errors_at_correct_positions
|
|
BuiltinTests.string_format_tostring_specifier_type_constraint
|
|
BuiltinTests.string_format_use_correct_argument2
|
|
DefinitionTests.class_definition_overload_metamethods
|
|
DefinitionTests.class_definition_string_props
|
|
GenericsTests.apply_type_function_nested_generics2
|
|
GenericsTests.better_mismatch_error_messages
|
|
GenericsTests.bound_tables_do_not_clone_original_fields
|
|
GenericsTests.check_mutual_generic_functions
|
|
GenericsTests.correctly_instantiate_polymorphic_member_functions
|
|
GenericsTests.do_not_infer_generic_functions
|
|
GenericsTests.dont_unify_bound_types
|
|
GenericsTests.generic_argument_count_too_few
|
|
GenericsTests.generic_argument_count_too_many
|
|
GenericsTests.generic_functions_should_be_memory_safe
|
|
GenericsTests.generic_type_pack_parentheses
|
|
GenericsTests.higher_rank_polymorphism_should_not_accept_instantiated_arguments
|
|
GenericsTests.infer_generic_function_function_argument_2
|
|
GenericsTests.infer_generic_function_function_argument_3
|
|
GenericsTests.infer_generic_function_function_argument_overloaded
|
|
GenericsTests.infer_generic_lib_function_function_argument
|
|
GenericsTests.instantiated_function_argument_names
|
|
GenericsTests.no_stack_overflow_from_quantifying
|
|
GenericsTests.self_recursive_instantiated_param
|
|
IntersectionTypes.table_intersection_write_sealed_indirect
|
|
IntersectionTypes.table_write_sealed_indirect
|
|
isSubtype.any_is_unknown_union_error
|
|
ProvisionalTests.assign_table_with_refined_property_with_a_similar_type_is_illegal
|
|
ProvisionalTests.bail_early_if_unification_is_too_complicated
|
|
ProvisionalTests.do_not_ice_when_trying_to_pick_first_of_generic_type_pack
|
|
ProvisionalTests.error_on_eq_metamethod_returning_a_type_other_than_boolean
|
|
ProvisionalTests.free_options_cannot_be_unified_together
|
|
ProvisionalTests.generic_type_leak_to_module_interface_variadic
|
|
ProvisionalTests.greedy_inference_with_shared_self_triggers_function_with_no_returns
|
|
ProvisionalTests.setmetatable_constrains_free_type_into_free_table
|
|
ProvisionalTests.specialization_binds_with_prototypes_too_early
|
|
ProvisionalTests.table_insert_with_a_singleton_argument
|
|
ProvisionalTests.typeguard_inference_incomplete
|
|
RefinementTest.type_guard_can_filter_for_intersection_of_tables
|
|
RefinementTest.type_narrow_to_vector
|
|
RefinementTest.typeguard_cast_free_table_to_vector
|
|
RefinementTest.typeguard_in_assert_position
|
|
RefinementTest.x_as_any_if_x_is_instance_elseif_x_is_table
|
|
RuntimeLimits.typescript_port_of_Result_type
|
|
TableTests.a_free_shape_cannot_turn_into_a_scalar_if_it_is_not_compatible
|
|
TableTests.checked_prop_too_early
|
|
TableTests.disallow_indexing_into_an_unsealed_table_with_no_indexer_in_strict_mode
|
|
TableTests.dont_crash_when_setmetatable_does_not_produce_a_metatabletypevar
|
|
TableTests.dont_hang_when_trying_to_look_up_in_cyclic_metatable_index
|
|
TableTests.dont_suggest_exact_match_keys
|
|
TableTests.error_detailed_metatable_prop
|
|
TableTests.expected_indexer_from_table_union
|
|
TableTests.expected_indexer_value_type_extra
|
|
TableTests.expected_indexer_value_type_extra_2
|
|
TableTests.explicitly_typed_table
|
|
TableTests.explicitly_typed_table_with_indexer
|
|
TableTests.found_like_key_in_table_function_call
|
|
TableTests.found_like_key_in_table_property_access
|
|
TableTests.found_multiple_like_keys
|
|
TableTests.fuzz_table_unify_instantiated_table
|
|
TableTests.generic_table_instantiation_potential_regression
|
|
TableTests.give_up_after_one_metatable_index_look_up
|
|
TableTests.indexer_on_sealed_table_must_unify_with_free_table
|
|
TableTests.indexing_from_a_table_should_prefer_properties_when_possible
|
|
TableTests.inequality_operators_imply_exactly_matching_types
|
|
TableTests.inferred_return_type_of_free_table
|
|
TableTests.instantiate_table_cloning_3
|
|
TableTests.leaking_bad_metatable_errors
|
|
TableTests.less_exponential_blowup_please
|
|
TableTests.missing_metatable_for_sealed_tables_do_not_get_inferred
|
|
TableTests.mixed_tables_with_implicit_numbered_keys
|
|
TableTests.nil_assign_doesnt_hit_indexer
|
|
TableTests.ok_to_set_nil_even_on_non_lvalue_base_expr
|
|
TableTests.oop_polymorphic
|
|
TableTests.quantify_even_that_table_was_never_exported_at_all
|
|
TableTests.quantify_metatables_of_metatables_of_table
|
|
TableTests.reasonable_error_when_adding_a_nonexistent_property_to_an_array_like_table
|
|
TableTests.result_is_always_any_if_lhs_is_any
|
|
TableTests.result_is_bool_for_equality_operators_if_lhs_is_any
|
|
TableTests.right_table_missing_key2
|
|
TableTests.shared_selfs
|
|
TableTests.shared_selfs_from_free_param
|
|
TableTests.shared_selfs_through_metatables
|
|
TableTests.table_call_metamethod_basic
|
|
TableTests.table_simple_call
|
|
TableTests.table_subtyping_with_missing_props_dont_report_multiple_errors
|
|
TableTests.table_unification_4
|
|
TableTests.used_colon_instead_of_dot
|
|
TableTests.used_dot_instead_of_colon
|
|
ToString.toStringDetailed2
|
|
ToString.toStringErrorPack
|
|
ToString.toStringNamedFunction_generic_pack
|
|
TryUnifyTests.members_of_failed_typepack_unification_are_unified_with_errorType
|
|
TryUnifyTests.result_of_failed_typepack_unification_is_constrained
|
|
TryUnifyTests.typepack_unification_should_trim_free_tails
|
|
TypeAliases.dont_lose_track_of_PendingExpansionTypes_after_substitution
|
|
TypeAliases.generic_param_remap
|
|
TypeAliases.mismatched_generic_type_param
|
|
TypeAliases.mutually_recursive_types_restriction_not_ok_1
|
|
TypeAliases.mutually_recursive_types_restriction_not_ok_2
|
|
TypeAliases.mutually_recursive_types_swapsies_not_ok
|
|
TypeAliases.recursive_types_restriction_not_ok
|
|
TypeAliases.report_shadowed_aliases
|
|
TypeAliases.type_alias_local_mutation
|
|
TypeAliases.type_alias_local_rename
|
|
TypeAliases.type_alias_locations
|
|
TypeAliases.type_alias_of_an_imported_recursive_generic_type
|
|
TypeInfer.check_type_infer_recursion_count
|
|
TypeInfer.cli_50041_committing_txnlog_in_apollo_client_error
|
|
TypeInfer.dont_report_type_errors_within_an_AstExprError
|
|
TypeInfer.dont_report_type_errors_within_an_AstStatError
|
|
TypeInfer.follow_on_new_types_in_substitution
|
|
TypeInfer.fuzz_free_table_type_change_during_index_check
|
|
TypeInfer.infer_assignment_value_types_mutable_lval
|
|
TypeInfer.no_stack_overflow_from_isoptional
|
|
TypeInfer.no_stack_overflow_from_isoptional2
|
|
TypeInfer.tc_after_error_recovery_no_replacement_name_in_error
|
|
TypeInfer.type_infer_recursion_limit_no_ice
|
|
TypeInfer.type_infer_recursion_limit_normalizer
|
|
TypeInferAnyError.for_in_loop_iterator_is_any2
|
|
TypeInferClasses.class_type_mismatch_with_name_conflict
|
|
TypeInferClasses.classes_without_overloaded_operators_cannot_be_added
|
|
TypeInferClasses.index_instance_property
|
|
TypeInferClasses.table_class_unification_reports_sane_errors_for_missing_properties
|
|
TypeInferClasses.warn_when_prop_almost_matches
|
|
TypeInferFunctions.cannot_hoist_interior_defns_into_signature
|
|
TypeInferFunctions.dont_give_other_overloads_message_if_only_one_argument_matching_overload_exists
|
|
TypeInferFunctions.function_cast_error_uses_correct_language
|
|
TypeInferFunctions.function_decl_non_self_sealed_overwrite_2
|
|
TypeInferFunctions.function_decl_non_self_unsealed_overwrite
|
|
TypeInferFunctions.function_does_not_return_enough_values
|
|
TypeInferFunctions.function_statement_sealed_table_assignment_through_indexer
|
|
TypeInferFunctions.improved_function_arg_mismatch_errors
|
|
TypeInferFunctions.infer_anonymous_function_arguments
|
|
TypeInferFunctions.infer_that_function_does_not_return_a_table
|
|
TypeInferFunctions.luau_subtyping_is_np_hard
|
|
TypeInferFunctions.no_lossy_function_type
|
|
TypeInferFunctions.occurs_check_failure_in_function_return_type
|
|
TypeInferFunctions.record_matching_overload
|
|
TypeInferFunctions.report_exiting_without_return_strict
|
|
TypeInferFunctions.return_type_by_overload
|
|
TypeInferFunctions.too_few_arguments_variadic
|
|
TypeInferFunctions.too_few_arguments_variadic_generic
|
|
TypeInferFunctions.too_few_arguments_variadic_generic2
|
|
TypeInferFunctions.too_many_arguments_error_location
|
|
TypeInferFunctions.too_many_return_values_in_parentheses
|
|
TypeInferFunctions.too_many_return_values_no_function
|
|
TypeInferLoops.for_in_loop_error_on_factory_not_returning_the_right_amount_of_values
|
|
TypeInferLoops.for_in_loop_with_next
|
|
TypeInferLoops.for_in_with_generic_next
|
|
TypeInferLoops.loop_iter_metamethod_ok_with_inference
|
|
TypeInferLoops.loop_iter_trailing_nil
|
|
TypeInferLoops.properly_infer_iteratee_is_a_free_table
|
|
TypeInferLoops.unreachable_code_after_infinite_loop
|
|
TypeInferModules.do_not_modify_imported_types_5
|
|
TypeInferModules.module_type_conflict
|
|
TypeInferModules.module_type_conflict_instantiated
|
|
TypeInferOOP.inferring_hundreds_of_self_calls_should_not_suffocate_memory
|
|
TypeInferOOP.methods_are_topologically_sorted
|
|
TypeInferOperators.CallAndOrOfFunctions
|
|
TypeInferOperators.CallOrOfFunctions
|
|
TypeInferOperators.cli_38355_recursive_union
|
|
TypeInferOperators.compound_assign_metatable
|
|
TypeInferOperators.compound_assign_mismatch_metatable
|
|
TypeInferOperators.disallow_string_and_types_without_metatables_from_arithmetic_binary_ops
|
|
TypeInferOperators.operator_eq_completely_incompatible
|
|
TypeInferOperators.typecheck_overloaded_multiply_that_is_an_intersection
|
|
TypeInferOperators.typecheck_overloaded_multiply_that_is_an_intersection_on_rhs
|
|
TypeInferOperators.typecheck_unary_len_error
|
|
TypeInferOperators.unrelated_classes_cannot_be_compared
|
|
TypeInferOperators.unrelated_primitives_cannot_be_compared
|
|
TypeInferPrimitives.CheckMethodsOfNumber
|
|
TypeInferPrimitives.string_index
|
|
TypeInferUnknownNever.dont_unify_operands_if_one_of_the_operand_is_never_in_any_ordering_operators
|
|
TypeInferUnknownNever.math_operators_and_never
|
|
TypePackTests.detect_cyclic_typepacks2
|
|
TypePackTests.pack_tail_unification_check
|
|
TypePackTests.type_alias_backwards_compatible
|
|
TypePackTests.type_alias_default_type_errors
|
|
TypePackTests.type_alias_type_packs_errors
|
|
TypePackTests.unify_variadic_tails_in_arguments
|
|
TypePackTests.variadic_packs
|
|
TypeSingletons.function_call_with_singletons
|
|
TypeSingletons.function_call_with_singletons_mismatch
|
|
TypeSingletons.no_widening_from_callsites
|
|
TypeSingletons.return_type_of_f_is_not_widened
|
|
TypeSingletons.table_properties_type_error_escapes
|
|
TypeSingletons.widen_the_supertype_if_it_is_free_and_subtype_has_singleton
|
|
TypeSingletons.widening_happens_almost_everywhere
|
|
UnionTypes.generic_function_with_optional_arg
|
|
UnionTypes.index_on_a_union_type_with_missing_property
|
|
UnionTypes.optional_union_follow
|
|
UnionTypes.table_union_write_indirect
|