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::String str = #C1;
static const field core::String var1 = #C2;
static const field dynamic var2 = #C3;
static const field core::String var3 = #C3;
static const field dynamic var4 = #C4;
static method fn() → dynamic {
  core::String local = "str";
  return local.{core::String::[]}(0){(core::int) → core::String};
}
static method fn2() → dynamic {
  try {
    core::String x = #C1.{core::String::[]}(1.{core::int::unary-}(){() → core::int}){(core::int) → core::String};
  }
  on core::RangeError catch(no-exception-var) {
    return 2;
  }
}
static method main() → void {
  exp::Expect::equals(#C2, "r");
  exp::Expect::equals(#C3, "s");
  exp::Expect::equals(#C3, "s");
  exp::Expect::equals(#C4, 2);
}

constants  {
  #C1 = "str"
  #C2 = "r"
  #C3 = "s"
  #C4 = 2
}

Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-testcase:///const_functions_string.dart:23:17 -> IntConstant(-1)
Extra constant evaluation: evaluated: 8, effectively constant: 1
