diff options
author | paltherr <paltherr@epfl.ch> | 2003-06-24 08:57:30 +0000 |
---|---|---|
committer | paltherr <paltherr@epfl.ch> | 2003-06-24 08:57:30 +0000 |
commit | 9753961477f1f648656ec130675ed1b78f4f73b1 (patch) | |
tree | 3d0d93f692d5f7ca3a0eedfe1b0b74eab6dd027d /sources/scalac | |
parent | 3102d7d40fcc65e6174e84d5424cd45d688c0257 (diff) | |
download | scala-9753961477f1f648656ec130675ed1b78f4f73b1.tar.gz scala-9753961477f1f648656ec130675ed1b78f4f73b1.tar.bz2 scala-9753961477f1f648656ec130675ed1b78f4f73b1.zip |
- Removed file from encoded positions
Diffstat (limited to 'sources/scalac')
-rw-r--r-- | sources/scalac/Unit.java | 19 | ||||
-rw-r--r-- | sources/scalac/ast/parser/Scanner.java | 12 | ||||
-rw-r--r-- | sources/scalac/backend/msil/GenMSIL.java | 2 | ||||
-rw-r--r-- | sources/scalac/backend/msil/TypeCreator.java | 2 | ||||
-rw-r--r-- | sources/scalac/util/Reporter.java | 10 |
5 files changed, 17 insertions, 28 deletions
diff --git a/sources/scalac/Unit.java b/sources/scalac/Unit.java index 0a529efbfb..354fc1af55 100644 --- a/sources/scalac/Unit.java +++ b/sources/scalac/Unit.java @@ -52,16 +52,22 @@ public class Unit { this.console = console; } + /** return the position representing the given encoded position + */ + public Position position(int pos) { + return new Position(source, pos); + } + /** issue an error in this compilation unit at a specific location */ public void error(int pos, String message) { - global.reporter.error(decode(pos), message); + global.reporter.error(position(pos), message); } /** issue a warning in this compilation unit at a specific location */ public void warning(int pos, String message) { - global.reporter.warning(decode(pos), message); + global.reporter.warning(position(pos), message); } /** return a string representation @@ -70,13 +76,4 @@ public class Unit { return source.toString(); } - - private Position decode(int pos) { - Position position = new Position(pos); - if (position.file().id() == 0) - if (/* !!! source.id() > Position.FILE_MASK && */ position.line() != 0) - return source.getPosition(position.line(), position.column()); - return position; - } - } diff --git a/sources/scalac/ast/parser/Scanner.java b/sources/scalac/ast/parser/Scanner.java index 3555dcad5e..c2eb82a27e 100644 --- a/sources/scalac/ast/parser/Scanner.java +++ b/sources/scalac/ast/parser/Scanner.java @@ -66,10 +66,6 @@ public class Scanner extends TokenData { public int cline; public int ccol; - /** the current sourcefile - */ - public SourceFile currentSource; - /** a buffer for character and string literals */ protected byte[] lit = new byte[64]; @@ -84,7 +80,7 @@ public class Scanner extends TokenData { */ public Scanner(Unit unit) { this.unit = unit; - buf = (currentSource = unit.source).bytes(); + buf = unit.source.bytes(); cline = 1; bp = -1; ccol = 0; @@ -167,7 +163,7 @@ public class Scanner extends TokenData { */ public void fetchToken() { if (token == EOF) return; - lastpos = Position.encode(currentSource, cline, ccol); + lastpos = Position.encode(cline, ccol); int index = bp; while(true) { switch (ch) { @@ -194,7 +190,7 @@ public class Scanner extends TokenData { nextch(); break; default: - pos = Position.encode(currentSource, cline, ccol); + pos = Position.encode(cline, ccol); index = bp; switch (ch) { case 'A': case 'B': case 'C': case 'D': case 'E': @@ -574,7 +570,7 @@ public class Scanner extends TokenData { putch(ch); break; default: - syntaxError(Position.encode(currentSource, cline, ccol) - 1, "invalid escape character"); + syntaxError(Position.encode(cline, ccol) - 1, "invalid escape character"); putch(ch); } nextch(); diff --git a/sources/scalac/backend/msil/GenMSIL.java b/sources/scalac/backend/msil/GenMSIL.java index 4e2567781d..cd1ce73774 100644 --- a/sources/scalac/backend/msil/GenMSIL.java +++ b/sources/scalac/backend/msil/GenMSIL.java @@ -1641,7 +1641,7 @@ public class GenMSIL /*implements Modifiers */ { } void logErr(int pos, String message) { - global.reporter.printMessage(new Position(pos), message); + global.reporter.printMessage(currUnit.position(pos), message); } void logErr(String message) { diff --git a/sources/scalac/backend/msil/TypeCreator.java b/sources/scalac/backend/msil/TypeCreator.java index 4b81269a95..f5b7806174 100644 --- a/sources/scalac/backend/msil/TypeCreator.java +++ b/sources/scalac/backend/msil/TypeCreator.java @@ -754,7 +754,7 @@ public final class TypeCreator } void logErr(String message) { - global.reporter.printMessage(new Position(pos), message); + global.reporter.printMessage(unit.position(pos), message); } } // class TypeCreator diff --git a/sources/scalac/util/Reporter.java b/sources/scalac/util/Reporter.java index ccf466ae7d..b7d233213f 100644 --- a/sources/scalac/util/Reporter.java +++ b/sources/scalac/util/Reporter.java @@ -148,7 +148,7 @@ public class Reporter { /** Prints the message with the given position indication. */ public void printMessage(Position position, String message) { - if (position != null && position.file().id() != 0) { + if (position != null) { message = " " + message; if (position.line() != 0) message = position.line() + ":" + message; @@ -160,8 +160,7 @@ public class Reporter { /** Prints the error message. */ public void printError(Position position, String message) { - if (position != null && position.file().id() == 0) - message = "error: " + message; + if (position == null) message = "error: " + message; printMessage(position, message); } @@ -179,8 +178,7 @@ public class Reporter { /** Prints the source line of the given position. */ public void printSourceLine(Position position) { - if (position == null || position.file().id() == 0) return; - if (position.line() == 0) return; + if (position == null || position.line() == 0) return; printMessage(position.file().getLine(position.line())); printColumnMarker(position); } @@ -226,8 +224,6 @@ public class Reporter { private boolean testAndLog(Position position) { if (position == null) return false; if (position.column() == 0) return false; - if (position.line() == 0) return false; - if (position.file().id() == 0) return false; if (positions.contains(position)) return true; positions.add(position); return false; |