|  | // Copyright (c) 2017, 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. | 
|  |  | 
|  | /*member: main:[null|powerset={null}]*/ | 
|  | main() { | 
|  | simpleStaticCall(); | 
|  | staticCallWithPositionalArguments1(); | 
|  | staticCallWithPositionalArguments2(); | 
|  | staticCallWithOptionalArguments1(); | 
|  | staticCallWithOptionalArguments2(); | 
|  | staticCallWithOptionalArguments3(); | 
|  | staticCallWithOptionalArguments4a(); | 
|  | staticCallWithOptionalArguments4b(); | 
|  | staticCallWithOptionalArguments5(); | 
|  | staticCallWithOptionalArguments6(); | 
|  | staticCallWithNamedArguments1(); | 
|  | staticCallWithNamedArguments2(); | 
|  | staticCallWithNamedArguments3a(); | 
|  | staticCallWithNamedArguments3b(); | 
|  |  | 
|  | invokeStaticFieldUninitialized(); | 
|  | invokeStaticFieldTearOff(); | 
|  | invokeStaticTypedFieldTearOff(); | 
|  | invokeStaticFieldTearOffParameters(); | 
|  |  | 
|  | invokeStaticGetterTearOff(); | 
|  | invokeStaticTypedGetterTearOff(); | 
|  |  | 
|  | invokeStaticGenericMethod1(); | 
|  | invokeStaticGenericMethod2(); | 
|  | invokeStaticGenericGetter1(); | 
|  | invokeStaticGenericGetter2(); | 
|  | invokeStaticGenericField1(); | 
|  | invokeStaticGenericField2(); | 
|  | } | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a static method that has a constant return value. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: simpleStaticCall:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | simpleStaticCall() => _returnInt(); | 
|  |  | 
|  | /*member: _returnInt:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _returnInt() => 0; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a static method that has two positional parameters, the first argument | 
|  | /// is returned. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithPositionalArguments1:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | staticCallWithPositionalArguments1() => _returnFirst(0, 0.5); | 
|  |  | 
|  | /*member: _returnFirst:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _returnFirst( | 
|  | /*[exact=JSUInt31|powerset={I}{O}{N}]*/ a, | 
|  | /*[exact=JSNumNotInt|powerset={I}{O}{N}]*/ b, | 
|  | ) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a static method that has two positional parameters, the second argument | 
|  | /// is returned. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithPositionalArguments2:[exact=JSNumNotInt|powerset={I}{O}{N}]*/ | 
|  | staticCallWithPositionalArguments2() => _returnSecond(0, 0.5); | 
|  |  | 
|  | /*member: _returnSecond:[exact=JSNumNotInt|powerset={I}{O}{N}]*/ | 
|  | _returnSecond( | 
|  | /*[exact=JSUInt31|powerset={I}{O}{N}]*/ a, | 
|  | /*[exact=JSNumNotInt|powerset={I}{O}{N}]*/ b, | 
|  | ) => b; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has an optional parameter with no explicit default | 
|  | /// value. Only one call site with no arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments1:[null|powerset={null}]*/ | 
|  | staticCallWithOptionalArguments1() => _returnDefaultNull(); | 
|  |  | 
|  | /*member: _returnDefaultNull:[null|powerset={null}]*/ | 
|  | _returnDefaultNull([/*[null|powerset={null}]*/ a]) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has an optional parameter with an explicit default | 
|  | /// value of `null`. Only one call site with no arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments2:[null|powerset={null}]*/ | 
|  | staticCallWithOptionalArguments2() => _returnDefaultNullExplicit(); | 
|  |  | 
|  | /*member: _returnDefaultNullExplicit:[null|powerset={null}]*/ | 
|  | _returnDefaultNullExplicit([/*[null|powerset={null}]*/ a = null]) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has an optional parameter. Only one call site with an | 
|  | /// explicit argument. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments3:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | staticCallWithOptionalArguments3() => _returnDefaultNullCalled(0); | 
|  |  | 
|  | /*member: _returnDefaultNullCalled:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _returnDefaultNullCalled([/*[exact=JSUInt31|powerset={I}{O}{N}]*/ a]) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has an optional parameter. Two call sites, one | 
|  | /// with an explicit argument and one with no arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments4a:[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ | 
|  | staticCallWithOptionalArguments4a() => _returnDefaultNullCalledTwice(); | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments4b:[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ | 
|  | staticCallWithOptionalArguments4b() => _returnDefaultNullCalledTwice(0); | 
|  |  | 
|  | /*member: _returnDefaultNullCalledTwice:[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ | 
|  | _returnDefaultNullCalledTwice([ | 
|  | /*[null|exact=JSUInt31|powerset={null}{I}{O}{N}]*/ a, | 
|  | ]) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has an optional parameter with a default value of `0`. | 
|  | /// Only one call site with no arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments5:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | staticCallWithOptionalArguments5() => _returnDefaultZero(); | 
|  |  | 
|  | /*member: _returnDefaultZero:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _returnDefaultZero([/*[exact=JSUInt31|powerset={I}{O}{N}]*/ a = 0]) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has an optional parameter with a default value of `0`. | 
|  | /// Only one call site with an argument of a different type. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithOptionalArguments6:[exact=JSNumNotInt|powerset={I}{O}{N}]*/ | 
|  | staticCallWithOptionalArguments6() => _returnDefaultZeroCalled(0.5); | 
|  |  | 
|  | /*member: _returnDefaultZeroCalled:[exact=JSNumNotInt|powerset={I}{O}{N}]*/ | 
|  | _returnDefaultZeroCalled([/*[exact=JSNumNotInt|powerset={I}{O}{N}]*/ a = 0]) => | 
|  | a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has a named parameter with a default value of `0`. | 
|  | /// Only one call site with no arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithNamedArguments1:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | staticCallWithNamedArguments1() => _returnNamedDefaultZero(); | 
|  |  | 
|  | /*member: _returnNamedDefaultZero:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _returnNamedDefaultZero({/*[exact=JSUInt31|powerset={I}{O}{N}]*/ a = 0}) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has a named parameter with a default value of `0`. | 
|  | /// Only one call site with an argument of a different type. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithNamedArguments2:[exact=JSNumNotInt|powerset={I}{O}{N}]*/ | 
|  | staticCallWithNamedArguments2() => _returnNamedDefaultZeroCalled(a: 0.5); | 
|  |  | 
|  | /*member: _returnNamedDefaultZeroCalled:[exact=JSNumNotInt|powerset={I}{O}{N}]*/ | 
|  | _returnNamedDefaultZeroCalled({ | 
|  | /*[exact=JSNumNotInt|powerset={I}{O}{N}]*/ a = 0, | 
|  | }) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// A static method that has a named parameter. Two call sites, one with an | 
|  | /// explicit argument and one with no arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: staticCallWithNamedArguments3a:[null|exact=JSNumNotInt|powerset={null}{I}{O}{N}]*/ | 
|  | staticCallWithNamedArguments3a() => _returnNamedNullCalledTwice(); | 
|  |  | 
|  | /*member: staticCallWithNamedArguments3b:[null|exact=JSNumNotInt|powerset={null}{I}{O}{N}]*/ | 
|  | staticCallWithNamedArguments3b() => _returnNamedNullCalledTwice(a: 0.5); | 
|  |  | 
|  | /*member: _returnNamedNullCalledTwice:[null|exact=JSNumNotInt|powerset={null}{I}{O}{N}]*/ | 
|  | _returnNamedNullCalledTwice({ | 
|  | /*[null|exact=JSNumNotInt|powerset={null}{I}{O}{N}]*/ a, | 
|  | }) => a; | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call an uninitialized top level field. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _field1:[null|powerset={null}]*/ | 
|  | dynamic _field1; | 
|  |  | 
|  | /*member: invokeStaticFieldUninitialized:[empty|powerset=empty]*/ | 
|  | invokeStaticFieldUninitialized() => _field1(); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a top level field initialized to a tear-off of a top level method. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _method1:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _method1() => 42; | 
|  |  | 
|  | /*member: _field2:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | dynamic _field2 = _method1; | 
|  |  | 
|  | /*member: invokeStaticFieldTearOff:[null|subclass=Object|powerset={null}{IN}{GFUO}{IMN}]*/ | 
|  | invokeStaticFieldTearOff() => _field2(); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a top level field initialized to a tear-off of a top level method. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _method5:Value([exact=JSString|powerset={I}{O}{I}], value: "", powerset: {I}{O}{I})*/ | 
|  | String _method5() => ''; | 
|  |  | 
|  | /*member: _field5:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | String Function() _field5 = _method5; | 
|  |  | 
|  | /*member: invokeStaticTypedFieldTearOff:[exact=JSString|powerset={I}{O}{I}]*/ | 
|  | invokeStaticTypedFieldTearOff() => _field5(); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a top level field initialized to a tear-off of a top level method | 
|  | /// taking one argument. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _method2:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _method2(/*[exact=JSUInt31|powerset={I}{O}{N}]*/ o) => 42; | 
|  |  | 
|  | /*member: _field3:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | dynamic _field3 = _method2; | 
|  |  | 
|  | /*member: invokeStaticFieldTearOffParameters:[null|subclass=Object|powerset={null}{IN}{GFUO}{IMN}]*/ | 
|  | invokeStaticFieldTearOffParameters() => _field3(42); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a top level getter returning a tear-off of a top level method. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _method3:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | _method3() => 42; | 
|  |  | 
|  | /*member: _getter1:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | get _getter1 => _method3; | 
|  |  | 
|  | /*member: invokeStaticGetterTearOff:[null|subclass=Object|powerset={null}{IN}{GFUO}{IMN}]*/ | 
|  | invokeStaticGetterTearOff() => _getter1(); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Call a typed top level getter returning a tear-off of a top level method. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _method6:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | int _method6() => 0; | 
|  |  | 
|  | /*member: _field7:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | int Function() _field7 = _method6; | 
|  |  | 
|  | /*member: _getter3:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | int Function() get _getter3 => _field7; | 
|  |  | 
|  | /*member: invokeStaticTypedGetterTearOff:[subclass=JSInt|powerset={I}{O}{N}]*/ | 
|  | invokeStaticTypedGetterTearOff() => _getter3(); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Calls to a generic static method whose return type depend upon the type | 
|  | /// arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _method4:Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | T _method4<T>( | 
|  | T /*Union([exact=JSString|powerset={I}{O}{I}], [exact=JSUInt31|powerset={I}{O}{N}], powerset: {I}{O}{IN})*/ | 
|  | t, | 
|  | ) => t; | 
|  |  | 
|  | /*member: invokeStaticGenericMethod1:[exact=JSUInt31|powerset={I}{O}{N}]*/ | 
|  | invokeStaticGenericMethod1() => _method4(0); | 
|  |  | 
|  | /*member: invokeStaticGenericMethod2:[exact=JSString|powerset={I}{O}{I}]*/ | 
|  | invokeStaticGenericMethod2() => _method4(''); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Calls to a generic static method whose return type depend upon the type | 
|  | /// arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _getter2:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | T Function<T>(T) get _getter2 => _method4; | 
|  |  | 
|  | /*member: invokeStaticGenericGetter1:[subclass=JSInt|powerset={I}{O}{N}]*/ | 
|  | invokeStaticGenericGetter1() => _getter2(0); | 
|  |  | 
|  | /*member: invokeStaticGenericGetter2:[exact=JSString|powerset={I}{O}{I}]*/ | 
|  | invokeStaticGenericGetter2() => _getter2(''); | 
|  |  | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  | /// Calls to a generic static method whose return type depend upon the type | 
|  | /// arguments. | 
|  | //////////////////////////////////////////////////////////////////////////////// | 
|  |  | 
|  | /*member: _field4:[subclass=Closure|powerset={N}{O}{N}]*/ | 
|  | T Function<T>(T) _field4 = _method4; | 
|  |  | 
|  | /*member: invokeStaticGenericField1:[subclass=JSInt|powerset={I}{O}{N}]*/ | 
|  | invokeStaticGenericField1() => _field4(0); | 
|  |  | 
|  | /*member: invokeStaticGenericField2:[exact=JSString|powerset={I}{O}{I}]*/ | 
|  | invokeStaticGenericField2() => _field4(''); |