diff options
Diffstat (limited to 'bridge/src/sbt-test/source-dependencies/pkg-self')
6 files changed, 55 insertions, 0 deletions
diff --git a/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala new file mode 100644 index 000000000..f804b5b3e --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A1.scala @@ -0,0 +1,8 @@ +package demo.sub + +class A { + implicit def x(i: Int): C = new C(i) +} +class C(i: Int) { + def y = i + 1 +} diff --git a/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala new file mode 100644 index 000000000..288698e5d --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/A2.scala @@ -0,0 +1,8 @@ +package demo.sub + +class A { + implicit def x(i: Int): C = new C(i) +} +class C(i: Int) { + def y = i + 2 +} diff --git a/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala new file mode 100644 index 000000000..54ffd4574 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/B.scala @@ -0,0 +1,5 @@ +package demo + +object B { + 3.y +} diff --git a/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala new file mode 100644 index 000000000..3c01ff4e4 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/pkg-self/changes/package.scala @@ -0,0 +1,3 @@ +package object demo extends sub.A { + val y = 9 +} diff --git a/bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala b/bridge/src/sbt-test/source-dependencies/pkg-self/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/pkg-self/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/bridge/src/sbt-test/source-dependencies/pkg-self/test b/bridge/src/sbt-test/source-dependencies/pkg-self/test new file mode 100644 index 000000000..595138bba --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/pkg-self/test @@ -0,0 +1,14 @@ +# Here we have a package object (demo) that extends a class in a subpackage (demo.sub.A) +# demo.sub.A provides an implicit used by demo.B +$ copy-file changes/package.scala src/main/scala/demo/package.scala +$ copy-file changes/A1.scala src/main/scala/demo/sub/A.scala +$ copy-file changes/B.scala src/main/scala/demo/B.scala +> compile + +# When recompiling A, we delete the class files for A +# When the demo package object is loaded, scalac complains it can't +# find the class files for A. Presumably this occurs because +# package object loading occurs early and doesn't see the new A +# from source. +$ copy-file changes/A2.scala src/main/scala/demo/sub/A.scala +> compile |