diff options
Diffstat (limited to 'bridge/src/sbt-test/source-dependencies/linearization')
9 files changed, 47 insertions, 0 deletions
diff --git a/bridge/src/sbt-test/source-dependencies/linearization/A.scala b/bridge/src/sbt-test/source-dependencies/linearization/A.scala new file mode 100644 index 000000000..69399d3fb --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/A.scala @@ -0,0 +1,3 @@ +trait A { + def x = 3 +} diff --git a/bridge/src/sbt-test/source-dependencies/linearization/B.scala b/bridge/src/sbt-test/source-dependencies/linearization/B.scala new file mode 100644 index 000000000..608b53052 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/B.scala @@ -0,0 +1,3 @@ +trait B extends A { + override def x = super.x * 2 +}
\ No newline at end of file diff --git a/bridge/src/sbt-test/source-dependencies/linearization/C.scala b/bridge/src/sbt-test/source-dependencies/linearization/C.scala new file mode 100644 index 000000000..3fbd747e0 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/C.scala @@ -0,0 +1,3 @@ +trait C extends A { + override def x = super.x + 5 +}
\ No newline at end of file diff --git a/bridge/src/sbt-test/source-dependencies/linearization/D.scala b/bridge/src/sbt-test/source-dependencies/linearization/D.scala new file mode 100644 index 000000000..7b46ebf97 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/D.scala @@ -0,0 +1,2 @@ +// define the order +trait D extends C with B
\ No newline at end of file diff --git a/bridge/src/sbt-test/source-dependencies/linearization/E.scala b/bridge/src/sbt-test/source-dependencies/linearization/E.scala new file mode 100644 index 000000000..f69ea1d51 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/E.scala @@ -0,0 +1,2 @@ +// put a level in between D and its concrete class +trait E extends D diff --git a/bridge/src/sbt-test/source-dependencies/linearization/F.scala b/bridge/src/sbt-test/source-dependencies/linearization/F.scala new file mode 100644 index 000000000..6dda903f5 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/F.scala @@ -0,0 +1,3 @@ +object F extends E { + def main(args: Array[String]) = assert(x == args(0).toInt, x) +}
\ No newline at end of file diff --git a/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala b/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala new file mode 100644 index 000000000..84c173887 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/changes/D.scala @@ -0,0 +1 @@ +trait D extends B with C diff --git a/bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala b/bridge/src/sbt-test/source-dependencies/linearization/project/DottyInjectedPlugin.scala new file mode 100644 index 000000000..3433779b6 --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/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/linearization/test b/bridge/src/sbt-test/source-dependencies/linearization/test new file mode 100644 index 000000000..e6078ebfb --- /dev/null +++ b/bridge/src/sbt-test/source-dependencies/linearization/test @@ -0,0 +1,13 @@ +> compile + +# the value of F.x should be 16 +> run 16 + +# modify D.scala so that the linearization changes +$ copy-file changes/D.scala D.scala +# F.x becomes 11 +> compile + +# if F is recompiled, the value of x should be 11, otherwise it will still be 16 +# and this will fail +> run 11
\ No newline at end of file |