blob: fb2c206927b949e23db3ebe5ae13cc54cd699955 [file] [log] [blame]
// Copyright (c) 2016, 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.md file.
// @dart=2.9
typedef void Func();
class C<T> {
test() {
// Note: we cannot write a type literal with generic type arguments. For
// example, `C<String>` isn't a valid expression.
C;
use(C);
dynamic;
use(dynamic);
T;
use(T);
Func;
use(Func);
C();
use(C());
dynamic();
use(dynamic());
T();
use(T());
Func();
use(Func());
C = 42;
use(C = 42);
dynamic = 42;
use(dynamic = 42);
T = 42;
use(T = 42);
Func = 42;
use(Func = 42);
C++;
use(C++);
dynamic++;
use(dynamic++);
T++;
use(T++);
Func++;
use(Func++);
++C;
use(++C);
++dynamic;
use(++dynamic);
++T;
use(++T);
++Func;
use(++Func);
C--;
use(C--);
dynamic--;
use(dynamic--);
T--;
use(T--);
Func--;
use(Func--);
--C;
use(--C);
--dynamic;
use(--dynamic);
--T;
use(--T);
--Func;
use(--Func);
C ??= 42;
use(C ??= 42);
dynamic ??= 42;
use(dynamic ??= 42);
T ??= 42;
use(T ??= 42);
Func ??= 42;
use(Func ??= 42);
C += 42;
use(C += 42);
dynamic += 42;
use(dynamic += 42);
T += 42;
use(T += 42);
Func += 42;
use(Func += 42);
C -= 42;
use(C -= 42);
dynamic -= 42;
use(dynamic -= 42);
T -= 42;
use(T -= 42);
Func -= 42;
use(Func -= 42);
}
}
use(x) {
if (x == new DateTime.now().millisecondsSinceEpoch) throw "Shouldn't happen";
}
main() {
new C().test();
}