summaryrefslogtreecommitdiff
path: root/sources/scalac
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2003-06-24 08:57:30 +0000
committerpaltherr <paltherr@epfl.ch>2003-06-24 08:57:30 +0000
commit9753961477f1f648656ec130675ed1b78f4f73b1 (patch)
tree3d0d93f692d5f7ca3a0eedfe1b0b74eab6dd027d /sources/scalac
parent3102d7d40fcc65e6174e84d5424cd45d688c0257 (diff)
downloadscala-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.java19
-rw-r--r--sources/scalac/ast/parser/Scanner.java12
-rw-r--r--sources/scalac/backend/msil/GenMSIL.java2
-rw-r--r--sources/scalac/backend/msil/TypeCreator.java2
-rw-r--r--sources/scalac/util/Reporter.java10
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;