class Bar {
  const Bar.withMessage(this.x) : assert(x < 0, "x is not negative");
  const Bar.withoutMessage(this.x) : assert(x < 0);
  final int x;
}

class Foo {
  const Foo(this.x)
      : assert(x > 0, "x is not positive"),
        assert(x > 0),
        assert(const bool.fromEnvironment("foo") == false,
            "foo was ${const bool.fromEnvironment("foo")}"),
        assert(const bool.fromEnvironment("foo") == false);
  const Foo.withInvalidCondition(this.x) : assert(x);
  const Foo.withInvalidMessage(this.x) : assert(x < 0, x);
  const Foo.withMessage(this.x)
      : assert(x < 0, "btw foo was ${const bool.fromEnvironment("foo")}");
  final int x;
}

const Bar bar1 = const Bar.withMessage(1);
const Bar bar2 = const Bar.withMessage(0);
const Bar bar3 = const Bar.withoutMessage(1);
const Bar bar4 = const Bar.withoutMessage(0);
const Foo foo1 = const Foo(1);
const Foo foo2 = const Foo(0);
const Foo foo3 = const Foo.withMessage(42);
const Foo foo4 = const Foo.withInvalidMessage(42);
const Foo foo5 = const Foo.withInvalidCondition(42);
main() {}
