2bb32ec55a
Change-Id: Ib1afd38a7d3694c2e5ed591132f41b147f76d75a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/427560 Reviewed-by: Stephen Adams <sra@google.com> Commit-Queue: Mayank Patke <fishythefish@google.com>
149 lines
3.4 KiB
Dart
149 lines
3.4 KiB
Dart
// Copyright (c) 2018, 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.
|
|
|
|
class Class1<T> {
|
|
/*member: Class1.field:hasThis*/
|
|
var field = /*fields=[T],free=[T],hasThis*/ () => T;
|
|
|
|
/*member: Class1.funcField:hasThis*/
|
|
Function? funcField;
|
|
|
|
/*member: Class1.:hasThis*/
|
|
Class1() {
|
|
field = /*fields=[T],free=[T],hasThis*/ () => T;
|
|
}
|
|
|
|
/*member: Class1.setFunc:hasThis*/
|
|
Class1.setFunc(this.funcField);
|
|
|
|
/*member: Class1.fact:*/
|
|
factory Class1.fact() => Class1<T>();
|
|
|
|
/*member: Class1.fact2:*/
|
|
factory Class1.fact2() =>
|
|
Class1.setFunc(/*fields=[T],free=[T]*/ () => Set<T>());
|
|
|
|
/*member: Class1.method1:hasThis*/
|
|
method1() => T;
|
|
|
|
/*member: Class1.method2:hasThis*/
|
|
method2() {
|
|
return /*fields=[this],free=[this],hasThis*/ () => T;
|
|
}
|
|
|
|
/*member: Class1.method3:hasThis*/
|
|
method3<S>() => S;
|
|
|
|
/*member: Class1.method4:hasThis*/
|
|
method4<S>() {
|
|
return /*fields=[S],free=[S],hasThis*/ () => S;
|
|
}
|
|
|
|
/*member: Class1.method5:hasThis*/
|
|
method5() {
|
|
/*hasThis*/
|
|
local<S>() {
|
|
return /*fields=[S],free=[S],hasThis*/ () => S;
|
|
}
|
|
|
|
return local<double>();
|
|
}
|
|
|
|
/*member: Class1.method6:hasThis*/
|
|
method6<S>() {
|
|
/*fields=[S],free=[S],hasThis*/
|
|
local<U>() {
|
|
return /*fields=[S,U],free=[S,U],hasThis*/ () => '$S$U';
|
|
}
|
|
|
|
var local2 =
|
|
/*fields=[S,this],free=[S,this],hasThis*/
|
|
(o) {
|
|
return
|
|
/*fields=[S,this],free=[S,this],hasThis*/
|
|
() => Map<T, S>();
|
|
};
|
|
return local2(local<double>());
|
|
}
|
|
|
|
/*member: Class1.staticMethod1:*/
|
|
static staticMethod1<S>() => S;
|
|
|
|
/*member: Class1.staticMethod2:*/
|
|
static staticMethod2<S>() {
|
|
return /*fields=[S],free=[S]*/ () => S;
|
|
}
|
|
|
|
/*member: Class1.staticMethod3:*/
|
|
static staticMethod3() {
|
|
local<S>() {
|
|
return /*fields=[S],free=[S]*/ () => S;
|
|
}
|
|
|
|
return local<double>();
|
|
}
|
|
|
|
/*member: Class1.staticMethod4:*/
|
|
static staticMethod4<S>() {
|
|
/*fields=[S],free=[S]*/
|
|
local<U>() {
|
|
return /*fields=[S,U],free=[S,U]*/ () => '$S$U';
|
|
}
|
|
|
|
var local2 = /*fields=[S],free=[S]*/ (o) {
|
|
return /*fields=[S],free=[S]*/ () => Set<S>();
|
|
};
|
|
return local2(local<double>());
|
|
}
|
|
}
|
|
|
|
/*member: topLevelMethod1:*/
|
|
topLevelMethod1<S>() => S;
|
|
|
|
/*member: topLevelMethod2:*/
|
|
topLevelMethod2<S>() {
|
|
return /*fields=[S],free=[S]*/ () => S;
|
|
}
|
|
|
|
/*member: topLevelMethod3:*/
|
|
topLevelMethod3() {
|
|
local<S>() {
|
|
return /*fields=[S],free=[S]*/ () => S;
|
|
}
|
|
|
|
return local<double>();
|
|
}
|
|
|
|
/*member: topLevelMethod4:*/
|
|
topLevelMethod4<S>() {
|
|
/*fields=[S],free=[S]*/
|
|
local<U>() {
|
|
return /*fields=[S,U],free=[S,U]*/ () => '$S$U';
|
|
}
|
|
|
|
var local2 = /*fields=[S],free=[S]*/ (o) {
|
|
return /*fields=[S],free=[S]*/ () => Set<S>();
|
|
};
|
|
return local2(local<double>());
|
|
}
|
|
|
|
/*member: main:*/
|
|
main() {
|
|
Class1<int>().method1();
|
|
Class1<int>.fact().method2();
|
|
Class1<int>.fact2().funcField!() is Set;
|
|
Class1<int>().method3<double>();
|
|
Class1<int>().method4<double>();
|
|
Class1<int>().method5();
|
|
Class1<int>().method6<double>();
|
|
Class1.staticMethod1<double>();
|
|
Class1.staticMethod2<double>();
|
|
Class1.staticMethod3();
|
|
Class1.staticMethod4<double>();
|
|
topLevelMethod1<double>();
|
|
topLevelMethod2<double>();
|
|
topLevelMethod3();
|
|
topLevelMethod4<double>();
|
|
}
|