diff options
author | DarkDimius <darkdimius@gmail.com> | 2014-03-02 12:38:55 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-03-02 13:12:09 +0100 |
commit | 92a4fefe58cfe4c1bcccc8f98183079a553d477a (patch) | |
tree | 76df2064eea6a6407c6ba2d04ea547aee6be3da2 /src | |
parent | 0ebdbde3d51f92647f3b1cd452d60648ed8e7a39 (diff) | |
parent | 301d0c8a79d56d18fe0ae9c09f350d4364d4baf1 (diff) | |
download | dotty-92a4fefe58cfe4c1bcccc8f98183079a553d477a.tar.gz dotty-92a4fefe58cfe4c1bcccc8f98183079a553d477a.tar.bz2 dotty-92a4fefe58cfe4c1bcccc8f98183079a553d477a.zip |
Merge pull request #31 from DarkDimius/tests
Infrastructure for per-phase tests, with inline source as a string.
Diffstat (limited to 'src')
-rw-r--r-- | src/dotty/tools/dotc/Compiler.scala | 3 | ||||
-rw-r--r-- | src/dotty/tools/dotc/Run.scala | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/Compiler.scala b/src/dotty/tools/dotc/Compiler.scala index e48fed93b..9844557f5 100644 --- a/src/dotty/tools/dotc/Compiler.scala +++ b/src/dotty/tools/dotc/Compiler.scala @@ -7,10 +7,11 @@ import Periods._ import Symbols._ import typer.{FrontEnd, Typer, Mode, ImportInfo} import reporting.ConsoleReporter +import dotty.tools.dotc.core.Phases.Phase class Compiler { - def phases = List(new FrontEnd) + def phases: List[Phase] = List(new FrontEnd) var runId = 1 def nextRunId = { runId += 1; runId } diff --git a/src/dotty/tools/dotc/Run.scala b/src/dotty/tools/dotc/Run.scala index 928bf753a..cc9b8db3a 100644 --- a/src/dotty/tools/dotc/Run.scala +++ b/src/dotty/tools/dotc/Run.scala @@ -6,6 +6,7 @@ import Contexts._, Periods._, Symbols._ import io.PlainFile import util.{SourceFile, NoSource, Stats, SimpleMap} import reporting.Reporter +import java.io.FileWriter class Run(comp: Compiler)(implicit ctx: Context) { @@ -29,6 +30,15 @@ class Run(comp: Compiler)(implicit ctx: Context) { } } + def compile(sourceCode: String): Unit = { + val tmpFile = java.io.File.createTempFile("dotty-source-tmp", ".scala") + tmpFile.createNewFile() + val writer = new FileWriter(tmpFile) + writer.write(sourceCode) + writer.close() + compile(List(tmpFile.getAbsolutePath)) + } + /** Print summary; return # of errors encountered */ def printSummary(): Reporter = { ctx.runInfo.printMaxConstraint() |