library;
import self as self;
import "dart:core" as core;
import "dart:_internal" as _in;

static method main() → dynamic {
  lowered final core::int? #i;
  function #i#get() → core::int
    return let final core::int? #t1 = #i in #t1 == null ?{core::int} throw{for-error-handling} new _in::LateError::localNI("i") : #t1{core::int};
  function #i#set(core::int i#param) → dynamic
    if(#i == null)
      return #i = i#param;
    else
      throw{for-error-handling} new _in::LateError::localAI("i");
  #i#set(1){(core::int) → dynamic};
  core::print(#i#get(){() → core::int});
  lowered final core::int? #j;
  function #j#get() → core::int
    return let final core::int? #t2 = #j in #t2 == null ?{core::int} throw{for-error-handling} new _in::LateError::localNI("j") : #t2{core::int};
  function #j#set(core::int j#param) → dynamic
    if(#j == null)
      return #j = j#param;
    else
      throw{for-error-handling} new _in::LateError::localAI("j");
  {
    final synthesized(core::int, core::String) #0#0 = (2, "Hello");
    #j#set(#0#0.$1{core::int}){(core::int) → dynamic};
  }
  core::print(#j#get(){() → core::int});
}
