library test;
import self as self;
import "dart:core" as core;

static field core::bool* a_not = !true;
static field core::int* a_complement = 1.{core::int::~}(){() →* core::int*};
static field core::int* a_negate = 1.{core::int::unary-}(){() →* core::int*};
static method main() → dynamic {
  self::a_not;
  self::a_complement;
  self::a_negate;
}


Extra constant evaluation status:
Evaluated: Not @ org-dartlang-testcase:///infer_prefix_expression.dart:8:13 -> BoolConstant(false)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///infer_prefix_expression.dart:9:38 -> IntConstant(-2)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///infer_prefix_expression.dart:10:39 -> IntConstant(-1)
Extra constant evaluation: evaluated: 6, effectively constant: 3
