dart-sdk/tests/language/prefix/prefix15_test.dart
Robert Nystrom 578fa6bee9 Migrate language_2/prefix to NNBD.
Change-Id: I5149b18d796c6991404c22322e5fb4b4c8372613
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/150287
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
2020-06-06 01:44:40 +00:00

48 lines
1.4 KiB
Dart

// Copyright (c) 2011, 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.
//
// Use qualified symbols with generics at various places.
library Prefix15Test.dart;
import "package:expect/expect.dart";
import "../library12.dart" as lib12;
typedef T myFunc<T>(T param);
class myInterface<T extends lib12.Library12>
implements lib12.Library12Interface {
myInterface(T this.myfld);
T addObjects(covariant T value1, covariant T value2) {
myfld.fld = (value1.fld + value2.fld + myfld.fld);
return myfld;
}
T myfld;
}
class myClass2<T> {
myClass2(T this.fld2);
T func(T val) => val;
T fld2;
}
main() {
var o;
o = new myClass2<lib12.Library12>(new lib12.Library12(100));
myFunc<lib12.Library12> func = o.func;
Expect.equals(2, func(new lib12.Library12(10)).func());
Expect.equals(10, func(new lib12.Library12(10)).fld);
o = new myClass2<lib12.Library12>(new lib12.Library12(200));
Expect.equals(2, o.fld2.func());
Expect.equals(200, o.fld2.fld);
o = new myInterface<lib12.Library12>(new lib12.Library12(100));
Expect.equals(2, o.myfld.func());
Expect.equals(100, o.myfld.fld);
o = o.addObjects(new lib12.Library12(200), new lib12.Library12(300));
Expect.equals(2, o.func());
Expect.equals(600, o.fld);
}