aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/parsing
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-22 17:59:25 +0100
committerMartin Odersky <odersky@gmail.com>2017-04-11 09:33:10 +0200
commit19bc1ff09fa73e13be7e3464b8440c04b657aa82 (patch)
treebc6934a3c47ab403f4dc3dd2c87531081887dc15 /compiler/src/dotty/tools/dotc/parsing
parent2cc16c4d990fa404577dbe1c944958a0cf9896a8 (diff)
downloaddotty-19bc1ff09fa73e13be7e3464b8440c04b657aa82.tar.gz
dotty-19bc1ff09fa73e13be7e3464b8440c04b657aa82.tar.bz2
dotty-19bc1ff09fa73e13be7e3464b8440c04b657aa82.zip
Disentangle Names from Seqs
Structured names are not Seqs anymmore. But the Seq behavior is required in many places that mangle names. As an intermediate step we drop the Seq basetype but add Seq behavior through a decorator. Most Seq operations only work on SimpleTermNames and their TypeName analogue, will throw an exception wehn called on structured names.
Diffstat (limited to 'compiler/src/dotty/tools/dotc/parsing')
-rw-r--r--compiler/src/dotty/tools/dotc/parsing/Scanners.scala2
-rw-r--r--compiler/src/dotty/tools/dotc/parsing/Tokens.scala2
2 files changed, 2 insertions, 2 deletions
diff --git a/compiler/src/dotty/tools/dotc/parsing/Scanners.scala b/compiler/src/dotty/tools/dotc/parsing/Scanners.scala
index ff5019dc9..bcf6eb4a5 100644
--- a/compiler/src/dotty/tools/dotc/parsing/Scanners.scala
+++ b/compiler/src/dotty/tools/dotc/parsing/Scanners.scala
@@ -101,7 +101,7 @@ object Scanners {
target.name = flushBuf(litBuf).toTermName
target.token = idtoken
if (idtoken == IDENTIFIER) {
- val idx = target.name.start
+ val idx = target.name.toSimpleName.start
target.token = toToken(idx)
}
}
diff --git a/compiler/src/dotty/tools/dotc/parsing/Tokens.scala b/compiler/src/dotty/tools/dotc/parsing/Tokens.scala
index d2ea9240c..96ae25c9e 100644
--- a/compiler/src/dotty/tools/dotc/parsing/Tokens.scala
+++ b/compiler/src/dotty/tools/dotc/parsing/Tokens.scala
@@ -129,7 +129,7 @@ abstract class TokensCommon {
final val lastParen = RBRACE
def buildKeywordArray(keywords: TokenSet) = {
- def start(tok: Token) = tokenString(tok).toTermName.start
+ def start(tok: Token) = tokenString(tok).toTermName.toSimpleName.start
def sourceKeywords = keywords.toList.filter { (kw: Token) =>
val ts = tokenString(kw)
(ts != null) && !ts.contains(' ')