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>
92 lines
2.2 KiB
Dart
92 lines
2.2 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,
|
|
async.dart.FutureExtensions]*/
|
|
|
|
class A1 {
|
|
int _instanceField;
|
|
int getInstanceField() => _instanceField;
|
|
void setInstanceField(int value) {
|
|
_instanceField = value;
|
|
}
|
|
static int _staticField = 0;
|
|
static int getStaticField() => _staticField;
|
|
static void setStaticField(int value) {
|
|
_staticField = value;
|
|
}
|
|
}
|
|
|
|
/*class: A2:
|
|
builder-name=A2,
|
|
builder-onType=A1,
|
|
extension-members=[
|
|
operator +=A2|+,
|
|
getter instanceProperty=A2|get#instanceProperty,
|
|
setter instanceProperty=A2|set#instanceProperty,
|
|
static field staticField=A2|staticField,
|
|
static getter staticProperty=A2|staticProperty,
|
|
static setter staticProperty=A2|staticProperty=],
|
|
extension-name=A2,
|
|
extension-onType=A1
|
|
*/
|
|
extension A2 on A1 {
|
|
/*member: A2|get#instanceProperty:
|
|
builder-name=instanceProperty,
|
|
builder-params=[#this],
|
|
member-name=A2|get#instanceProperty,
|
|
member-params=[#this]
|
|
*/
|
|
int get instanceProperty => getInstanceField();
|
|
|
|
/*member: A2|set#instanceProperty:
|
|
builder-name=instanceProperty,
|
|
builder-params=[#this,value],
|
|
member-name=A2|set#instanceProperty,
|
|
member-params=[#this,value]
|
|
*/
|
|
void set instanceProperty(int value) {
|
|
setInstanceField(value);
|
|
}
|
|
|
|
// TODO(johnniwinther): Test operator -() and operator -(val).
|
|
|
|
/*member: A2|+:
|
|
builder-name=+,
|
|
builder-params=[#this,value],
|
|
member-name=A2|+,
|
|
member-params=[#this,value]
|
|
*/
|
|
int operator +(int value) {
|
|
return getInstanceField() + value;
|
|
}
|
|
|
|
/*member: A2|staticField:
|
|
builder-name=staticField,
|
|
member-name=A2|staticField
|
|
*/
|
|
static int staticField = A1.getStaticField();
|
|
|
|
/*member: A2|staticProperty:
|
|
builder-name=staticProperty,
|
|
member-name=A2|staticProperty
|
|
*/
|
|
static int get staticProperty => A1.getStaticField();
|
|
|
|
/*member: A2|staticProperty=:
|
|
builder-name=staticProperty,
|
|
builder-params=[value],
|
|
member-name=A2|staticProperty=,
|
|
member-params=[value]
|
|
*/
|
|
static void set staticProperty(int value) {
|
|
A1.setStaticField(value);
|
|
}
|
|
}
|
|
|
|
main() {}
|