blob: 7a82ace97fdbc5edf722b12e9214a41751b6937b [file] [log] [blame]
// Copyright (c) 2012, 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
// Tests showing errors using type-arguments in new expressions:
class A<T> {
// Can't instantiate type parameter (within static or instance method).
m1() => new T();
// ^
// [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
// [cfe] Couldn't find constructor 'T'.
static m2() => new T();
// ^
// [analyzer] COMPILE_TIME_ERROR.CREATION_WITH_NON_TYPE
// [analyzer] COMPILE_TIME_ERROR.TYPE_PARAMETER_REFERENCED_BY_STATIC
// [cfe] Couldn't find constructor 'T'.
// OK when used within instance method, but not in static method.
m3() => new A<T>();
static m4() => new A<T>();
// ^
// [analyzer] COMPILE_TIME_ERROR.TYPE_PARAMETER_REFERENCED_BY_STATIC
// [cfe] Type variables can't be used in static members.
}
main() {
A a = new A();
a.m1();
A.m2();
a.m3();
A.m4();
}