blob: e643a704642377aac1252e7e2023da694ba9749e [file] [log] [blame]
library;
import self as self;
import "dart:core" as core;
class Square extends core::Object /*hasConstConstructor*/ {
final field (core::String) →? void logFunction;
final field core::double length;
const constructor •(core::double length, [has-declared-initializer (core::String) →? void logFunction = #C1]) → self::Square
: self::Square::length = length, self::Square::logFunction = logFunction, super core::Object::•()
;
method _log(core::String toLog) void {
(core::String) →? void _l = this.{self::Square::logFunction}{(core::String) →? void};
if(!(_l == null)) {
_l{(core::String) void}(toLog){(core::String) void};
}
}
get area() core::double {
this.{self::Square::_log}("Square.area"){(core::String) void};
return this.{self::Square::length}{core::double}.{core::double::*}(this.{self::Square::length}{core::double}){(core::num) core::double};
}
}
static field core::String log = "";
static method logger(core::String s) void {
self::log = self::log.{core::String::+}(s){(core::String) core::String};
}
static method main() dynamic {
{
final synthesized self::Square #0#0 = new self::Square::•(2.0, #C2);
if(!(let final dynamic #t1 = #0#0.{self::Square::area}{core::double} in true))
throw{for-error-handling} new core::StateError::•("Pattern matching error");
}
self::expect("Square.area", self::log);
}
static method expect(dynamic expected, dynamic actual) dynamic {
if(!(expected =={core::Object::==}{(core::Object) core::bool} actual)) {
throw "Expected ${expected}, actual ${actual}";
}
}
constants {
#C1 = null
#C2 = static-tearoff self::logger
}