From 2324be56376aed8cd168e712001485f2202cdda6 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Sun, 16 Apr 2017 18:48:53 +0200 Subject: Fix constant type val value inline in constructors. --- tests/run/inline-constant-in-constructor-1.check | 3 +++ tests/run/inline-constant-in-constructor-1.scala | 15 +++++++++++++++ tests/run/inline-constant-in-constructor-2.check | 3 +++ tests/run/inline-constant-in-constructor-2.scala | 14 ++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 tests/run/inline-constant-in-constructor-1.check create mode 100644 tests/run/inline-constant-in-constructor-1.scala create mode 100644 tests/run/inline-constant-in-constructor-2.check create mode 100644 tests/run/inline-constant-in-constructor-2.scala (limited to 'tests') diff --git a/tests/run/inline-constant-in-constructor-1.check b/tests/run/inline-constant-in-constructor-1.check new file mode 100644 index 000000000..05035c26d --- /dev/null +++ b/tests/run/inline-constant-in-constructor-1.check @@ -0,0 +1,3 @@ +assert +s +r init diff --git a/tests/run/inline-constant-in-constructor-1.scala b/tests/run/inline-constant-in-constructor-1.scala new file mode 100644 index 000000000..11a727fd6 --- /dev/null +++ b/tests/run/inline-constant-in-constructor-1.scala @@ -0,0 +1,15 @@ + + +abstract class A { + def s: Boolean = { println("s"); r } + def r: Boolean +} + +object Test extends A { + assert({ println("assert"); r == s }) // r constant type not replaced by true, r not initialized yet + override val r: true = { + println("r init") + true + } + def main(args: Array[String]): Unit = {} +} diff --git a/tests/run/inline-constant-in-constructor-2.check b/tests/run/inline-constant-in-constructor-2.check new file mode 100644 index 000000000..05035c26d --- /dev/null +++ b/tests/run/inline-constant-in-constructor-2.check @@ -0,0 +1,3 @@ +assert +s +r init diff --git a/tests/run/inline-constant-in-constructor-2.scala b/tests/run/inline-constant-in-constructor-2.scala new file mode 100644 index 000000000..a8d351ab6 --- /dev/null +++ b/tests/run/inline-constant-in-constructor-2.scala @@ -0,0 +1,14 @@ + +abstract class A { + def s: Boolean = { println("s"); r } + def r: Boolean +} + +object Test extends A { + assert({ println("assert"); r == s }) // r constant type replaced by false + override val r: false = { + println("r init") + false + } + def main(args: Array[String]): Unit = {} +} -- cgit v1.2.3