summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorburaq <buraq@epfl.ch>2005-06-13 13:41:36 +0000
committerburaq <buraq@epfl.ch>2005-06-13 13:41:36 +0000
commitca5b2cba22f48311999a6efba1a56ba2283a2cae (patch)
tree8e65ebae2306ca5297e274ac6f88f3fabd37e208 /sources
parent3577a16ffe5dfc650843d4fc5634f8530bd52144 (diff)
downloadscala-ca5b2cba22f48311999a6efba1a56ba2283a2cae.tar.gz
scala-ca5b2cba22f48311999a6efba1a56ba2283a2cae.tar.bz2
scala-ca5b2cba22f48311999a6efba1a56ba2283a2cae.zip
in scala4ant, errors will cause ant script to s...
in scala4ant, errors will cause ant script to stop. Before, it just ran through
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/tools/scala4ant/AntAdaptor.scala5
-rw-r--r--sources/scala/tools/scalac/Main.scala6
2 files changed, 10 insertions, 1 deletions
diff --git a/sources/scala/tools/scala4ant/AntAdaptor.scala b/sources/scala/tools/scala4ant/AntAdaptor.scala
index b61816da0a..0d1c0653a3 100644
--- a/sources/scala/tools/scala4ant/AntAdaptor.scala
+++ b/sources/scala/tools/scala4ant/AntAdaptor.scala
@@ -38,6 +38,7 @@ package scala.tools.scala4ant {
var result = true;
try {
scala.tools.scalac.Main.main1( false, args );
+
} catch {
case e:Throwable => {
result = false;
@@ -46,6 +47,10 @@ package scala.tools.scala4ant {
ex.printStackTrace();
if( !result ) throw new BuildException("exception occurred:"+ex.getClass());
}
+
+ if( scala.tools.scalac.Main.reporter.errors() > 0 )
+ throw new BuildException("there were compile errors");
+
result;
}
diff --git a/sources/scala/tools/scalac/Main.scala b/sources/scala/tools/scalac/Main.scala
index 5e54b968bb..838019e53f 100644
--- a/sources/scala/tools/scalac/Main.scala
+++ b/sources/scala/tools/scalac/Main.scala
@@ -6,7 +6,7 @@
** $Id$
\* */
-import scala.tools.util.ConsoleReporter;
+import scala.tools.util.{AbstractReporter, ConsoleReporter};
import scalac.{CompilerCommand, Global => scalac_Global};
import scalac.symtab.classfile.CLRTypes;
@@ -27,8 +27,12 @@ object Main {
def main(args: Array[String]): unit = main1( true, args );
+ // ant task needs to be aware of reporter.errors
+ var reporter: AbstractReporter = _;
+
def main1( exitOnError:boolean, args: Array[String] ):unit = {
val reporter = new ConsoleReporter();
+ this.reporter = reporter;
val command = new CompilerCommand(
PRODUCT, VERSION, reporter, new CompilerPhases());
var ok = true;