diff options
Diffstat (limited to 'test/files')
42 files changed, 374 insertions, 0 deletions
diff --git a/test/files/neg/plugin-after-terminal.check b/test/files/neg/plugin-after-terminal.check new file mode 100644 index 0000000000..b846dc0ab5 --- /dev/null +++ b/test/files/neg/plugin-after-terminal.check @@ -0,0 +1,2 @@ +error: [phase assembly, after dependency on terminal phase not allowed: afterterminal => terminal] +one error found
\ No newline at end of file diff --git a/test/files/neg/plugin-after-terminal.flags b/test/files/neg/plugin-after-terminal.flags new file mode 100644 index 0000000000..6a44376213 --- /dev/null +++ b/test/files/neg/plugin-after-terminal.flags @@ -0,0 +1,2 @@ +-Xplugin:files/neg/plugin-after-terminal/lib/plugins.jar + diff --git a/test/files/neg/plugin-after-terminal/lib/plugins.jar.desired.sha1 b/test/files/neg/plugin-after-terminal/lib/plugins.jar.desired.sha1 new file mode 100644 index 0000000000..260293d333 --- /dev/null +++ b/test/files/neg/plugin-after-terminal/lib/plugins.jar.desired.sha1 @@ -0,0 +1 @@ +aaa554ce4b5988ad53f25f03a79d31c41aef4880 ?plugins.jar diff --git a/test/files/neg/plugin-after-terminal/misc/build.sh b/test/files/neg/plugin-after-terminal/misc/build.sh new file mode 100755 index 0000000000..8899009d7f --- /dev/null +++ b/test/files/neg/plugin-after-terminal/misc/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCALAC="../../../../build/pack/bin/scalac -deprecation -cp ../../../../build/quick/classes/compiler/" + +BASE=`pwd` + +if [[ -d "${BASE}/src" ]] ; then + + mkdir -p build + ${SCALAC} -d build src/*.scala + jar cf lib/plugins.jar -C misc/ scalac-plugin.xml -C build . + rm -rf build +fi + diff --git a/test/files/neg/plugin-after-terminal/misc/scalac-plugin.xml b/test/files/neg/plugin-after-terminal/misc/scalac-plugin.xml new file mode 100644 index 0000000000..58fff40950 --- /dev/null +++ b/test/files/neg/plugin-after-terminal/misc/scalac-plugin.xml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<plugin> + <name>beforeparser</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/neg/plugin-after-terminal/src/ThePlugin.scala b/test/files/neg/plugin-after-terminal/src/ThePlugin.scala new file mode 100644 index 0000000000..f3c913086e --- /dev/null +++ b/test/files/neg/plugin-after-terminal/src/ThePlugin.scala @@ -0,0 +1,31 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "afterterminal" + val description = "Declares one plugin that wants to be after the terminal phase" + val components = List[PluginComponent](thePhase) + + private object thePhase extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]("terminal") + + val phaseName = ThePlugin.this.name + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + def name = ThePlugin.this.name + def run {} + } +} + diff --git a/test/files/neg/plugin-after-terminal/testsource.scala b/test/files/neg/plugin-after-terminal/testsource.scala new file mode 100644 index 0000000000..519d162fdf --- /dev/null +++ b/test/files/neg/plugin-after-terminal/testsource.scala @@ -0,0 +1,4 @@ +object Test extends Application { + println("afterterminal") +} + diff --git a/test/files/neg/plugin-before-parser.check b/test/files/neg/plugin-before-parser.check new file mode 100644 index 0000000000..253659eedb --- /dev/null +++ b/test/files/neg/plugin-before-parser.check @@ -0,0 +1,2 @@ +error: [phase assembly, before dependency on parser phase not allowed: parser => beforeparser] +one error found
\ No newline at end of file diff --git a/test/files/neg/plugin-before-parser.flags b/test/files/neg/plugin-before-parser.flags new file mode 100644 index 0000000000..632530922c --- /dev/null +++ b/test/files/neg/plugin-before-parser.flags @@ -0,0 +1,2 @@ +-Xplugin:files/neg/plugin-before-parser/lib/plugins.jar + diff --git a/test/files/neg/plugin-before-parser/lib/plugins.jar.desired.sha1 b/test/files/neg/plugin-before-parser/lib/plugins.jar.desired.sha1 new file mode 100644 index 0000000000..e5e4f8ff4e --- /dev/null +++ b/test/files/neg/plugin-before-parser/lib/plugins.jar.desired.sha1 @@ -0,0 +1 @@ +72ab27cee282cf10760e6b7c342a21be7404ff6c ?plugins.jar diff --git a/test/files/neg/plugin-before-parser/misc/build.sh b/test/files/neg/plugin-before-parser/misc/build.sh new file mode 100755 index 0000000000..8899009d7f --- /dev/null +++ b/test/files/neg/plugin-before-parser/misc/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCALAC="../../../../build/pack/bin/scalac -deprecation -cp ../../../../build/quick/classes/compiler/" + +BASE=`pwd` + +if [[ -d "${BASE}/src" ]] ; then + + mkdir -p build + ${SCALAC} -d build src/*.scala + jar cf lib/plugins.jar -C misc/ scalac-plugin.xml -C build . + rm -rf build +fi + diff --git a/test/files/neg/plugin-before-parser/misc/scalac-plugin.xml b/test/files/neg/plugin-before-parser/misc/scalac-plugin.xml new file mode 100644 index 0000000000..58fff40950 --- /dev/null +++ b/test/files/neg/plugin-before-parser/misc/scalac-plugin.xml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<plugin> + <name>beforeparser</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/neg/plugin-before-parser/src/ThePlugin.scala b/test/files/neg/plugin-before-parser/src/ThePlugin.scala new file mode 100644 index 0000000000..8714a55dc4 --- /dev/null +++ b/test/files/neg/plugin-before-parser/src/ThePlugin.scala @@ -0,0 +1,32 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "beforeparser" + val description = "Declares one plugin that wants to be before the parser phase" + val components = List[PluginComponent](thePhase) + + private object thePhase extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]() + override val runsBefore = List[String]("parser") + + val phaseName = ThePlugin.this.name + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + def name = ThePlugin.this.name + def run {} + } +} + diff --git a/test/files/neg/plugin-before-parser/testsource.scala b/test/files/neg/plugin-before-parser/testsource.scala new file mode 100644 index 0000000000..9928aaa83c --- /dev/null +++ b/test/files/neg/plugin-before-parser/testsource.scala @@ -0,0 +1,4 @@ +object Test extends Application { + println("beforeparser") +} + diff --git a/test/files/neg/plugin-cyclic-dependency.check b/test/files/neg/plugin-cyclic-dependency.check new file mode 100644 index 0000000000..7c1aeebfa0 --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency.check @@ -0,0 +1,2 @@ +error: fatal error: Cycle in compiler phase dependencies detected, phase cyclicdependency1 reacted twice! +one error found
\ No newline at end of file diff --git a/test/files/neg/plugin-cyclic-dependency.flags b/test/files/neg/plugin-cyclic-dependency.flags new file mode 100644 index 0000000000..8716aaa65f --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency.flags @@ -0,0 +1,2 @@ +-Xplugin:files/neg/plugin-cyclic-dependency/lib/plugins.jar + diff --git a/test/files/neg/plugin-cyclic-dependency/lib/plugins.jar.desired.sha1 b/test/files/neg/plugin-cyclic-dependency/lib/plugins.jar.desired.sha1 new file mode 100644 index 0000000000..df598bcf21 --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency/lib/plugins.jar.desired.sha1 @@ -0,0 +1 @@ +c2ca32f8eea54ff22a37d2c8a6ac1a6c5bb3e4ea ?plugins.jar diff --git a/test/files/neg/plugin-cyclic-dependency/misc/build.sh b/test/files/neg/plugin-cyclic-dependency/misc/build.sh new file mode 100755 index 0000000000..8899009d7f --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency/misc/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCALAC="../../../../build/pack/bin/scalac -deprecation -cp ../../../../build/quick/classes/compiler/" + +BASE=`pwd` + +if [[ -d "${BASE}/src" ]] ; then + + mkdir -p build + ${SCALAC} -d build src/*.scala + jar cf lib/plugins.jar -C misc/ scalac-plugin.xml -C build . + rm -rf build +fi + diff --git a/test/files/neg/plugin-cyclic-dependency/misc/scalac-plugin.xml b/test/files/neg/plugin-cyclic-dependency/misc/scalac-plugin.xml new file mode 100644 index 0000000000..58fff40950 --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency/misc/scalac-plugin.xml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<plugin> + <name>beforeparser</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/neg/plugin-cyclic-dependency/src/ThePlugin.scala b/test/files/neg/plugin-cyclic-dependency/src/ThePlugin.scala new file mode 100644 index 0000000000..1dfc15cb28 --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency/src/ThePlugin.scala @@ -0,0 +1,41 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "cyclicdependency" + val description = "Declares two phases that have a cyclic dependency" + val components = List[PluginComponent](thePhase1,thePhase2) + + private object thePhase1 extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]("tailcalls","cyclicdependency2") + + val phaseName = ThePlugin.this.name + "1" + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private object thePhase2 extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]("dce","cyclicdependency1") + + val phaseName = ThePlugin.this.name + "2" + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + def name = ThePlugin.this.name + def run {} + } +} + diff --git a/test/files/neg/plugin-cyclic-dependency/testsource.scala b/test/files/neg/plugin-cyclic-dependency/testsource.scala new file mode 100644 index 0000000000..f1513ec9a0 --- /dev/null +++ b/test/files/neg/plugin-cyclic-dependency/testsource.scala @@ -0,0 +1,4 @@ +object Test extends Application { + println("cyclicdependency") +} + diff --git a/test/files/neg/plugin-multiple-rafter.check b/test/files/neg/plugin-multiple-rafter.check new file mode 100644 index 0000000000..5ba932413f --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter.check @@ -0,0 +1,4 @@ +error: fatal error: Multiple phases want to run right after the phase explicitouter +Phases: erasure, multi-rafter, +Re-run with -Xgenerate-phase-graph <filename> to better see the problem. +one error found
\ No newline at end of file diff --git a/test/files/neg/plugin-multiple-rafter.flags b/test/files/neg/plugin-multiple-rafter.flags new file mode 100644 index 0000000000..dcae7f2f96 --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter.flags @@ -0,0 +1,2 @@ +-Xplugin:files/neg/plugin-multiple-rafter/lib/plugins.jar + diff --git a/test/files/neg/plugin-multiple-rafter/lib/plugins.jar.desired.sha1 b/test/files/neg/plugin-multiple-rafter/lib/plugins.jar.desired.sha1 new file mode 100644 index 0000000000..9706b6dd60 --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter/lib/plugins.jar.desired.sha1 @@ -0,0 +1 @@ +ee728763d50a19e725f729797d5afab05d395c4e ?plugins.jar diff --git a/test/files/neg/plugin-multiple-rafter/misc/build.sh b/test/files/neg/plugin-multiple-rafter/misc/build.sh new file mode 100755 index 0000000000..8899009d7f --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter/misc/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCALAC="../../../../build/pack/bin/scalac -deprecation -cp ../../../../build/quick/classes/compiler/" + +BASE=`pwd` + +if [[ -d "${BASE}/src" ]] ; then + + mkdir -p build + ${SCALAC} -d build src/*.scala + jar cf lib/plugins.jar -C misc/ scalac-plugin.xml -C build . + rm -rf build +fi + diff --git a/test/files/neg/plugin-multiple-rafter/misc/scalac-plugin.xml b/test/files/neg/plugin-multiple-rafter/misc/scalac-plugin.xml new file mode 100644 index 0000000000..58fff40950 --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter/misc/scalac-plugin.xml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<plugin> + <name>beforeparser</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/neg/plugin-multiple-rafter/src/ThePlugin.scala b/test/files/neg/plugin-multiple-rafter/src/ThePlugin.scala new file mode 100644 index 0000000000..4c761517c1 --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter/src/ThePlugin.scala @@ -0,0 +1,31 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "multi-rafter" + val description = "" + val components = List[PluginComponent](thePhase) + + private object thePhase extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]() + override val runsRightAfter = Some("explicitouter") + val phaseName = ThePlugin.this.name + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + def name = ThePlugin.this.name + def run {} + } +} + diff --git a/test/files/neg/plugin-multiple-rafter/testsource.scala b/test/files/neg/plugin-multiple-rafter/testsource.scala new file mode 100644 index 0000000000..f73db1eb60 --- /dev/null +++ b/test/files/neg/plugin-multiple-rafter/testsource.scala @@ -0,0 +1,4 @@ +object Test extends Application { + println("multi-rafter") +} + diff --git a/test/files/neg/plugin-rafter-before-1.check b/test/files/neg/plugin-rafter-before-1.check new file mode 100644 index 0000000000..7afe3be031 --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1.check @@ -0,0 +1,2 @@ +error: fatal error: phase erasure want to run right after explicitouter, but some phase has declared to run before erasure. Re-run with -Xgenerate-phase-graph <filename> to better see the problem. +one error found
\ No newline at end of file diff --git a/test/files/neg/plugin-rafter-before-1.flags b/test/files/neg/plugin-rafter-before-1.flags new file mode 100644 index 0000000000..8bf03145b9 --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1.flags @@ -0,0 +1,2 @@ +-Xplugin:files/neg/plugin-rafter-before-1/lib/plugins.jar + diff --git a/test/files/neg/plugin-rafter-before-1/lib/plugins.jar.desired.sha1 b/test/files/neg/plugin-rafter-before-1/lib/plugins.jar.desired.sha1 new file mode 100644 index 0000000000..e53d2f4084 --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1/lib/plugins.jar.desired.sha1 @@ -0,0 +1 @@ +1b9020d80db1bcb54d7f67c4f9b78907368dbadd ?plugins.jar diff --git a/test/files/neg/plugin-rafter-before-1/misc/build.sh b/test/files/neg/plugin-rafter-before-1/misc/build.sh new file mode 100755 index 0000000000..8899009d7f --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1/misc/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCALAC="../../../../build/pack/bin/scalac -deprecation -cp ../../../../build/quick/classes/compiler/" + +BASE=`pwd` + +if [[ -d "${BASE}/src" ]] ; then + + mkdir -p build + ${SCALAC} -d build src/*.scala + jar cf lib/plugins.jar -C misc/ scalac-plugin.xml -C build . + rm -rf build +fi + diff --git a/test/files/neg/plugin-rafter-before-1/misc/scalac-plugin.xml b/test/files/neg/plugin-rafter-before-1/misc/scalac-plugin.xml new file mode 100644 index 0000000000..58fff40950 --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1/misc/scalac-plugin.xml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<plugin> + <name>beforeparser</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/neg/plugin-rafter-before-1/src/ThePlugin.scala b/test/files/neg/plugin-rafter-before-1/src/ThePlugin.scala new file mode 100644 index 0000000000..c42a914066 --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1/src/ThePlugin.scala @@ -0,0 +1,31 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "rafter-before-1" + val description = "" + val components = List[PluginComponent](thePhase1) + + private object thePhase1 extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]("refchecks") + override val runsBefore = List[String]("erasure") + val phaseName = ThePlugin.this.name + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + def name = ThePlugin.this.name + def run {} + } +} + diff --git a/test/files/neg/plugin-rafter-before-1/testsource.scala b/test/files/neg/plugin-rafter-before-1/testsource.scala new file mode 100644 index 0000000000..836459db22 --- /dev/null +++ b/test/files/neg/plugin-rafter-before-1/testsource.scala @@ -0,0 +1,4 @@ +object Test extends Application { + println("rafter-before-1") +} + diff --git a/test/files/neg/plugin-rightafter-terminal.check b/test/files/neg/plugin-rightafter-terminal.check new file mode 100644 index 0000000000..8107c373e0 --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal.check @@ -0,0 +1,2 @@ +error: [phase assembly, right after dependency on terminal phase not allowed: rightafterterminal => terminal] +one error found
\ No newline at end of file diff --git a/test/files/neg/plugin-rightafter-terminal.flags b/test/files/neg/plugin-rightafter-terminal.flags new file mode 100644 index 0000000000..948a318668 --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal.flags @@ -0,0 +1,2 @@ +-Xplugin:files/neg/plugin-rightafter-terminal/lib/plugins.jar + diff --git a/test/files/neg/plugin-rightafter-terminal/lib/plugins.jar.desired.sha1 b/test/files/neg/plugin-rightafter-terminal/lib/plugins.jar.desired.sha1 new file mode 100644 index 0000000000..f1cb183ef1 --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal/lib/plugins.jar.desired.sha1 @@ -0,0 +1 @@ +4a096491a11759166159b0830f1c112072790782 ?plugins.jar diff --git a/test/files/neg/plugin-rightafter-terminal/misc/build.sh b/test/files/neg/plugin-rightafter-terminal/misc/build.sh new file mode 100755 index 0000000000..8899009d7f --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal/misc/build.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +SCALAC="../../../../build/pack/bin/scalac -deprecation -cp ../../../../build/quick/classes/compiler/" + +BASE=`pwd` + +if [[ -d "${BASE}/src" ]] ; then + + mkdir -p build + ${SCALAC} -d build src/*.scala + jar cf lib/plugins.jar -C misc/ scalac-plugin.xml -C build . + rm -rf build +fi + diff --git a/test/files/neg/plugin-rightafter-terminal/misc/scalac-plugin.xml b/test/files/neg/plugin-rightafter-terminal/misc/scalac-plugin.xml new file mode 100644 index 0000000000..58fff40950 --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal/misc/scalac-plugin.xml @@ -0,0 +1,6 @@ +<!-- $Id$ --> +<plugin> + <name>beforeparser</name> + <classname>scala.test.plugins.ThePlugin</classname> +</plugin> + diff --git a/test/files/neg/plugin-rightafter-terminal/src/ThePlugin.scala b/test/files/neg/plugin-rightafter-terminal/src/ThePlugin.scala new file mode 100644 index 0000000000..47dd06ec8a --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal/src/ThePlugin.scala @@ -0,0 +1,32 @@ +package scala.test.plugins + +import scala.tools.nsc +import nsc.Global +import nsc.Phase +import nsc.plugins.Plugin +import nsc.plugins.PluginComponent + +class ThePlugin(val global: Global) extends Plugin { + import global._ + + val name = "rightafterterminal" + val description = "Declares one plugin that wants to be right after the terminal phase" + val components = List[PluginComponent](thePhase) + + private object thePhase extends PluginComponent { + val global = ThePlugin.this.global + + val runsAfter = List[String]() + override val runsRightAfter = Some("terminal") + + val phaseName = ThePlugin.this.name + + def newPhase(prev: Phase) = new ThePhase(prev) + } + + private class ThePhase(prev: Phase) extends Phase(prev) { + def name = ThePlugin.this.name + def run {} + } +} + diff --git a/test/files/neg/plugin-rightafter-terminal/testsource.scala b/test/files/neg/plugin-rightafter-terminal/testsource.scala new file mode 100644 index 0000000000..7af767b638 --- /dev/null +++ b/test/files/neg/plugin-rightafter-terminal/testsource.scala @@ -0,0 +1,4 @@ +object Test extends Application { + println("rightafterterminal") +} + |