blob: 911f64ed465088439b7dead407cd4125033a2531 [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;
[217]import "dart:math" show pi;
[261]abstract class Shape extends core::Object {
[261] synthetic constructor •() self::Shape
: [-1] super core::Object::• [-1]()
[-1] ;
}
[277]class Square extends core::Object implements self::Shape {
[318] final field core::double length;
[328] constructor •([340] core::double length) self::Square
: [340] self::Square::length = [-1] [-1] length, [328] super core::Object::• [-1]()
[-1] ;
}
[358]class Circle extends core::Object implements self::Shape {
[399] final field core::double radius;
[409] constructor •([421] core::double radius) self::Circle
: [421] self::Circle::radius = [-1] [-1] radius, [409] super core::Object::• [-1]()
[-1] ;
}
[440]static method calculateArea([460] self::Shape shape) core::double
[470] return [470] [470] block {
[-1] [-1] core::double #t1;
[478] [478] final synthesized self::Shape #0#0 = [478] [478] shape;
[-1] [-1] late final synthesized core::double #0#2 = [506] [506] [478]([478] [478] [478] #0#0 as{Unchecked} self::Square).{self::Square::length}{core::double};
[-1] [-1] late final synthesized core::double #0#4 = [556] [556] [478]([478] [478] [478] #0#0 as{Unchecked} self::Circle).{self::Circle::radius}{core::double};
[470] #L1:
[470] {
[527] {
[512] [512] hoisted core::double l;
[527] if([522] [522] [493] [493] [493] [493] [478] [478] #0#0 is self::Square && [512]([512] let [512] final dynamic #t2 = [512] [512] l = [-1] [-1] #0#2 in [512] [512] true) && [522] [522] [520] [520] l.{core::num::>=}[522]([525] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [532] [532] [530] [530] l.{core::double::*}[532]([534] l){(core::num) → core::double};
[527] break #L1;
}
}
[577] {
[562] [562] hoisted core::double r;
[577] if([572] [572] [543] [543] [543] [543] [478] [478] #0#0 is self::Circle && [562]([562] let [562] final dynamic #t3 = [562] [562] r = [-1] [-1] #0#4 in [562] [562] true) && [572] [572] [570] [570] r.{core::num::>=}[572]([575] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [587] [587] [583] [583] [580] [580] #C1.{core::double::*}[583]([585] r){(core::num) → core::double}.{core::double::*}[587]([589] r){(core::num) → core::double};
[577] break #L1;
}
}
[631] {
[617] [617] hoisted core::double l;
[631] if([627] [627] [598] [598] [598] [598] [478] [478] #0#0 is self::Square && [617]([617] let [617] final dynamic #t4 = [617] [617] l = [-1] [-1] #0#2 in [617] [617] true) && [627] [627] [625] [625] l.{core::num::<}[627]([629] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [634] [634] -1.0;
[631] break #L1;
}
}
[677] {
[663] [663] hoisted core::double r;
[677] if([673] [673] [644] [644] [644] [644] [478] [478] #0#0 is self::Circle && [663]([663] let [663] final dynamic #t5 = [663] [663] r = [-1] [-1] #0#4 in [663] [663] true) && [673] [673] [671] [671] r.{core::num::<}[673]([675] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [680] [680] -1.0;
[677] break #L1;
}
}
[698] {
[698] if([690] [690] true) {
[-1] [-1] [-1] #t1 = [701] [701] 0.0;
[698] break #L1;
}
}
[470] [470] [470] throw [470] [470] new _in::ReachabilityError::• [470]([470] "`null` encountered as case in a switch expression with a non-nullable type.");
}
} =>[-1] [-1] #t1;
[711]static method testMain() dynamic {
[726] [726] [726] self::calculateArea [739]([740] new self::Circle::• [746]([747] -123.0));
}
constants {
#C1 = 3.141592653589793
}