blob: bf8c23c0146a8b5d7cd5bcdf555e825a7b081d0b [file] [log] [blame]
// Copyright (c) 2020, 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.
/*library: nnbd=true*/
library expressions;
import 'dart:math' deferred as prefix;
class Class {
Class();
Class.named();
var field;
get getter => 0;
set setter(/*dynamic*/ _) {}
method1() {}
method2(/*dynamic*/ a) {}
method3([/*dynamic*/ a]) {}
method4(/*dynamic*/ a, [/*dynamic*/ b]) {}
method5({/*dynamic*/ a}) {}
method6(/*dynamic*/ a, {/*dynamic*/ b}) {}
method7({/*dynamic*/ a, /*dynamic*/ b}) {}
genericMethod1<T>() {}
genericMethod2<T, S>() {}
_privateMethod() {}
static var staticField;
static get staticGetter => 42;
static set staticSetter(/*dynamic*/ _) {}
static staticMethod() {}
}
class SubClass extends Class {
/*member: SubClass.exprThis:this*/
exprThis() => this;
/*normal|limited.member: SubClass.exprSuperFieldGet:super.{Class.field}*/
/*verbose.member: SubClass.exprSuperFieldGet:super.{expressions::Class.field}*/
exprSuperFieldGet() => super.field;
/*normal|limited.member: SubClass.exprSuperGetterGet:super.{Class.getter}*/
/*verbose.member: SubClass.exprSuperGetterGet:super.{expressions::Class.getter}*/
exprSuperGetterGet() => super.getter;
/*normal|limited.member: SubClass.exprSuperMethodTearOff:super.{Class.method1}*/
/*verbose.member: SubClass.exprSuperMethodTearOff:super.{expressions::Class.method1}*/
exprSuperMethodTearOff() => super.method1;
/*normal|limited.member: SubClass.exprSuperFieldSet:super.{Class.field} = 42*/
/*verbose.member: SubClass.exprSuperFieldSet:super.{expressions::Class.field} = 42*/
exprSuperFieldSet() => super.field = 42;
/*normal|limited.member: SubClass.exprSuperSetterSet:super.{Class.setter} = 42*/
/*verbose.member: SubClass.exprSuperSetterSet:super.{expressions::Class.setter} = 42*/
exprSuperSetterSet() => super.setter = 42;
/*normal|limited.member: SubClass.exprSuperMethodInvocation:super.{Class.method1}()*/
/*verbose.member: SubClass.exprSuperMethodInvocation:super.{expressions::Class.method1}()*/
exprSuperMethodInvocation() => super.method1();
}
class GenericClass<T, S> {
GenericClass();
GenericClass.named();
}
var topLevelField;
get topLevelGetter => 42;
set topLevelSetter(/*dynamic*/ _) {}
topLevelMethod() {}
T genericTopLevelMethod1<T>(T /*T%*/ t) => t;
T genericTopLevelMethod2<T, S>(T /*T%*/ t, S /*S%*/ s) => t;
/*member: exprNullLiteral:null*/
exprNullLiteral() => null;
/*member: exprBoolLiteralTrue:true*/
exprBoolLiteralTrue() => true;
/*member: exprBoolLiteralFalse:false*/
exprBoolLiteralFalse() => false;
/*member: exprIntLiteral:42*/
exprIntLiteral() => 42;
/*member: exprDoubleLiteral:3.14*/
exprDoubleLiteral() => 3.14;
/*member: exprStringLiteralEmpty:""*/
exprStringLiteralEmpty() => "";
/*member: exprStringLiteralNonEmpty:"foo"*/
exprStringLiteralNonEmpty() => "foo";
/*member: exprStringLiteralSingleQuote:"foo'bar'baz"*/
exprStringLiteralSingleQuote() => "foo'bar'baz";
/*member: exprStringLiteralDoubleQuote:"foo\"bar\"baz"*/
exprStringLiteralDoubleQuote() => 'foo"bar"baz';
/*member: exprStringLiteralSingleDoubleQuote:"foo\"bar'baz"*/
exprStringLiteralSingleDoubleQuote() => "foo\"bar\'baz";
/*member: exprStringLiteralEscapes:"\r\n\t\u0008\f\u0000"*/
exprStringLiteralEscapes() => "\r\n\t\b\f\u0000";
/*member: exprSymbolLiteral:#foo*/
exprSymbolLiteral() => #foo;
/*normal|limited.member: exprPrivateSymbolLiteral:#_bar*/
/*verbose.member: exprPrivateSymbolLiteral:#expressions::_bar*/
exprPrivateSymbolLiteral() => #_bar;
/*normal|limited.member: exprTypeLiteral:Object*/
/*verbose.member: exprTypeLiteral:dart.core::Object*/
exprTypeLiteral() => Object;
/*member: exprVariableGet:variable*/
exprVariableGet(variable) => variable;
/*member: exprVariableSet:variable = 42*/
exprVariableSet(variable) => variable = 42;
/*normal|limited.member: exprInstanceFieldGet:variable.{Class.field}*/
/*verbose.member: exprInstanceFieldGet:variable.{expressions::Class.field}*/
exprInstanceFieldGet(Class variable) => variable.field;
/*normal|limited.member: exprInstanceGetterGet:variable.{Class.getter}*/
/*verbose.member: exprInstanceGetterGet:variable.{expressions::Class.getter}*/
exprInstanceGetterGet(Class variable) => variable.getter;
/*normal|limited.member: exprInstanceMethodTearOff:variable.{Class.method1}*/
/*verbose.member: exprInstanceMethodTearOff:variable.{expressions::Class.method1}*/
exprInstanceMethodTearOff(Class variable) => variable.method1;
/*member: exprDynamicGet:variable.field*/
exprDynamicGet(variable) => variable.field;
/*normal|limited.member: exprObjectGet:variable.{Object.runtimeType}*/
/*verbose.member: exprObjectGet:variable.{dart.core::Object.runtimeType}*/
exprObjectGet(variable) => variable.runtimeType;
/*normal|limited.member: exprInstanceFieldSet:variable.{Class.field} = 42*/
/*verbose.member: exprInstanceFieldSet:variable.{expressions::Class.field} = 42*/
exprInstanceFieldSet(Class variable) => variable.field = 42;
/*normal|limited.member: exprInstanceSetterSet:variable.{Class.setter} = 42*/
/*verbose.member: exprInstanceSetterSet:variable.{expressions::Class.setter} = 42*/
exprInstanceSetterSet(Class variable) => variable.setter = 42;
/*member: exprDynamicSet:variable.field = 42*/
exprDynamicSet(variable) => variable.field = 42;
/*normal|limited.member: exprInstanceInvocation1:variable.{Class.method1}()*/
/*verbose.member: exprInstanceInvocation1:variable.{expressions::Class.method1}()*/
exprInstanceInvocation1(Class variable) => variable.method1();
/*normal|limited.member: exprInstanceInvocation2:variable.{Class.method2}(42)*/
/*verbose.member: exprInstanceInvocation2:variable.{expressions::Class.method2}(42)*/
exprInstanceInvocation2(Class variable) => variable.method2(42);
/*normal|limited.member: exprInstanceInvocation3a:variable.{Class.method3}()*/
/*verbose.member: exprInstanceInvocation3a:variable.{expressions::Class.method3}()*/
exprInstanceInvocation3a(Class variable) => variable.method3();
/*normal|limited.member: exprInstanceInvocation3b:variable.{Class.method3}(42)*/
/*verbose.member: exprInstanceInvocation3b:variable.{expressions::Class.method3}(42)*/
exprInstanceInvocation3b(Class variable) => variable.method3(42);
/*normal|limited.member: exprInstanceInvocation4a:variable.{Class.method4}(42)*/
/*verbose.member: exprInstanceInvocation4a:variable.{expressions::Class.method4}(42)*/
exprInstanceInvocation4a(Class variable) => variable.method4(42);
/*normal|limited.member: exprInstanceInvocation4b:variable.{Class.method4}(42, 87)*/
/*verbose.member: exprInstanceInvocation4b:variable.{expressions::Class.method4}(42, 87)*/
exprInstanceInvocation4b(Class variable) => variable.method4(42, 87);
/*normal|limited.member: exprInstanceInvocation5a:variable.{Class.method5}()*/
/*verbose.member: exprInstanceInvocation5a:variable.{expressions::Class.method5}()*/
exprInstanceInvocation5a(Class variable) => variable.method5();
/*normal|limited.member: exprInstanceInvocation5b:variable.{Class.method5}(a: 42)*/
/*verbose.member: exprInstanceInvocation5b:variable.{expressions::Class.method5}(a: 42)*/
exprInstanceInvocation5b(Class variable) => variable.method5(a: 42);
/*normal|limited.member: exprInstanceInvocation6a:variable.{Class.method6}(42)*/
/*verbose.member: exprInstanceInvocation6a:variable.{expressions::Class.method6}(42)*/
exprInstanceInvocation6a(Class variable) => variable.method6(42);
/*normal|limited.member: exprInstanceInvocation6b:variable.{Class.method6}(42, b: 87)*/
/*verbose.member: exprInstanceInvocation6b:variable.{expressions::Class.method6}(42, b: 87)*/
exprInstanceInvocation6b(Class variable) => variable.method6(42, b: 87);
/*normal|limited.member: exprInstanceInvocation7a:variable.{Class.method7}()*/
/*verbose.member: exprInstanceInvocation7a:variable.{expressions::Class.method7}()*/
exprInstanceInvocation7a(Class variable) => variable.method7();
/*normal|limited.member: exprInstanceInvocation7b:variable.{Class.method7}(a: 42)*/
/*verbose.member: exprInstanceInvocation7b:variable.{expressions::Class.method7}(a: 42)*/
exprInstanceInvocation7b(Class variable) => variable.method7(a: 42);
/*normal|limited.member: exprInstanceInvocation7c:variable.{Class.method7}(b: 87)*/
/*verbose.member: exprInstanceInvocation7c:variable.{expressions::Class.method7}(b: 87)*/
exprInstanceInvocation7c(Class variable) => variable.method7(b: 87);
/*normal|limited.member: exprInstanceInvocation7d:variable.{Class.method7}(a: 42, b: 87)*/
/*verbose.member: exprInstanceInvocation7d:variable.{expressions::Class.method7}(a: 42, b: 87)*/
exprInstanceInvocation7d(Class variable) => variable.method7(a: 42, b: 87);
/*normal|limited.member: exprInstanceInvocation7e:variable.{Class.method7}(b: 87, a: 42)*/
/*verbose.member: exprInstanceInvocation7e:variable.{expressions::Class.method7}(b: 87, a: 42)*/
exprInstanceInvocation7e(Class variable) => variable.method7(b: 87, a: 42);
/*normal|limited.member: exprGenericInvocation1a:variable.{Class.genericMethod1}<dynamic>()*/
/*verbose.member: exprGenericInvocation1a:variable.{expressions::Class.genericMethod1}<dynamic>()*/
exprGenericInvocation1a(Class variable) => variable.genericMethod1();
/*normal|limited.member: exprGenericInvocation1b:variable.{Class.genericMethod1}<int>()*/
/*verbose.member: exprGenericInvocation1b:variable.{expressions::Class.genericMethod1}<dart.core::int>()*/
exprGenericInvocation1b(Class variable) => variable.genericMethod1<int>();
/*normal|limited.member: exprGenericInvocation2a:variable.{Class.genericMethod2}<dynamic, dynamic>()*/
/*verbose.member: exprGenericInvocation2a:variable.{expressions::Class.genericMethod2}<dynamic, dynamic>()*/
exprGenericInvocation2a(Class variable) => variable.genericMethod2();
/*normal|limited.member: exprGenericInvocation2b:variable.{Class.genericMethod2}<int, String>()*/
/*verbose.member: exprGenericInvocation2b:variable.{expressions::Class.genericMethod2}<dart.core::int, dart.core::String>()*/
exprGenericInvocation2b(Class variable) =>
variable.genericMethod2<int, String>();
/*member: exprDynamicInvocation:variable.method1()*/
exprDynamicInvocation(variable) => variable.method1();
/*normal|limited.member: exprObjectInvocation:variable.{Object.toString}()*/
/*verbose.member: exprObjectInvocation:variable.{dart.core::Object.toString}()*/
exprObjectInvocation(variable) => variable.toString();
/*normal|limited.member: exprPrivateInstanceInvocation:variable.{Class._privateMethod}()*/
/*verbose.member: exprPrivateInstanceInvocation:variable.{expressions::Class._privateMethod}()*/
exprPrivateInstanceInvocation(Class variable) => variable._privateMethod();
/*normal|limited.member: exprPrivateDynamicInvocation:variable._privateMethod()*/
/*verbose.member: exprPrivateDynamicInvocation:variable.expressions::_privateMethod()*/
exprPrivateDynamicInvocation(variable) => variable._privateMethod();
/*normal|limited.member: exprTopLevelFieldGet:topLevelField*/
/*verbose.member: exprTopLevelFieldGet:expressions::topLevelField*/
exprTopLevelFieldGet() => topLevelField;
/*normal|limited.member: exprTopLevelGetterGet:topLevelGetter*/
/*verbose.member: exprTopLevelGetterGet:expressions::topLevelGetter*/
exprTopLevelGetterGet() => topLevelGetter;
/*normal|limited.member: exprTopLevelMethodTearOff:topLevelMethod*/
/*verbose.member: exprTopLevelMethodTearOff:expressions::topLevelMethod*/
exprTopLevelMethodTearOff() => topLevelMethod;
/*normal|limited.member: exprTopLevelFieldSet:topLevelField = 42*/
/*verbose.member: exprTopLevelFieldSet:expressions::topLevelField = 42*/
exprTopLevelFieldSet() => topLevelField = 42;
/*normal|limited.member: exprTopLevelSetterSet:topLevelSetter = 42*/
/*verbose.member: exprTopLevelSetterSet:expressions::topLevelSetter = 42*/
exprTopLevelSetterSet() => topLevelSetter = 42;
/*normal|limited.member: exprTopLevelMethodInvocation:topLevelMethod()*/
/*verbose.member: exprTopLevelMethodInvocation:expressions::topLevelMethod()*/
exprTopLevelMethodInvocation() => topLevelMethod();
/*normal|limited.member: exprStaticFieldGet:Class.staticField*/
/*verbose.member: exprStaticFieldGet:expressions::Class.staticField*/
exprStaticFieldGet() => Class.staticField;
/*normal|limited.member: exprStaticGetterGet:Class.staticGetter*/
/*verbose.member: exprStaticGetterGet:expressions::Class.staticGetter*/
exprStaticGetterGet() => Class.staticGetter;
/*normal|limited.member: exprStaticMethodTearOff:Class.staticMethod*/
/*verbose.member: exprStaticMethodTearOff:expressions::Class.staticMethod*/
exprStaticMethodTearOff() => Class.staticMethod;
/*normal|limited.member: exprStaticFieldSet:Class.staticField = 42*/
/*verbose.member: exprStaticFieldSet:expressions::Class.staticField = 42*/
exprStaticFieldSet() => Class.staticField = 42;
/*normal|limited.member: exprStaticSetterSet:Class.staticSetter = 42*/
/*verbose.member: exprStaticSetterSet:expressions::Class.staticSetter = 42*/
exprStaticSetterSet() => Class.staticSetter = 42;
/*normal|limited.member: exprStaticMethodInvocation:Class.staticMethod()*/
/*verbose.member: exprStaticMethodInvocation:expressions::Class.staticMethod()*/
exprStaticMethodInvocation() => Class.staticMethod();
/*normal|limited.member: exprInstantiation1:genericTopLevelMethod1<int>*/
/*verbose.member: exprInstantiation1:expressions::genericTopLevelMethod1<dart.core::int>*/
int Function(int) exprInstantiation1 = genericTopLevelMethod1;
/*normal|limited.member: exprInstantiation2:genericTopLevelMethod2<bool, String>*/
/*verbose.member: exprInstantiation2:expressions::genericTopLevelMethod2<dart.core::bool, dart.core::String>*/
bool Function(bool, String) exprInstantiation2 = genericTopLevelMethod2;
/*member: exprNot:!b*/
exprNot(bool b) => !b;
/*member: exprAnd:a && b*/
exprAnd(bool a, bool b) => a && b;
/*member: exprOr:a || b*/
exprOr(bool a, bool b) => a || b;
/*normal|limited.member: exprConditional1:c ?{int} 0 : 1*/
/*verbose.member: exprConditional1:c ?{dart.core::int} 0 : 1*/
exprConditional1(bool c) => c ? 0 : 1;
/*normal|limited.member: exprConditional2:c ?{List<num>} <num>[] : <int>[]*/
/*verbose.member: exprConditional2:c ?{dart.core::List<dart.core::num>} <dart.core::num>[] : <dart.core::int>[]*/
exprConditional2(bool c) => c ? <num>[] : <int>[];
/*member: exprStringConcatenation:"foo${a}bar${b}"*/
exprStringConcatenation(int a, int b) => 'foo${a}bar$b';
/*normal|limited.member: exprNew:new Class()*/
/*verbose.member: exprNew:new expressions::Class()*/
exprNew() => new Class();
/*normal|limited.member: exprNewNamed:new Class.named()*/
/*verbose.member: exprNewNamed:new expressions::Class.named()*/
exprNewNamed() => new Class.named();
/*normal|limited.member: exprNewGeneric:new GenericClass<int, bool>()*/
/*verbose.member: exprNewGeneric:new expressions::GenericClass<dart.core::int, dart.core::bool>()*/
exprNewGeneric() => new GenericClass<int, bool>();
/*normal|limited.member: exprNewGenericNamed:new GenericClass<int, bool>.named()*/
/*verbose.member: exprNewGenericNamed:new expressions::GenericClass<dart.core::int, dart.core::bool>.named()*/
exprNewGenericNamed() => new GenericClass<int, bool>.named();
/*normal|limited.member: exprIs:o is List<int>*/
/*verbose.member: exprIs:o is{ForNonNullableByDefault} dart.core::List<dart.core::int>*/
exprIs(o) => o is List<int>;
/*normal|limited.member: exprAs:o as List<int>*/
/*verbose.member: exprAs:o as{ForNonNullableByDefault} dart.core::List<dart.core::int>*/
exprAs(o) => o as List<int>;
/*member: exprNullCheck:o!*/
exprNullCheck(o) => o!;
/*member: exprThrow:throw "foo"*/
exprThrow() => throw "foo";
/*member: exprEmptyList:<dynamic>[]*/
exprEmptyList() => [];
/*normal|limited.member: exprEmptyTypedList:<int>[]*/
/*verbose.member: exprEmptyTypedList:<dart.core::int>[]*/
exprEmptyTypedList() => <int>[];
/*normal|limited.member: exprList:<int>[0, 1]*/
/*verbose.member: exprList:<dart.core::int>[0, 1]*/
exprList() => [0, 1];
/*normal|limited.member: exprEmptySet:<int>{}*/
/*verbose.member: exprEmptySet:<dart.core::int>{}*/
exprEmptySet() => <int>{};
/*normal|limited.member: exprSet:<int>{0, 1}*/
/*verbose.member: exprSet:<dart.core::int>{0, 1}*/
exprSet() => {0, 1};
/*member: exprEmptyMap:<dynamic, dynamic>{}*/
exprEmptyMap() => {};
/*normal|limited.member: exprEmptyTypedMap:<int, String>{}*/
/*verbose.member: exprEmptyTypedMap:<dart.core::int, dart.core::String>{}*/
exprEmptyTypedMap() => <int, String>{};
/*normal|limited.member: exprMap:<int, String>{0: "foo", 1: "bar"}*/
/*verbose.member: exprMap:<dart.core::int, dart.core::String>{0: "foo", 1: "bar"}*/
exprMap() => {0: "foo", 1: "bar"};
/*member: exprAwait:await o*/
exprAwait(o) async => await o;
/*member: exprLoadLibrary:prefix.loadLibrary()*/
exprLoadLibrary() => prefix.loadLibrary();
/*normal|limited.member: exprCheckLibraryIsLoaded:let final dynamic #0 = prefix.checkLibraryIsLoaded() in max<int>(0, 1)*/
/*verbose.member: exprCheckLibraryIsLoaded:let final dynamic #0 = prefix.checkLibraryIsLoaded() in dart.math::max<dart.core::int>(0, 1)*/
exprCheckLibraryIsLoaded() => prefix.max(0, 1);
/*normal|limited.member: exprFunctionExpression:int (int i) => i*/
/*verbose.member: exprFunctionExpression:dart.core::int (dart.core::int i) => i*/
exprFunctionExpression() => (int i) => i;
/*normal.member: exprFunctionExpressionBlock:int (int i) {
return i;
}*/
/*verbose.member: exprFunctionExpressionBlock:dart.core::int (dart.core::int i) {
return i;
}*/
/*limited.member: exprFunctionExpressionBlock:int (int i) { return i; }*/
exprFunctionExpressionBlock() => (int i) {
return i;
};
/*normal|limited.member: exprGenericFunctionExpression:T% <T extends Object?>(T% t) => t*/
/*verbose.member: exprGenericFunctionExpression:T% <T extends dart.core::Object?>(T% t) => t*/
exprGenericFunctionExpression() => <T>(T t) => t;
/*normal.member: exprGenericFunctionExpressionBlock:T% <T extends Object?>(T% t) {
return t;
}*/
/*verbose.member: exprGenericFunctionExpressionBlock:T% <T extends dart.core::Object?>(T% t) {
return t;
}*/
/*limited.member: exprGenericFunctionExpressionBlock:T% <T extends Object?>(T% t) { return t; }*/
exprGenericFunctionExpressionBlock() => <T>(T t) {
return t;
};
/*normal|limited.member: exprNullAware:let final Class? #0 = variable in #0 == null ?{dynamic} null : #0{Class}.{Class.field}*/
/*verbose.member: exprNullAware:let final expressions::Class? #0 = variable in #0 == null ?{dynamic} null : #0{expressions::Class}.{expressions::Class.field}*/
exprNullAware(Class? variable) => variable?.field;
/*normal|limited.member: exprIfNull:let final int? #0 = i in #0 == null ?{int} 42 : #0{int}*/
/*verbose.member: exprIfNull:let final dart.core::int? #0 = i in #0 == null ?{dart.core::int} 42 : #0{dart.core::int}*/
exprIfNull(int? i) => i ?? 42;
/*normal|limited.member: exprNestedDeep:<Object>[1, <Object>[2, <Object>[3, <int>[4]]]]*/
/*verbose.member: exprNestedDeep:<dart.core::Object>[1, <dart.core::Object>[2, <dart.core::Object>[3, <dart.core::int>[4]]]]*/
exprNestedDeep() => [
1,
[
2,
[
3,
[4]
]
]
];
/*normal.member: exprNestedTooDeep:<Object>[1, <Object>[2, <Object>[3, <Object>[4, <int>[5]]]]]*/
/*verbose.member: exprNestedTooDeep:<dart.core::Object>[1, <dart.core::Object>[2, <dart.core::Object>[3, <dart.core::Object>[4, <dart.core::int>[5]]]]]*/
/*limited.member: exprNestedTooDeep:<Object>[1, <Object>[2, <Object>[3, <Object>[4, <int>[...]]]]]*/
exprNestedTooDeep() => [
1,
[
2,
[
3,
[
4,
[5]
]
]
]
];
/*normal|limited.member: exprManySiblings:<int>[1, 2, 3, 4]*/
/*verbose.member: exprManySiblings:<dart.core::int>[1, 2, 3, 4]*/
exprManySiblings() => [1, 2, 3, 4];
/*normal.member: exprTooManySiblings:<int>[1, 2, 3, 4, 5]*/
/*verbose.member: exprTooManySiblings:<dart.core::int>[1, 2, 3, 4, 5]*/
/*limited.member: exprTooManySiblings:<int>[...]*/
exprTooManySiblings() => [1, 2, 3, 4, 5];
/*normal|limited.member: exprPrecedence1:1.{int.unary-}().{num.*}(2).{num.+}(3.{num./}(4)).{double.-}(5)*/
/*verbose.member: exprPrecedence1:1.{dart.core::int.unary-}().{dart.core::num.*}(2).{dart.core::num.+}(3.{dart.core::num./}(4)).{dart.core::double.-}(5)*/
exprPrecedence1() => -1 * 2 + 3 / 4 - 5;
/*normal|limited.member: exprPrecedence2:1.{num.*}(2.{num.+}(3)).{num./}(4.{num.-}(5)).{double.unary-}()*/
/*verbose.member: exprPrecedence2:1.{dart.core::num.*}(2.{dart.core::num.+}(3)).{dart.core::num./}(4.{dart.core::num.-}(5)).{dart.core::double.unary-}()*/
exprPrecedence2() => -(1 * (2 + 3) / (4 - 5));
/*normal|limited.member: exprPrecedence3:b ?{int} 0 : 1.{num.+}(2)*/
/*verbose.member: exprPrecedence3:b ?{dart.core::int} 0 : 1.{dart.core::num.+}(2)*/
exprPrecedence3(bool b) => b ? 0 : 1 + 2;
/*normal|limited.member: exprPrecedence4:(b ?{int} 0 : 1).{num.+}(2)*/
/*verbose.member: exprPrecedence4:(b ?{dart.core::int} 0 : 1).{dart.core::num.+}(2)*/
exprPrecedence4(bool b) => (b ? 0 : 1) + 2;
/*member: exprAssignmentEqualsNull1:(a = b) == null*/
exprAssignmentEqualsNull1(String a, String b) => (a = b) == null;
/*member: exprAssignmentEqualsNull2:a = b == null*/
exprAssignmentEqualsNull2(bool a, String b) => a = b == null;
/*member: exprAssignmentEqualsNull3:a = b == null*/
exprAssignmentEqualsNull3(bool a, String b) => a = (b == null);
/*member: exprAssignmentEquals1:(a = b) == c*/
exprAssignmentEquals1(String a, String b, String c) => (a = b) == c;
/*member: exprAssignmentEquals2:a = b == c*/
exprAssignmentEquals2(bool a, String b, String c) => a = b == c;
/*member: exprAssignmentEquals3:a = b == c*/
exprAssignmentEquals3(bool a, String b, String c) => a = (b == c);