726904ac17
Provides better typing than `catchError`. Change-Id: If0d4487b7c3a499160fb719740a1d65c0545024d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151512 Commit-Queue: Lasse R.H. Nielsen <lrn@google.com> Reviewed-by: Lasse R.H. Nielsen <lrn@google.com> Reviewed-by: Nate Bosch <nbosch@google.com>
178 lines
3.6 KiB
Dart
178 lines
3.6 KiB
Dart
// Copyright (c) 2019, 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
|
|
|
|
/*library: scope=[
|
|
A2,
|
|
B2,
|
|
async.dart.FutureExtensions]*/
|
|
|
|
class A1 {}
|
|
|
|
/*class: A2:
|
|
builder-name=A2,
|
|
builder-onType=A1,
|
|
extension-members=[
|
|
method1=A2|method1,
|
|
method2=A2|method2,
|
|
method3=A2|method3,
|
|
method4=A2|method4,
|
|
tearoff method1=A2|get#method1,
|
|
tearoff method2=A2|get#method2,
|
|
tearoff method3=A2|get#method3,
|
|
tearoff method4=A2|get#method4],
|
|
extension-name=A2,
|
|
extension-onType=A1
|
|
*/
|
|
extension A2 on A1 {
|
|
/*member: A2|method1:
|
|
builder-name=method1,
|
|
builder-params=[#this],
|
|
member-name=A2|method1,
|
|
member-params=[#this]
|
|
*/
|
|
A1 method1() {
|
|
return this;
|
|
}
|
|
|
|
/*member: A2|get#method1:
|
|
builder-name=method1,
|
|
builder-params=[#this],
|
|
member-name=A2|get#method1,
|
|
member-params=[#this]
|
|
*/
|
|
|
|
/*member: A2|method2:
|
|
builder-name=method2,
|
|
builder-params=[#this,o],
|
|
builder-type-params=[T],
|
|
member-name=A2|method2,
|
|
member-params=[#this,o],
|
|
member-type-params=[T]
|
|
*/
|
|
A1 method2<T>(T o) {
|
|
print(o);
|
|
return this;
|
|
}
|
|
|
|
/*member: A2|get#method2:
|
|
builder-name=method2,
|
|
builder-params=[#this,o],
|
|
builder-type-params=[T],
|
|
member-name=A2|get#method2,
|
|
member-params=[#this]
|
|
*/
|
|
|
|
/*member: A2|method3:
|
|
builder-name=method3,
|
|
builder-params=[#this],
|
|
builder-pos-params=[o],
|
|
builder-type-params=[T],
|
|
member-name=A2|method3,
|
|
member-params=[#this],
|
|
member-pos-params=[o],
|
|
member-type-params=[T]
|
|
*/
|
|
A1 method3<T>([T o]) {
|
|
print(o);
|
|
return this;
|
|
}
|
|
|
|
/*member: A2|get#method3:
|
|
builder-name=method3,
|
|
builder-params=[#this],
|
|
builder-pos-params=[o],
|
|
builder-type-params=[T],
|
|
member-name=A2|get#method3,
|
|
member-params=[#this]
|
|
*/
|
|
|
|
/*member: A2|method4:
|
|
builder-name=method4,
|
|
builder-params=[#this],
|
|
builder-named-params=[o],
|
|
builder-type-params=[T],
|
|
member-name=A2|method4,
|
|
member-params=[#this],
|
|
member-named-params=[o],
|
|
member-type-params=[T]
|
|
*/
|
|
A1 method4<T>({T o}) {
|
|
print(o);
|
|
return this;
|
|
}
|
|
|
|
/*member: A2|get#method4:
|
|
builder-name=method4,
|
|
builder-named-params=[o],
|
|
builder-params=[#this],
|
|
builder-type-params=[T],
|
|
member-name=A2|get#method4,
|
|
member-params=[#this]
|
|
*/
|
|
}
|
|
|
|
class B1<T> {}
|
|
|
|
/*class: B2:
|
|
builder-name=B2,
|
|
builder-onType=B1<T>,
|
|
builder-type-params=[T],
|
|
extension-members=[
|
|
method1=B2|method1,
|
|
method2=B2|method2,
|
|
tearoff method1=B2|get#method1,
|
|
tearoff method2=B2|get#method2],
|
|
extension-name=B2,
|
|
extension-onType=B1<T>,
|
|
extension-type-params=[T]
|
|
*/
|
|
extension B2<T> on B1<T> {
|
|
/*member: B2|method1:
|
|
builder-name=method1,
|
|
builder-params=[#this],
|
|
builder-type-params=[T],
|
|
member-name=B2|method1,
|
|
member-params=[#this],
|
|
member-type-params=[T]
|
|
*/
|
|
B1<T> method1() {
|
|
return this;
|
|
}
|
|
|
|
/*member: B2|get#method1:
|
|
builder-name=method1,
|
|
builder-params=[#this],
|
|
builder-type-params=[T],
|
|
member-name=B2|get#method1,
|
|
member-params=[#this],
|
|
member-type-params=[T]
|
|
*/
|
|
|
|
/*member: B2|method2:
|
|
builder-name=method2,
|
|
builder-params=[#this,o],
|
|
builder-type-params=[T,S],
|
|
member-name=B2|method2,
|
|
member-params=[#this,o],
|
|
member-type-params=[T,S]
|
|
*/
|
|
B1<T> method2<S>(S o) {
|
|
print(o);
|
|
return this;
|
|
}
|
|
|
|
/*member: B2|get#method2:
|
|
builder-name=method2,
|
|
builder-params=[#this,o],
|
|
builder-type-params=[T,S],
|
|
member-name=B2|get#method2,
|
|
member-params=[#this],
|
|
member-type-params=[T]
|
|
*/
|
|
}
|
|
|
|
main() {}
|