// 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());
}
