mirror of
https://github.com/dart-lang/sdk
synced 2024-11-02 10:49:00 +00:00
578fa6bee9
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>
48 lines
1.4 KiB
Dart
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);
|
|
}
|