// Copyright (c) 2018, 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.7 /*member: returnInt1:[exact=JSUInt31]*/ returnInt1() { var a = 42; // ignore: unused_local_variable var f = /*[exact=JSUInt31]*/ () { return a; }; return a; } /*member: returnDyn1:Union([exact=JSUInt31], [subclass=JsLinkedHashMap])*/ returnDyn1() { dynamic a = 42; // ignore: unused_local_variable var f = /*[null]*/ () { a = {}; }; return a; } /*member: returnInt2:[exact=JSUInt31]*/ returnInt2() { var a = 42; // ignore: unused_local_variable var f = /*[null]*/ () { a = 54; }; return a; } /*member: returnDyn2:Union([exact=JSUInt31], [subclass=JsLinkedHashMap])*/ returnDyn2() { dynamic a = 42; // ignore: unused_local_variable var f = /*[null]*/ () { a = 54; }; // ignore: unused_local_variable var g = /*[null]*/ () { a = {}; }; return a; } /*member: returnInt3:[exact=JSUInt31]*/ returnInt3() { var a = 42; if (a /*invoke: [exact=JSUInt31]*/ == 53) { // ignore: unused_local_variable var f = /*[exact=JSUInt31]*/ () { return a; }; } return a; } /*member: returnDyn3:Union([exact=JSUInt31], [subclass=JsLinkedHashMap])*/ returnDyn3() { dynamic a = 42; if (a /*invoke: Union([exact=JSUInt31], [subclass=JsLinkedHashMap])*/ == 53) { // ignore: unused_local_variable var f = /*[null]*/ () { a = {}; }; } return a; } /*member: returnInt4:[exact=JSUInt31]*/ returnInt4() { var a = 42; /*[exact=JSUInt31]*/ g() { return a; } return g(); } /*member: returnNum1:Union([exact=JSNumNotInt], [exact=JSUInt31])*/ returnNum1() { dynamic a = 42.5; try { /*[exact=JSUInt31]*/ g() { dynamic b = {}; b = 42; return b; } a = g(); } finally {} return a; } /*member: returnIntOrNull:[null|exact=JSUInt31]*/ returnIntOrNull() { /*iterator: Container([exact=JSExtendableArray], element: [exact=JSUInt31], length: 1)*/ /*current: [exact=ArrayIterator]*/ /*moveNext: [exact=ArrayIterator]*/ for ( // ignore: unused_local_variable var b in [42]) { var bar = 42; /*[null|exact=JSUInt31]*/ f() => bar; bar = null; return f(); } return 42; } /*member: A.:[exact=A]*/ class A { /*member: A.foo:[exact=A]*/ foo() { /*[exact=A]*/ f() => this; return f(); } } /*member: main:[null]*/ main() { returnInt1(); returnDyn1(); returnInt2(); returnDyn2(); returnInt3(); returnDyn3(); returnInt4(); returnNum1(); returnIntOrNull(); new A(). /*invoke: [exact=A]*/ foo(); }