mirror of
https://github.com/luau-lang/luau.git
synced 2024-12-12 21:10:37 +00:00
bfad1fa777
New Solver * Fix some type inference issues surrounding updates to upvalues eg ```luau local x = 0 function f() x = x + 1 end ``` * User-defined type function progress * Bugfixes for normalization of negated class types. eg `SomeClass & (class & ~SomeClass)` * Fixes to subtyping between tables and the top `table` type. --------- Co-authored-by: Aaron Weiss <aaronweiss@roblox.com> Co-authored-by: Vighnesh <vvijay@roblox.com> Co-authored-by: Aviral Goel <agoel@roblox.com> Co-authored-by: David Cope <dcope@roblox.com> Co-authored-by: Vyacheslav Egorov <vegorov@roblox.com> Co-authored-by: Junseo Yoo <jyoo@roblox.com>
220 lines
12 KiB
Text
220 lines
12 KiB
Text
AstQuery.last_argument_function_call_type
|
|
AutocompleteTest.anonymous_autofilled_generic_on_argument_type_pack_vararg
|
|
AutocompleteTest.anonymous_autofilled_generic_type_pack_vararg
|
|
AutocompleteTest.autocomplete_string_singletons
|
|
AutocompleteTest.string_singleton_as_table_key
|
|
AutocompleteTest.suggest_table_keys
|
|
AutocompleteTest.type_correct_suggestion_for_overloads
|
|
AutocompleteTest.type_correct_suggestion_in_table
|
|
BuiltinTests.aliased_string_format
|
|
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.coroutine_resume_anything_goes
|
|
BuiltinTests.select_slightly_out_of_range
|
|
BuiltinTests.select_way_out_of_range
|
|
BuiltinTests.select_with_variadic_typepack_tail_and_string_head
|
|
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_use_correct_argument2
|
|
BuiltinTests.table_freeze_is_generic
|
|
GenericsTests.do_not_always_instantiate_generic_intersection_types
|
|
GenericsTests.error_detailed_function_mismatch_generic_pack
|
|
GenericsTests.error_detailed_function_mismatch_generic_types
|
|
GenericsTests.factories_of_generics
|
|
GenericsTests.generic_argument_count_too_few
|
|
GenericsTests.generic_argument_count_too_many
|
|
GenericsTests.generic_factories
|
|
GenericsTests.generic_functions_in_types
|
|
GenericsTests.generic_type_functions_work_in_subtyping
|
|
GenericsTests.generic_type_pack_unification1
|
|
GenericsTests.generic_type_pack_unification2
|
|
GenericsTests.generic_type_pack_unification3
|
|
GenericsTests.higher_rank_polymorphism_should_not_accept_instantiated_arguments
|
|
GenericsTests.instantiated_function_argument_names
|
|
GenericsTests.properties_can_be_instantiated_polytypes
|
|
GenericsTests.quantify_functions_even_if_they_have_an_explicit_generic
|
|
IntersectionTypes.intersect_metatables
|
|
IntersectionTypes.intersect_saturate_overloaded_functions
|
|
IntersectionTypes.intersection_of_tables
|
|
IntersectionTypes.intersection_of_tables_with_top_properties
|
|
IntersectionTypes.less_greedy_unification_with_intersection_types
|
|
IntersectionTypes.overloaded_functions_mentioning_generic
|
|
IntersectionTypes.overloaded_functions_mentioning_generic_packs
|
|
IntersectionTypes.overloaded_functions_mentioning_generics
|
|
IntersectionTypes.overloaded_functions_returning_intersections
|
|
IntersectionTypes.overloadeded_functions_with_never_arguments
|
|
IntersectionTypes.overloadeded_functions_with_never_result
|
|
IntersectionTypes.overloadeded_functions_with_overlapping_results_and_variadics
|
|
IntersectionTypes.overloadeded_functions_with_unknown_arguments
|
|
IntersectionTypes.overloadeded_functions_with_unknown_result
|
|
IntersectionTypes.overloadeded_functions_with_weird_typepacks_1
|
|
IntersectionTypes.overloadeded_functions_with_weird_typepacks_2
|
|
IntersectionTypes.overloadeded_functions_with_weird_typepacks_3
|
|
IntersectionTypes.overloadeded_functions_with_weird_typepacks_4
|
|
IntersectionTypes.table_write_sealed_indirect
|
|
IntersectionTypes.union_saturate_overloaded_functions
|
|
Linter.TableOperationsIndexer
|
|
ModuleTests.clone_self_property
|
|
Negations.cofinite_strings_can_be_compared_for_equality
|
|
Normalize.higher_order_function_with_annotation
|
|
Normalize.negations_of_tables
|
|
Normalize.specific_functions_cannot_be_negated
|
|
RefinementTest.refine_a_param_that_got_resolved_during_constraint_solving_stage
|
|
RefinementTest.x_as_any_if_x_is_instance_elseif_x_is_table
|
|
RefinementTest.x_is_not_instance_or_else_not_part
|
|
TryUnifyTests.members_of_failed_typepack_unification_are_unified_with_errorType
|
|
TryUnifyTests.result_of_failed_typepack_unification_is_constrained
|
|
TryUnifyTests.uninhabited_table_sub_anything
|
|
TryUnifyTests.uninhabited_table_sub_never
|
|
TypeAliases.dont_lose_track_of_PendingExpansionTypes_after_substitution
|
|
TypeAliases.generic_param_remap
|
|
TypeAliases.mismatched_generic_type_param
|
|
TypeAliases.mutually_recursive_generic_aliases
|
|
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_of_an_imported_recursive_generic_type
|
|
TypeInfer.be_sure_to_use_active_txnlog_when_evaluating_a_variadic_overload
|
|
TypeInfer.check_type_infer_recursion_count
|
|
TypeInfer.checking_should_not_ice
|
|
TypeInfer.cli_50041_committing_txnlog_in_apollo_client_error
|
|
TypeInfer.dont_ice_when_failing_the_occurs_check
|
|
TypeInfer.dont_report_type_errors_within_an_AstExprError
|
|
TypeInfer.dont_report_type_errors_within_an_AstStatError
|
|
TypeInfer.follow_on_new_types_in_substitution
|
|
TypeInfer.globals
|
|
TypeInfer.globals2
|
|
TypeInfer.infer_through_group_expr
|
|
TypeInfer.no_stack_overflow_from_isoptional
|
|
TypeInfer.recursive_function_that_invokes_itself_with_a_refinement_of_its_parameter
|
|
TypeInfer.recursive_function_that_invokes_itself_with_a_refinement_of_its_parameter_2
|
|
TypeInfer.tc_after_error_recovery_no_replacement_name_in_error
|
|
TypeInfer.type_infer_recursion_limit_no_ice
|
|
TypeInfer.type_infer_recursion_limit_normalizer
|
|
TypeInfer.unify_nearly_identical_recursive_types
|
|
TypeInferClasses.cannot_unify_class_instance_with_primitive
|
|
TypeInferClasses.class_type_mismatch_with_name_conflict
|
|
TypeInferClasses.detailed_class_unification_error
|
|
TypeInferClasses.indexable_classes
|
|
TypeInferClasses.table_class_unification_reports_sane_errors_for_missing_properties
|
|
TypeInferClasses.we_can_report_when_someone_is_trying_to_use_a_table_rather_than_a_class
|
|
TypeInferFunctions.another_other_higher_order_function
|
|
TypeInferFunctions.bidirectional_checking_of_callback_property
|
|
TypeInferFunctions.calling_function_with_anytypepack_doesnt_leak_free_types
|
|
TypeInferFunctions.complicated_return_types_require_an_explicit_annotation
|
|
TypeInferFunctions.concrete_functions_are_not_supertypes_of_function
|
|
TypeInferFunctions.dont_assert_when_the_tarjan_limit_is_exceeded_during_generalization
|
|
TypeInferFunctions.dont_give_other_overloads_message_if_only_one_argument_matching_overload_exists
|
|
TypeInferFunctions.dont_infer_parameter_types_for_functions_from_their_call_site
|
|
TypeInferFunctions.duplicate_functions_with_different_signatures_not_allowed_in_nonstrict
|
|
TypeInferFunctions.error_detailed_function_mismatch_arg
|
|
TypeInferFunctions.error_detailed_function_mismatch_arg_count
|
|
TypeInferFunctions.error_detailed_function_mismatch_ret
|
|
TypeInferFunctions.error_detailed_function_mismatch_ret_count
|
|
TypeInferFunctions.error_detailed_function_mismatch_ret_mult
|
|
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_exprs_are_generalized_at_signature_scope_not_enclosing
|
|
TypeInferFunctions.function_is_supertype_of_concrete_functions
|
|
TypeInferFunctions.function_statement_sealed_table_assignment_through_indexer
|
|
TypeInferFunctions.generic_packs_are_not_variadic
|
|
TypeInferFunctions.higher_order_function_4
|
|
TypeInferFunctions.improved_function_arg_mismatch_error_nonstrict
|
|
TypeInferFunctions.improved_function_arg_mismatch_errors
|
|
TypeInferFunctions.infer_anonymous_function_arguments
|
|
TypeInferFunctions.infer_anonymous_function_arguments_outside_call
|
|
TypeInferFunctions.infer_generic_function_function_argument
|
|
TypeInferFunctions.infer_generic_function_function_argument_overloaded
|
|
TypeInferFunctions.infer_return_value_type
|
|
TypeInferFunctions.inferred_higher_order_functions_are_quantified_at_the_right_time3
|
|
TypeInferFunctions.instantiated_type_packs_must_have_a_non_null_scope
|
|
TypeInferFunctions.list_only_alternative_overloads_that_match_argument_count
|
|
TypeInferFunctions.luau_subtyping_is_np_hard
|
|
TypeInferFunctions.no_lossy_function_type
|
|
TypeInferFunctions.occurs_check_failure_in_function_return_type
|
|
TypeInferFunctions.other_things_are_not_related_to_function
|
|
TypeInferFunctions.param_1_and_2_both_takes_the_same_generic_but_their_arguments_are_incompatible
|
|
TypeInferFunctions.param_1_and_2_both_takes_the_same_generic_but_their_arguments_are_incompatible_2
|
|
TypeInferFunctions.report_exiting_without_return_nonstrict
|
|
TypeInferFunctions.return_type_by_overload
|
|
TypeInferFunctions.simple_unannotated_mutual_recursion
|
|
TypeInferFunctions.too_few_arguments_variadic
|
|
TypeInferFunctions.too_few_arguments_variadic_generic
|
|
TypeInferFunctions.too_few_arguments_variadic_generic2
|
|
TypeInferFunctions.too_many_arguments
|
|
TypeInferFunctions.too_many_return_values_in_parentheses
|
|
TypeInferFunctions.too_many_return_values_no_function
|
|
TypeInferFunctions.unifier_should_not_bind_free_types
|
|
TypeInferLoops.cli_68448_iterators_need_not_accept_nil
|
|
TypeInferLoops.dcr_iteration_on_never_gives_never
|
|
TypeInferLoops.dcr_xpath_candidates
|
|
TypeInferLoops.for_in_loop
|
|
TypeInferLoops.for_in_loop_error_on_factory_not_returning_the_right_amount_of_values
|
|
TypeInferLoops.for_in_loop_error_on_iterator_requiring_args_but_none_given
|
|
TypeInferLoops.for_in_loop_on_error
|
|
TypeInferLoops.for_in_loop_on_non_function
|
|
TypeInferLoops.for_in_loop_with_next
|
|
TypeInferLoops.for_loop
|
|
TypeInferLoops.ipairs_produces_integral_indices
|
|
TypeInferLoops.iterate_over_properties
|
|
TypeInferLoops.iteration_regression_issue_69967_alt
|
|
TypeInferLoops.loop_iter_metamethod_nil
|
|
TypeInferLoops.loop_iter_metamethod_not_enough_returns
|
|
TypeInferLoops.loop_iter_metamethod_ok
|
|
TypeInferLoops.loop_iter_metamethod_ok_with_inference
|
|
TypeInferLoops.loop_iter_no_indexer_strict
|
|
TypeInferLoops.loop_iter_trailing_nil
|
|
TypeInferLoops.loop_typecheck_crash_on_empty_optional
|
|
TypeInferLoops.properly_infer_iteratee_is_a_free_table
|
|
TypeInferLoops.repeat_loop
|
|
TypeInferLoops.while_loop
|
|
TypeInferModules.require
|
|
TypeInferOOP.dont_suggest_using_colon_rather_than_dot_if_it_wont_help_2
|
|
TypeInferOOP.dont_suggest_using_colon_rather_than_dot_if_not_defined_with_colon
|
|
TypeInferOOP.inferring_hundreds_of_self_calls_should_not_suffocate_memory
|
|
TypeInferOOP.promise_type_error_too_complex
|
|
TypeInferOperators.cli_38355_recursive_union
|
|
TypeInferOperators.compound_assign_result_must_be_compatible_with_var
|
|
TypeInferOperators.concat_op_on_free_lhs_and_string_rhs
|
|
TypeInferOperators.concat_op_on_string_lhs_and_free_rhs
|
|
TypeInferOperators.disallow_string_and_types_without_metatables_from_arithmetic_binary_ops
|
|
TypeInferOperators.luau_polyfill_is_array
|
|
TypeInferOperators.mm_comparisons_must_return_a_boolean
|
|
TypeInferOperators.reworked_and
|
|
TypeInferOperators.strict_binary_op_where_lhs_unknown
|
|
TypeInferOperators.typecheck_overloaded_multiply_that_is_an_intersection
|
|
TypeInferOperators.typecheck_overloaded_multiply_that_is_an_intersection_on_rhs
|
|
TypeInferOperators.typecheck_unary_len_error
|
|
TypeInferOperators.typecheck_unary_minus_error
|
|
TypeInferOperators.UnknownGlobalCompoundAssign
|
|
TypeInferPrimitives.CheckMethodsOfNumber
|
|
TypeInferUnknownNever.assign_to_local_which_is_never
|
|
TypeInferUnknownNever.index_on_union_of_tables_for_properties_that_is_never
|
|
TypeInferUnknownNever.index_on_union_of_tables_for_properties_that_is_sorta_never
|
|
TypeInferUnknownNever.length_of_never
|
|
TypeInferUnknownNever.math_operators_and_never
|
|
TypeInferUnknownNever.type_packs_containing_never_is_itself_uninhabitable
|
|
TypePackTests.fuzz_typepack_iter_follow_2
|
|
TypePackTests.pack_tail_unification_check
|
|
TypePackTests.type_alias_backwards_compatible
|
|
TypePackTests.type_alias_default_type_errors
|
|
TypePackTests.unify_variadic_tails_in_arguments
|
|
TypeSingletons.enums_using_singletons_mismatch
|
|
TypeSingletons.error_detailed_tagged_union_mismatch_bool
|
|
TypeSingletons.error_detailed_tagged_union_mismatch_string
|
|
TypeSingletons.overloaded_function_call_with_singletons_mismatch
|
|
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
|
|
TypeStatesTest.typestates_preserve_error_suppression_properties
|
|
VisitType.throw_when_limit_is_exceeded
|