@@ -90,6 +90,40 @@ static method testOverriddenEq2([@vm.inferred-arg-type.metadata=#lib::Overridden
9090static get runtimeTrue() → core::bool
9191 return [@vm.direct-call.metadata=dart.core::_IntegerImplementation.==] [@vm.inferred-type.metadata=dart.core::bool (skip check)] [@vm.inferred-type.metadata=int] core::int::parse("1") =={core::num::==}{(core::Object) → core::bool} 1;
9292
93+ [@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
94+ static method testDoubleLiteral1() → void {
95+ core::print(#C7);
96+ }
97+
98+ [@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
99+ [@vm.unboxing-info.metadata=(d)->b]
100+ static method testDoubleLiteral2([@vm.inferred-arg-type.metadata=dart.core::_Double] core::double i) → void {
101+ core::print(i);
102+ }
103+
104+ [@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
105+ [@vm.unboxing-info.metadata=(d)->b]
106+ static method testDoubleLiteral3([@vm.inferred-arg-type.metadata=dart.core::_Double] core::double i) → void {
107+ core::print(i);
108+ }
109+
110+ [@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
111+ static method testDoubleConstant1() → void {
112+ core::print(#C8);
113+ }
114+
115+ [@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
116+ [@vm.unboxing-info.metadata=(d)->b]
117+ static method testDoubleConstant2([@vm.inferred-arg-type.metadata=dart.core::_Double] core::double i) → void {
118+ core::print(i);
119+ }
120+
121+ [@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
122+ [@vm.unboxing-info.metadata=(d)->b]
123+ static method testDoubleConstant3([@vm.inferred-arg-type.metadata=dart.core::_Double] core::double i) → void {
124+ core::print(i);
125+ }
126+
93127[@vm.inferred-return-type.metadata=dart.core::Null? (value: null)]
94128static method main() → void {
95129 final core::String s1 = [@vm.inferred-type.metadata=dart.core::bool] self::runtimeTrue ?{core::String} "foo" : "bar";
@@ -116,12 +150,33 @@ static method main() → void {
116150 self::testDefaultEq2();
117151 }
118152 final self::OverriddenEq c2 = [@vm.inferred-type.metadata=dart.core::bool] self::runtimeTrue ?{self::OverriddenEq} new self::OverriddenEq::•(1) : new self::OverriddenEq::•(2);
119- if([@vm.direct-call.metadata=#lib::OverriddenEq.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] c2 =={self::OverriddenEq::==}{(core::Object) → core::bool} #C7 ) {
153+ if([@vm.direct-call.metadata=#lib::OverriddenEq.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] c2 =={self::OverriddenEq::==}{(core::Object) → core::bool} #C9 ) {
120154 self::testOverriddenEq1(c2);
121155 }
122156 if([@vm.direct-call.metadata=#lib::OverriddenEq.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] c2 =={self::OverriddenEq::==}{(core::Object) → core::bool} #C2) {
123157 self::testOverriddenEq2(c2);
124158 }
159+ final core::double d1 = [@vm.inferred-type.metadata=dart.core::bool] self::runtimeTrue ?{core::double} 1.21 : 3.41;
160+ if([@vm.direct-call.metadata=dart.core::_Double.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] d1 =={core::num::==}{(core::Object) → core::bool} 1.2) {
161+ self::testDoubleLiteral1();
162+ }
163+ if([@vm.direct-call.metadata=dart.core::_Double.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] d1 =={core::num::==}{(core::Object) → core::bool} #C8) {
164+ self::testDoubleConstant1();
165+ }
166+ final core::double d2 = [@vm.inferred-type.metadata=dart.core::bool] self::runtimeTrue ?{core::double} 1.34 : 5.67;
167+ if([@vm.direct-call.metadata=dart.core::_Double.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] d2 =={core::num::==}{(core::Object) → core::bool} #C10) {
168+ self::testDoubleLiteral2(d2);
169+ }
170+ if([@vm.direct-call.metadata=dart.core::_Double.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] d2 =={core::num::==}{(core::Object) → core::bool} #C10) {
171+ self::testDoubleConstant2(d2);
172+ }
173+ final core::double d3 = [@vm.inferred-type.metadata=dart.core::bool] self::runtimeTrue ?{core::double} 8.7 : 9.6;
174+ if([@vm.direct-call.metadata=dart.core::_Double.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] d3 =={core::num::==}{(core::Object) → core::bool} [@vm.direct-call.metadata=dart.core::_Double.unary-] [@vm.inferred-type.metadata=dart.core::_Double (skip check)] 0.0.{core::double::unary-}(){() → core::double}) {
175+ self::testDoubleLiteral3(d3);
176+ }
177+ if([@vm.direct-call.metadata=dart.core::_Double.==] [@vm.inferred-type.metadata=dart.core::bool (skip check) (receiver not int)] d3 =={core::num::==}{(core::Object) → core::bool} #C11) {
178+ self::testDoubleConstant3(d3);
179+ }
125180}
126181constants {
127182 #C1 = "foo"
@@ -130,5 +185,9 @@ constants {
130185 #C4 = 456
131186 #C5 = 1
132187 #C6 = self::DefaultEq {i:#C5}
133- #C7 = self::OverriddenEq {i:#C5}
188+ #C7 = 1.2
189+ #C8 = 12.34
190+ #C9 = self::OverriddenEq {i:#C5}
191+ #C10 = NaN
192+ #C11 = -0.0
134193}
0 commit comments