blob: a98646b2d7025c364ee58507298f9c7c5c820bc6 [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.
/*@testedFeatures=inference*/
library test;
class C<T> {
T t;
C(this.t);
}
test() {
var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(42);
num y;
C<int> c_int = new /*@ typeArgs=int* */ C(
/*info:DOWN_CAST_IMPLICIT*/ y);
// These hints are not reported because we resolve with a null error listener.
C<num> c_num = new /*@ typeArgs=num* */ C(123);
C<num> c_num2 = (new /*@ typeArgs=num* */ C(456)).. /*@target=C.t*/ t = 1.0;
// Don't infer from explicit dynamic.
var /*@ type=C<dynamic>* */ c_dynamic = new C<dynamic>(42);
x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
}
main() {}