34f9734b41
This reverts commit 14032a6209.
Reason for revert : Several customer flutter tests are failing because
of the change in behavior.
TEST=revert of previous CL.
Change-Id: Ia235aa93b9c81fbab066803dc0625856f93acceb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/181860
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
504 lines
21 KiB
Dart
504 lines
21 KiB
Dart
// 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);
|