aboutsummaryrefslogtreecommitdiff
path: root/bridge
diff options
context:
space:
mode:
authorGuillaume Martres <smarter@ubuntu.com>2016-09-30 18:42:34 +0200
committerMartin Odersky <odersky@gmail.com>2016-10-02 16:12:28 +0200
commit6821bac06b34c416ca94216025b864e73592cbe7 (patch)
treee4ce0e9cd5c13b137fa969f046446b310cb36716 /bridge
parentd4f00691c4a26f716cbf29878022309a741de070 (diff)
downloaddotty-6821bac06b34c416ca94216025b864e73592cbe7.tar.gz
dotty-6821bac06b34c416ca94216025b864e73592cbe7.tar.bz2
dotty-6821bac06b34c416ca94216025b864e73592cbe7.zip
Fix incremental compilation when inline method body changes
Since we have no nice way of hashing a typed tree we use the pretty-printed tree of the method (as it would be printed by -Xprint:posttyper -Xprint-types) as a hacky substitute for now.
Diffstat (limited to 'bridge')
-rw-r--r--bridge/src/sbt-test/source-dependencies/inline/C.scala2
-rw-r--r--bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala4
-rw-r--r--bridge/src/sbt-test/source-dependencies/inline/test8
3 files changed, 13 insertions, 1 deletions
diff --git a/bridge/src/sbt-test/source-dependencies/inline/C.scala b/bridge/src/sbt-test/source-dependencies/inline/C.scala
index 0370943e1..caeb61535 100644
--- a/bridge/src/sbt-test/source-dependencies/inline/C.scala
+++ b/bridge/src/sbt-test/source-dependencies/inline/C.scala
@@ -1,5 +1,5 @@
object C {
- def test: Unit = {
+ def main(args: Array[String]): Unit = {
val i: Int = B.getInline
}
}
diff --git a/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala b/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala
new file mode 100644
index 000000000..991bd17b8
--- /dev/null
+++ b/bridge/src/sbt-test/source-dependencies/inline/changes/B3.scala
@@ -0,0 +1,4 @@
+object B {
+ @inline def getInline: Int =
+ sys.error("This is an expected failure when running C")
+}
diff --git a/bridge/src/sbt-test/source-dependencies/inline/test b/bridge/src/sbt-test/source-dependencies/inline/test
index ba891710f..56fdb0486 100644
--- a/bridge/src/sbt-test/source-dependencies/inline/test
+++ b/bridge/src/sbt-test/source-dependencies/inline/test
@@ -4,3 +4,11 @@ $ copy-file changes/B1.scala B.scala
$ copy-file changes/B2.scala B.scala
# Compilation of C.scala should fail because B.getInline now has type Double instead of Int
-> compile
+
+$ copy-file changes/B1.scala B.scala
+> run
+
+$ copy-file changes/B3.scala B.scala
+# The body of B.getInline was changed so C.scala should be recompiled
+# If it was recompiled, run should fail since B.getInline now throws an exception
+-> run