summaryrefslogtreecommitdiff
path: root/test/files/presentation/t8085/Test.scala
diff options
context:
space:
mode:
authorMirco Dotta <mirco.dotta@typesafe.com>2013-12-10 17:12:58 +0100
committerJason Zaugg <jzaugg@gmail.com>2013-12-18 14:28:24 +0100
commita12dd9c3b6fb4a767eec8f6d3bf0a9a2266eff85 (patch)
tree29edc6d55f5b661175de82ccef087a7420d5e10e /test/files/presentation/t8085/Test.scala
parent5cbb5a7f626aa7bd305ad8ce2ad96ee742315536 (diff)
downloadscala-a12dd9c3b6fb4a767eec8f6d3bf0a9a2266eff85.tar.gz
scala-a12dd9c3b6fb4a767eec8f6d3bf0a9a2266eff85.tar.bz2
scala-a12dd9c3b6fb4a767eec8f6d3bf0a9a2266eff85.zip
Test demonstrating SI-8085
* The presentation compiler sourcepath is now correctly set-up. * Amazingly enough (for me at least), the outer import in the package object seem to be responsible of the faulty behavior. In fact, if you move the import clause *inside* the package object, the test succeed! The test's output does provide the correct hint of this: ``` % diff /Users/mirco/Projects/ide/scala/test/files/presentation/t8085-presentation.log /Users/mirco/Projects/ide/scala/test/files/presentation/t8085.check @@ -1,3 +1,2 @@ reload: NodeScalaSuite.scala -prefixes differ: <empty>.nodescala,nodescala -value always is not a member of object scala.concurrent.Future +Test OK ``` Notice the ``-prefixes differ: <empty>.nodescala,nodescala``. And compare it with the output when the import clause is placed inside the package object: ``` % diff /Users/mirco/Projects/ide/scala/test/files/presentation/t8085-presentation.log /Users/mirco/Projects/ide/scala/test/files/presentation/t8085.check @@ -1,4 +1,2 @@ reload: NodeScalaSuite.scala -reload: NodeScalaSuite.scala -open package module: package object nodescala Test OK ``` Notice now the ``-open package module: package object nodescala``!
Diffstat (limited to 'test/files/presentation/t8085/Test.scala')
-rw-r--r--test/files/presentation/t8085/Test.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/files/presentation/t8085/Test.scala b/test/files/presentation/t8085/Test.scala
new file mode 100644
index 0000000000..5d11009818
--- /dev/null
+++ b/test/files/presentation/t8085/Test.scala
@@ -0,0 +1,28 @@
+import scala.tools.nsc.interactive.tests.InteractiveTest
+import scala.reflect.internal.util.SourceFile
+import scala.tools.nsc.interactive.Response
+
+object Test extends InteractiveTest {
+
+ override def execute(): Unit = {
+ // loadSourceAndWaitUntilTypechecked("package.scala") // <-- uncomment this line and the test succeed
+ val src = loadSourceAndWaitUntilTypechecked("NodeScalaSuite.scala")
+ checkErrors(src)
+ }
+
+ private def loadSourceAndWaitUntilTypechecked(sourceName: String): SourceFile = {
+ val sourceFile = sourceFiles.find(_.file.name == sourceName).head
+ askReload(List(sourceFile)).get
+ askLoadedTyped(sourceFile).get
+ sourceFile
+ }
+
+ private def checkErrors(source: SourceFile): Unit = compiler.getUnitOf(source) match {
+ case Some(unit) =>
+ val problems = unit.problems.toList
+ if(problems.isEmpty) reporter.println("Test OK")
+ else problems.foreach(problem => reporter.println(problem.msg))
+
+ case None => reporter.println("No compilation unit found for " + source.file.name)
+ }
+}