Files
sdk/pkg/front_end/testcases/inference/callable_generic_class.dart
T
Paul Berry 6e3b91507b Use getCalleeType to look up the type of an implicitly invoked .call method.
This ensures that if the class containing the `.call` method is
generic, the appropriate substitutions will be made.

Fixes #32238.

Change-Id: Ie72ebffc8f3a8233a7e4d7f9cec1d5fd7b2eec97
Reviewed-on: https://dart-review.googlesource.com/42380
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-02-20 12:14:14 +00:00

27 lines
738 B
Dart

// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
/*@testedFeatures=inference*/
library test;
class ActionDispatcher<P> {
void call([P value]) {}
}
class Bar {}
class FooActions {
ActionDispatcher<Bar> get foo => new ActionDispatcher<Bar>();
}
void main() {
new FooActions(). /*@target=FooActions::foo*/ foo(new Bar());
new FooActions()
. /*@target=FooActions::foo*/ foo
. /*@target=ActionDispatcher::call*/ call(new Bar());
(new FooActions()
. /*@target=FooActions::foo*/ foo) /*@target=ActionDispatcher::call*/ (
new Bar());
}