library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;

import "package:expect/expect.dart";

static const field core::int b = #C1;
static method fn(core::int a) → core::int {
  if(a =={core::num::==}{(core::Object) → core::bool} 1)
    return 1;
  return a.{core::num::*}(self::fn(a.{core::num::-}(1){(core::num) → core::int})){(core::num) → core::int};
}
static method localTest() → core::int {
  function fnLocal(core::int a) → core::int {
    if(a =={core::num::==}{(core::Object) → core::bool} 1)
      return 1;
    return a.{core::num::*}(fnLocal(a.{core::num::-}(1){(core::num) → core::int}){(core::int) → core::int}){(core::num) → core::int};
  }
  return #C1;
}
static method main() → void {
  exp::Expect::equals(#C1, 24);
  exp::Expect::equals(self::localTest(), 24);
}

constants  {
  #C1 = 24
}
