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

Issue 2946273002: Implement override-based type inference for instance methods. (Closed)

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

Description

Implement override-based type inference for instance methods. Also, fix a rare infinite loop bug in analyzer exposed by one of the tests. R=brianwilkerson@google.com, sigmund@google.com Committed: https://github.com/dart-lang/sdk/commit/b2c4b0ac0abbf80ce0bd647f78aad78702678d3c

Patch Set 1 #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+630 lines, -126 lines) Patch
M pkg/analyzer/lib/src/task/strong/checker.dart View 1 chunk +5 lines, -0 lines 0 comments Download
M pkg/analyzer/test/src/task/strong/front_end_inference_test.dart View 1 chunk +8 lines, -4 lines 0 comments Download
M pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart View 1 chunk +0 lines, -1 line 0 comments Download
M pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart View 4 chunks +14 lines, -10 lines 2 comments Download
M pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart View 4 chunks +24 lines, -0 lines 0 comments Download
M pkg/front_end/lib/src/fasta/type_inference/type_constraint_gatherer.dart View 3 chunks +9 lines, -19 lines 0 comments Download
M pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart View 15 chunks +194 lines, -19 lines 4 comments Download
M pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart View 1 chunk +17 lines, -0 lines 2 comments Download
M pkg/front_end/test/fasta/kompile.status View 2 chunks +3 lines, -0 lines 0 comments Download
M pkg/front_end/test/fasta/strong.status View 1 chunk +1 line, -1 line 0 comments Download
A pkg/front_end/testcases/inference/circular_method_inference.dart View 1 chunk +20 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/circular_method_inference.dart.direct.expect View 1 chunk +18 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/circular_method_inference.dart.outline.expect View 1 chunk +16 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/circular_method_inference.dart.strong.expect View 1 chunk +18 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart View 2 chunks +4 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_2.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_3.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_3.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_4.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_4.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_5.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_5.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_6.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_6.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_2.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_3.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_3.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_4.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_4.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_5.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_5.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_6.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_6.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_2.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_3.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_3.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_async_conditional.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_async_conditional.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_async_conditional_2.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_2.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_3.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_3.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_4.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_4.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart View 1 chunk +3 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_binary_custom.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart View 1 chunk +1 line, -1 line 0 comments Download
A pkg/front_end/testcases/inference/infer_method_function_typed.dart View 1 chunk +27 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_function_typed.dart.direct.expect View 1 chunk +23 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_function_typed.dart.outline.expect View 1 chunk +21 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_function_typed.dart.strong.expect View 1 chunk +23 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_missing_params.dart View 1 chunk +28 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_missing_params.dart.direct.expect View 1 chunk +29 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_missing_params.dart.outline.expect View 1 chunk +27 lines, -0 lines 0 comments Download
A pkg/front_end/testcases/inference/infer_method_missing_params.dart.strong.expect View 1 chunk +29 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart View 2 chunks +3 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.strong.expect View 1 chunk +3 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_use_of_void.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/type_cast.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart View 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 7 (2 generated)
Paul Berry
Siggi or Peter to review front_end changes Brian to review analzer change
3 years, 6 months ago (2017-06-21 16:07:04 UTC) #2
Siggi Cherem (dart-lang)
lgtm https://codereview.chromium.org/2946273002/diff/1/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart File pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart (right): https://codereview.chromium.org/2946273002/diff/1/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart#newcode251 pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart:251: // For now, we skip inferred return types ...
3 years, 6 months ago (2017-06-21 20:19:08 UTC) #3
Brian Wilkerson
Analyzer changes lgtm
3 years, 6 months ago (2017-06-21 20:54:40 UTC) #4
Paul Berry
https://codereview.chromium.org/2946273002/diff/1/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart File pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart (right): https://codereview.chromium.org/2946273002/diff/1/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart#newcode251 pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart:251: // For now, we skip inferred return types of ...
3 years, 6 months ago (2017-06-21 20:54:47 UTC) #5
Paul Berry
3 years, 6 months ago (2017-06-21 20:56:12 UTC) #7
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
b2c4b0ac0abbf80ce0bd647f78aad78702678d3c (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698