/* TEST_OUTPUT: --- fail_compilation/powinline.d(25): Error: cannot implicitly convert expression `(a + 5.0) ^^ 2L` of type `double` to `int` fail_compilation/powinline.d(26): Error: cannot implicitly convert expression `(1.0 / foo()) ^^ 2L` of type `double` to `int` fail_compilation/powinline.d(31): Error: void has no value fail_compilation/powinline.d(31): Error: incompatible types for `(5.0) * (bar())`: `double` and `void` fail_compilation/powinline.d(37): Error: cannot modify `immutable` expression `a` --- */ double foo() { return 5.0; } void bar() { return; } void test1() { double a = 2.0; int b = (a + 5.0) ^^ 2.0; b = (1 / foo()) ^^ 2.0; } void test2() { double a = (5.0 * bar()) ^^ 2.0; } void test3() { immutable double a = 3.0; (a ^^= 2.0) = 6; }