summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2012-02-20 13:48:08 +0100
committerMartin Odersky <odersky@gmail.com>2012-02-20 13:48:15 +0100
commit213ca741b0dc43712def6c84603d62b88eac7be7 (patch)
tree274c38e4f51d2b776be747af58d919a8410de6b4 /src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
parent64aaef72504b46b9d40359eb0476ad8416f36023 (diff)
downloadscala-213ca741b0dc43712def6c84603d62b88eac7be7.tar.gz
scala-213ca741b0dc43712def6c84603d62b88eac7be7.tar.bz2
scala-213ca741b0dc43712def6c84603d62b88eac7be7.zip
Removed one more stone the parser threw at me for daring to have new value classes in the Scala library.
Diffstat (limited to 'src/compiler/scala/tools/nsc/ast/parser/Parsers.scala')
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index 383eaa283d..85be440c5a 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -249,6 +249,8 @@ self =>
final val InBlock = 1
final val InTemplate = 2
+ lazy val ScalaValueClassNames: Set[Name] = definitions.scalaValueClassesSet map (_.name)
+
import nme.raw
abstract class Parser extends ParserCommon {
@@ -2750,7 +2752,7 @@ self =>
atPos(tstart0) {
// [Martin to Paul: This needs to be refined. We should only include the 9 primitive classes,
// not any other value classes that happen to be defined in the Scala package.
- if (inScalaPackage && (name == tpnme.AnyVal || (parents0 exists isReferenceToAnyVal)))
+ if (inScalaRootPackage && (name == tpnme.AnyVal || (ScalaValueClassNames contains name)))
Template(parents0, self, anyvalConstructor :: body)
else
Template(anyrefParents, self, constrMods, vparamss, argss, body, o2p(tstart))