aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge/sbt-test/source-dependencies/added
diff options
context:
space:
mode:
Diffstat (limited to 'sbt-bridge/sbt-test/source-dependencies/added')
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/changes/A1.scala6
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/changes/A2.scala6
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/changes/A3.scala6
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/changes/B1.scala6
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/changes/B2.scala6
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala17
-rw-r--r--sbt-bridge/sbt-test/source-dependencies/added/test28
7 files changed, 75 insertions, 0 deletions
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/changes/A1.scala b/sbt-bridge/sbt-test/source-dependencies/added/changes/A1.scala
new file mode 100644
index 000000000..a58c253c0
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/changes/A1.scala
@@ -0,0 +1,6 @@
+package example
+
+object A
+{
+ val x: Int = 3
+} \ No newline at end of file
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/changes/A2.scala b/sbt-bridge/sbt-test/source-dependencies/added/changes/A2.scala
new file mode 100644
index 000000000..48ac8e5b6
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/changes/A2.scala
@@ -0,0 +1,6 @@
+package example
+
+object A
+{
+ val x: Int = B.y
+} \ No newline at end of file
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/changes/A3.scala b/sbt-bridge/sbt-test/source-dependencies/added/changes/A3.scala
new file mode 100644
index 000000000..ec450b67e
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/changes/A3.scala
@@ -0,0 +1,6 @@
+package example
+
+object A
+{
+ val x: String = B.y
+} \ No newline at end of file
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/changes/B1.scala b/sbt-bridge/sbt-test/source-dependencies/added/changes/B1.scala
new file mode 100644
index 000000000..9b5cc4ee9
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/changes/B1.scala
@@ -0,0 +1,6 @@
+package example
+
+object B
+{
+ val y: String = "4"
+} \ No newline at end of file
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/changes/B2.scala b/sbt-bridge/sbt-test/source-dependencies/added/changes/B2.scala
new file mode 100644
index 000000000..fc8c53c9c
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/changes/B2.scala
@@ -0,0 +1,6 @@
+package example
+
+object B
+{
+ val y: Int = 5
+} \ No newline at end of file
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala b/sbt-bridge/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala
new file mode 100644
index 000000000..3433779b6
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/project/DottyInjectedPlugin.scala
@@ -0,0 +1,17 @@
+import sbt._
+import Keys._
+
+object DottyInjectedPlugin extends AutoPlugin {
+ override def requires = plugins.JvmPlugin
+ override def trigger = allRequirements
+
+ override val projectSettings = Seq(
+ scalaVersion := "0.1-SNAPSHOT",
+ scalaOrganization := "ch.epfl.lamp",
+ scalacOptions += "-language:Scala2",
+ scalaBinaryVersion := "2.11",
+ autoScalaLibrary := false,
+ libraryDependencies ++= Seq("org.scala-lang" % "scala-library" % "2.11.5"),
+ scalaCompilerBridgeSource := ("ch.epfl.lamp" % "dotty-bridge" % "0.1.1-SNAPSHOT" % "component").sources()
+ )
+}
diff --git a/sbt-bridge/sbt-test/source-dependencies/added/test b/sbt-bridge/sbt-test/source-dependencies/added/test
new file mode 100644
index 000000000..a1ab31849
--- /dev/null
+++ b/sbt-bridge/sbt-test/source-dependencies/added/test
@@ -0,0 +1,28 @@
+# This test checks that when a source file included in a partial recompilation adds a dependency on
+# a file not included in the partial recompilation, the dependency is properly recorded.
+
+# B and A are independent, so both should compile successfully
+$ copy-file changes/A1.scala src/main/scala/A.scala
+$ copy-file changes/B1.scala src/main/scala/B.scala
+> compile
+
+
+# A now depends on B and to check that it was recompiled, we mismatch the types, which should fail
+$ copy-file changes/A2.scala src/main/scala/A.scala
+-> compile
+
+
+# We now correct the type so that it compiles successfully and this should introduce a dependency from A to B
+$ copy-file changes/A3.scala src/main/scala/A.scala
+> compile
+
+
+# If the dependency from A to B was properly introduced, changing the type of B.y to Int should make
+# the following statement in A a compiler error:
+# val x: String = B.y
+$ copy-file changes/B2.scala src/main/scala/B.scala
+-> compile
+
+# verify this was the correct result by doing a clean+compile
+> clean
+-> compile