blob: 6a29a218e7229544c2d0306b007d0ffc48a7baf6 [file]
library;
import self as self;
import "dart:core" as core;
[217]import "dart:math" show pi;
[261]abstract class Shape extends core::Object {
[261] synthetic constructor [-1] [-1] •() 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 [334] [347] •([340, -1] initializing-formal core::double length) self::Square
: [340] self::Square::length = [340] [340] length, [328] super core::Object::• [328]()
[-1] ;
}
[358]class Circle extends core::Object implements self::Shape {
[399] final field core::double radius;
[409] constructor [415] [428] •([421, -1] initializing-formal core::double radius) self::Circle
: [421] self::Circle::radius = [421] [421] radius, [409] super core::Object::• [409]()
[-1] ;
}
[440]static method [453] [685] calculateArea([460, -1] self::Shape shape) core::double
[470] return [470] [470] block {
[-1] [-1, -1] core::double #t1;
[478] [478, -1] final synthesized self::Shape #0#0 = [478] [478] shape;
[-1] [-1, -1] synthesized core::double #0#2;
[-1] [-1, -1] synthesized core::bool #0#2#isSet = [502] [502] false;
[-1] [-1, -1] synthesized core::double #0#4;
[-1] [-1, -1] synthesized core::bool #0#4#isSet = [548] [548] false;
[470] #L1:
[470] {
[523] {
[508] [508, -1] hoisted core::double l;
[523] if([-1] [-1] [489] [489] [489] [489] [-1] [-1] #0#0 is self::Square && [508]([508] let [508, -1] final dynamic #t2 = [508] [508] l = [502] [502] [-1] [-1] #0#2#isSet ?{core::double} [502] [502] #0#2 : [502] [502] let [502, -1] final dynamic #t3 = [502] [502] #0#2#isSet = [502] [502] true in [502] [502] #0#2 = [502] [502] [-1] [-1] #0#0{self::Square}.{self::Square::length}{core::double} in [-1] [-1] true) && [518] [518] [516] [516] l.{core::num::>=}[518]([521] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [528] [528] [526] [526] l.{core::double::*}[528]([530] l){(core::num) → core::double};
[523] break #L1;
}
}
[569] {
[554] [554, -1] hoisted core::double r;
[569] if([-1] [-1] [535] [535] [535] [535] [-1] [-1] #0#0 is self::Circle && [554]([554] let [554, -1] final dynamic #t4 = [554] [554] r = [548] [548] [-1] [-1] #0#4#isSet ?{core::double} [548] [548] #0#4 : [548] [548] let [548, -1] final dynamic #t5 = [548] [548] #0#4#isSet = [548] [548] true in [548] [548] #0#4 = [548] [548] [-1] [-1] #0#0{self::Circle}.{self::Circle::radius}{core::double} in [-1] [-1] true) && [564] [564] [562] [562] r.{core::num::>=}[564]([567] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [579] [579] [575] [575] [572] [572] #C1.{core::double::*}[575]([577] r){(core::num) → core::double}.{core::double::*}[579]([581] r){(core::num) → core::double};
[569] break #L1;
}
}
[619] {
[605] [605, -1] hoisted core::double l;
[619] if([-1] [-1] [586] [586] [586] [586] [-1] [-1] #0#0 is self::Square && [605]([605] let [605, -1] final dynamic #t6 = [605] [605] l = [502] [502] [-1] [-1] #0#2#isSet ?{core::double} [502] [502] #0#2 : [502] [502] let [502, -1] final dynamic #t7 = [502] [502] #0#2#isSet = [502] [502] true in [502] [502] #0#2 = [502] [502] [-1] [-1] #0#0{self::Square}.{self::Square::length}{core::double} in [-1] [-1] true) && [615] [615] [613] [613] l.{core::num::<}[615]([617] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [622] [622] -1.0;
[619] break #L1;
}
}
[661] {
[647] [647, -1] hoisted core::double r;
[661] if([-1] [-1] [628] [628] [628] [628] [-1] [-1] #0#0 is self::Circle && [647]([647] let [647, -1] final dynamic #t8 = [647] [647] r = [548] [548] [-1] [-1] #0#4#isSet ?{core::double} [548] [548] #0#4 : [548] [548] let [548, -1] final dynamic #t9 = [548] [548] #0#4#isSet = [548] [548] true in [548] [548] #0#4 = [548] [548] [-1] [-1] #0#0{self::Circle}.{self::Circle::radius}{core::double} in [-1] [-1] true) && [657] [657] [655] [655] r.{core::num::<}[657]([659] 0){(core::num) → core::bool}) {
[-1] [-1] [-1] #t1 = [664] [664] -1.0;
[661] break #L1;
}
}
[678] {
[678] if([670] [670] true) {
[-1] [-1] [-1] #t1 = [681] [681] 0.0;
[678] break #L1;
}
}
}
} =>[-1] [-1] #t1;
[688]static method [696] [732] testMain() dynamic {
[703] [703] [703] self::calculateArea [716]([717] new self::Circle::• [723]([724] -123.0));
}
constants {
#C1 = 3.141592653589793
}