Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Issue 2865623003: Implement type inference of constructor invocations in Fasta. (Closed)

Created:
3 years, 7 months ago by Paul Berry
Modified:
3 years, 7 months ago
CC:
reviews_dartlang.org, dart-fe-team+reviews_google.com
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Implement type inference of constructor invocations in Fasta. Fixes 68 inference tests. R=scheglov@google.com Committed: https://github.com/dart-lang/sdk/commit/893a08c8dc7596455ca4e86e6ed1d124db9edb65

Patch Set 1 #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+1632 lines, -72 lines) Patch
M pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart View 1 chunk +19 lines, -2 lines 0 comments Download
M pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart View 3 chunks +110 lines, -1 line 0 comments Download
M pkg/front_end/test/fasta/strong.status View 6 chunks +0 lines, -68 lines 0 comments Download
M pkg/front_end/testcases/inference/bottom.dart View 1 chunk +4 lines, -0 lines 1 comment Download
A pkg/front_end/testcases/inference/bottom.dart.strong.expect View 1 chunk +7 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/bottom_in_closure.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/bottom_in_closure.dart.strong.expect View 1 chunk +7 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/conflicts_can_happen.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/conflicts_can_happen.dart.strong.expect View 1 chunk +43 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/conflicts_can_happen2.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/conflicts_can_happen2.dart.strong.expect View 1 chunk +50 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.strong.expect View 1 chunk +24 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart View 1 chunk +5 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.strong.expect View 1 chunk +19 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.strong.expect View 1 chunk +10 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.strong.expect View 1 chunk +9 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.strong.expect View 1 chunk +46 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/field_refers_to_static_getter.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.strong.expect View 1 chunk +13 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.strong.expect View 1 chunk +13 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.strong.expect View 1 chunk +10 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.strong.expect View 1 chunk +14 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart View 2 chunks +3 lines, -1 line 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.strong.expect View 1 chunk +25 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.strong.expect View 1 chunk +70 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_index.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_assign_to_index.dart.strong.expect View 1 chunk +7 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_property.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_assign_to_property.dart.strong.expect View 1 chunk +19 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_property_custom.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_assign_to_property_custom.dart.strong.expect View 1 chunk +24 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_ref.dart View 1 chunk +7 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_assign_to_ref.dart.strong.expect View 1 chunk +20 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_conditional.dart View 1 chunk +5 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_conditional.dart.strong.expect View 1 chunk +10 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.strong.expect View 1 chunk +8 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_consts_transitively_b.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.strong.expect View 1 chunk +8 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.strong.expect View 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.strong.expect View 1 chunk +8 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_local_function_return_type.dart.strong.expect View 1 chunk +115 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.strong.expect View 1 chunk +17 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.strong.expect View 1 chunk +17 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_transitively2.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_statics_transitively2.dart.strong.expect View 1 chunk +16 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.strong.expect View 1 chunk +13 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.strong.expect View 1 chunk +16 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_transitively_b.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.strong.expect View 1 chunk +8 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.strong.expect View 1 chunk +6 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.strong.expect View 1 chunk +24 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.strong.expect View 1 chunk +24 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_on_var.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_on_var.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_on_var2.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_on_var2.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.strong.expect View 1 chunk +21 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.strong.expect View 1 chunk +26 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.strong.expect View 1 chunk +10 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.strong.expect View 1 chunk +27 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.strong.expect View 1 chunk +25 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.strong.expect View 1 chunk +30 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.strong.expect View 1 chunk +12 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.strong.expect View 1 chunk +24 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_use_of_void.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_use_of_void.dart.strong.expect View 1 chunk +20 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.strong.expect View 1 chunk +14 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_is_enum.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/inferred_type_is_enum.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.strong.expect View 1 chunk +12 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.strong.expect View 1 chunk +12 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.strong.expect View 1 chunk +13 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.strong.expect View 1 chunk +13 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart View 1 chunk +4 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart.strong.expect View 1 chunk +11 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.strong.expect View 1 chunk +17 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.strong.expect View 1 chunk +21 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart View 1 chunk +2 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.strong.expect View 1 chunk +21 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (2 generated)
Paul Berry
https://codereview.chromium.org/2865623003/diff/1/pkg/front_end/testcases/inference/bottom.dart File pkg/front_end/testcases/inference/bottom.dart (right): https://codereview.chromium.org/2865623003/diff/1/pkg/front_end/testcases/inference/bottom.dart#newcode8 pkg/front_end/testcases/inference/bottom.dart:8: var /*@topType=dynamic*/ v = null; Note: some tests, like ...
3 years, 7 months ago (2017-05-05 18:10:52 UTC) #2
scheglov
LGTM
3 years, 7 months ago (2017-05-05 18:27:20 UTC) #3
Paul Berry
3 years, 7 months ago (2017-05-05 18:59:01 UTC) #5
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
893a08c8dc7596455ca4e86e6ed1d124db9edb65 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698