summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2007-11-09 15:56:26 +0000
committerMartin Odersky <odersky@gmail.com>2007-11-09 15:56:26 +0000
commitd3b764f220f3d083c4f2c36471ce68d5fbbb8854 (patch)
treec9f5600fe55913356b6bd65c4992e652b39a41c7 /src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
parent9feddc6cb4df699472248fc780505a9b437f13a0 (diff)
downloadscala-d3b764f220f3d083c4f2c36471ce68d5fbbb8854.tar.gz
scala-d3b764f220f3d083c4f2c36471ce68d5fbbb8854.tar.bz2
scala-d3b764f220f3d083c4f2c36471ce68d5fbbb8854.zip
changed self type syntax as suggested by Matt H...
changed self type syntax as suggested by Matt Hellige -- this: S is now allowed.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/Parsers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index bcbb26ad5c..b8a789d9cb 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -2411,10 +2411,15 @@ trait Parsers extends NewScanners with MarkupParsers {
if (isExprIntro) {
val first = expr(InTemplate) // @S: first statement is potentially converted so cannot be stubbed.
if (inToken == ARROW) {
- convertToParam(first) match {
- case tree @ ValDef(_, name, tpt, EmptyTree) if (name != nme.ERROR) =>
- self = makeSelfDef(name, tpt).setPos(tree.pos)
+ first match {
+ case Typed(tree @ This(name), tpt) if (name == nme.EMPTY.toTypeName) =>
+ self = makeSelfDef(nme.WILDCARD, tpt).setPos(tree.pos)
case _ =>
+ convertToParam(first) match {
+ case tree @ ValDef(_, name, tpt, EmptyTree) if (name != nme.ERROR) =>
+ self = makeSelfDef(name, tpt).setPos(tree.pos)
+ case _ =>
+ }
}
inNextToken
} else stats += first