blob: 7bee8a25a5f67fdb372cf9d44a23f65094afbe06 [file] [log] [blame]
// 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.
// @dart=2.9
/*@testedFeatures=inference*/
library test;
class Resource {}
class Folder extends Resource {}
Resource getResource(String str) => null;
class Foo<T> {
Foo(T t);
}
main() {
// List inside map
var /*@ type=Map<String*, List<Folder*>*>* */ map = <String, List<Folder>>{
'pkgA': /*@ typeArgs=Folder* */ [
/*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgA/lib/')
],
'pkgB': /*@ typeArgs=Folder* */ [
/*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgB/lib/')
]
};
// Also try map inside list
var /*@ type=List<Map<String*, Folder*>*>* */ list = <Map<String, Folder>>[
/*@ typeArgs=String*, Folder* */ {
'pkgA': /*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgA/lib/')
},
/*@ typeArgs=String*, Folder* */ {
'pkgB': /*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgB/lib/')
},
];
// Instance creation too
var /*@ type=Foo<List<Folder*>*>* */ foo = new Foo<List<Folder>>(
/*@ typeArgs=Folder* */ [
/*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgA/lib/')
]);
}