aboutsummaryrefslogtreecommitdiff
path: root/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java
diff options
context:
space:
mode:
Diffstat (limited to 'sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java')
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java1
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java11
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java1
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java1
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java1
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java3
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java3
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java1
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt30
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala17
-rw-r--r--sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test1
11 files changed, 70 insertions, 0 deletions
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java
new file mode 100644
index 000000000..894125a7e
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/A.java
@@ -0,0 +1 @@
+class A implements B.T<Integer>, E {}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java
new file mode 100644
index 000000000..6b54edc7d
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/B.java
@@ -0,0 +1,11 @@
+public class B {
+ static interface T<X> extends C {}
+
+ // not public, so this shouldn't be tracked as an inherited dependency
+ private class Q implements E<Integer> {}
+
+ public void x(int i) {
+ // not public, not an inherited dependency
+ D j = new D() {};
+ }
+}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java
new file mode 100644
index 000000000..6c06f4033
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/C.java
@@ -0,0 +1 @@
+interface C extends D {}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java
new file mode 100644
index 000000000..9455ef5b0
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/D.java
@@ -0,0 +1 @@
+interface D extends G.P {}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java
new file mode 100644
index 000000000..d5e4d6517
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/E.java
@@ -0,0 +1 @@
+public interface E<T> {}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java
new file mode 100644
index 000000000..e205778d5
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/F.java
@@ -0,0 +1,3 @@
+public class F {
+ public C q() { return null; }
+}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java
new file mode 100644
index 000000000..ed3429f8c
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/G.java
@@ -0,0 +1,3 @@
+public class G {
+ static interface P extends J {}
+}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java
new file mode 100644
index 000000000..8aeeb05b6
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/J.java
@@ -0,0 +1 @@
+public interface J {}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt
new file mode 100644
index 000000000..c25b54921
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/build.sbt
@@ -0,0 +1,30 @@
+// this test is specific to the old incremental compilation algorithm
+incOptions := incOptions.value.withNameHashing(false)
+
+lazy val verifyDeps = taskKey[Unit]("verify inherited dependencies are properly extracted")
+
+verifyDeps := {
+ val a = compile.in(Compile).value
+ same(a.relations.publicInherited.internal.forwardMap, expectedDeps.forwardMap)
+}
+
+lazy val expected = Seq(
+ "A" -> Seq("C", "D", "E", "G", "J"),
+ "B" -> Seq("C", "D", "G", "J"),
+ "C" -> Seq("D", "G", "J"),
+ "D" -> Seq("G", "J"),
+ "E" -> Seq(),
+ "F" -> Seq(),
+ "G" -> Seq("J"),
+ "J" -> Seq()
+)
+lazy val pairs =
+ expected.map { case (from,tos) =>
+ (toFile(from), tos.map(toFile))
+ }
+lazy val expectedDeps = (Relation.empty[File,File] /: pairs) { case (r, (x,ys)) => r + (x,ys) }
+def toFile(s: String) = file(s + ".java").getAbsoluteFile
+
+def same[T](x: T, y: T): Unit = {
+ assert(x == y, s"\nActual: $x, \nExpected: $y")
+}
diff --git a/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/project/DottyInjectedPlugin.scala
new file mode 100644
index 000000000..3433779b6
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/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/src/sbt-test/source-dependencies/inherited-deps-java/test b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test
new file mode 100644
index 000000000..e5d477601
--- /dev/null
+++ b/sbt-bridge/src/sbt-test/source-dependencies/inherited-deps-java/test
@@ -0,0 +1 @@
+> verifyDeps