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

typedef T Function2<S, T>([S x]);

class Foo {
  List<int> x;
  Foo([this.x = /*@typeArgs=int*/ const [1]]);
  Foo.named([List<int> x = /*@typeArgs=int*/ const [1]]);
}

void f([List<int> l = /*@typeArgs=int*/ const [1]]) {}
// We do this inference in an early task but don't preserve the infos.
Function2<List<int>, String> g = /*@returnType=String*/ (
        [/*@type=List<int>*/ llll = /*@typeArgs=int*/ const [1]]) =>
    "hello";

main() {}
