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 2874033003: Set MethodInvocation.interfaceTarget during type inference. (Closed)

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

Description

Set MethodInvocation.interfaceTarget during type inference. We need to compute the interface target in order to do the inference anyway, so this is a reasonable time to store it. Also annotate the inference tests with interface targets so that we can verify that the interface targets computed by analyzer match those computed by Fasta. Note that this causes a few strong mode tests to fail that were previously passing, due to the fact that type inference in Fasta is incomplete. R=scheglov@google.com Committed: https://github.com/dart-lang/sdk/commit/17c23be470538bc20aaf3adc2bc79b0f8a4281b1

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+679 lines, -470 lines) Patch
M pkg/analyzer/test/src/task/strong/front_end_inference_test.dart View 8 chunks +63 lines, -23 lines 0 comments Download
M pkg/front_end/lib/src/base/instrumentation.dart View 1 chunk +14 lines, -0 lines 0 comments Download
M pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart View 1 chunk +8 lines, -0 lines 0 comments Download
M pkg/front_end/lib/src/fasta/testing/validating_instrumentation.dart View 2 chunks +7 lines, -2 lines 0 comments Download
M pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart View 3 chunks +11 lines, -4 lines 0 comments Download
M pkg/front_end/test/fasta/strong.status View 3 chunks +7 lines, -0 lines 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart View 1 chunk +3 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart View 1 chunk +7 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart View 2 chunks +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart View 2 chunks +4 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/future_or_subtyping.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then.dart View 1 chunk +27 lines, -19 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_2.dart View 1 chunk +27 lines, -19 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_3.dart View 1 chunk +27 lines, -19 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_4.dart View 1 chunk +27 lines, -19 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_5.dart View 1 chunk +27 lines, -19 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_6.dart View 1 chunk +27 lines, -19 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional.dart View 1 chunk +15 lines, -11 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_2.dart View 1 chunk +15 lines, -11 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_3.dart View 1 chunk +15 lines, -11 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_4.dart View 1 chunk +15 lines, -11 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_5.dart View 1 chunk +15 lines, -11 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_conditional_6.dart View 1 chunk +15 lines, -11 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_downwards_method_target.dart View 1 chunk +6 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_explicit_future.dart View 1 chunk +7 lines, -6 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards.dart View 1 chunk +7 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_2.dart View 1 chunk +7 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_3.dart View 1 chunk +7 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/future_then_upwards_from_block.dart View 1 chunk +5 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards.dart View 1 chunk +6 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_2.dart View 1 chunk +6 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_3.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_4.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart View 1 chunk +4 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart View 1 chunk +3 lines, -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 +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart View 2 chunks +8 lines, -7 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart View 1 chunk +2 lines, -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_inference_error.dart View 1 chunk +5 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart View 1 chunk +20 lines, -17 lines 0 comments Download
M pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart View 1 chunk +7 lines, -5 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_index.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_property.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_assign_to_property_custom.dart View 1 chunk +2 lines, -2 lines 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_binary_double_double.dart View 1 chunk +12 lines, -12 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_binary_double_int.dart View 1 chunk +12 lines, -12 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_binary_int_double.dart View 1 chunk +12 lines, -12 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_binary_int_int.dart View 1 chunk +17 lines, -17 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_conditional.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 +4 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_named.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_generic_method_type_required.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/infer_prefix_expression.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_statics_with_method_invocations.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 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.strong.expect View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart View 1 chunk +4 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/infer_use_of_void.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_cascade.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_invoke_method.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/list_literals.dart View 1 chunk +8 lines, -5 lines 0 comments Download
M pkg/front_end/testcases/inference/list_literals.dart.strong.expect View 1 chunk +5 lines, -5 lines 0 comments Download
M pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.strong.expect View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/list_literals_top_level.dart View 1 chunk +5 lines, -5 lines 0 comments Download
M pkg/front_end/testcases/inference/list_literals_top_level.dart.strong.expect View 1 chunk +5 lines, -5 lines 0 comments Download
M pkg/front_end/testcases/inference/map_literals.dart View 2 chunks +14 lines, -9 lines 0 comments Download
M pkg/front_end/testcases/inference/map_literals_can_infer_null.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/map_literals_top_level.dart View 2 chunks +9 lines, -9 lines 0 comments Download
M pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart View 1 chunk +4 lines, -4 lines 0 comments Download
M pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart View 1 chunk +3 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart View 1 chunk +3 lines, -3 lines 0 comments Download
M pkg/front_end/testcases/inference/static_method_tear_off.dart View 1 chunk +1 line, -1 line 0 comments Download
M pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart View 1 chunk +2 lines, -1 line 0 comments Download
M pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.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

Messages

Total messages: 5 (2 generated)
Paul Berry
3 years, 7 months ago (2017-05-10 20:53:38 UTC) #2
scheglov
LGTM
3 years, 7 months ago (2017-05-10 21:05:24 UTC) #3
Paul Berry
3 years, 7 months ago (2017-05-10 21:31:11 UTC) #5
Message was sent while issue was closed.
Committed patchset #1 (id:1) manually as
17c23be470538bc20aaf3adc2bc79b0f8a4281b1 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698