// 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;

import 'dart:async';

test() {
  Future<int> f;
  Future<List<int>> b = /*info:ASSIGNMENT_CAST should be pass*/ f
      . /*@typeArgs=List<dynamic>*/ /*@target=Future::then*/ then(
          /*@returnType=List<dynamic>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ [])
      . /*@target=Future::whenComplete*/ whenComplete(
          /*@returnType=Null*/ () {});
  b = f. /*@typeArgs=List<int>*/ /*@target=Future::then*/ then(
      /*@returnType=List<int>*/ (/*@type=int*/ x) => /*@typeArgs=int*/ []);
}

main() {}
