summaryrefslogtreecommitdiff
path: root/sources/scala/tools/nsc/ast/parser/Parsers.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2005-08-29 14:38:38 +0000
committerMartin Odersky <odersky@gmail.com>2005-08-29 14:38:38 +0000
commit184a284ccc9c842adaaec728914f11a2cad33c18 (patch)
tree25ae4ff123300b6dc24f4c1a2ec0182105e75ec6 /sources/scala/tools/nsc/ast/parser/Parsers.scala
parent7d50bd127a071b84cc3d5e6e989b5f57d5988aaf (diff)
downloadscala-184a284ccc9c842adaaec728914f11a2cad33c18.tar.gz
scala-184a284ccc9c842adaaec728914f11a2cad33c18.tar.bz2
scala-184a284ccc9c842adaaec728914f11a2cad33c18.zip
*** empty log message ***
Diffstat (limited to 'sources/scala/tools/nsc/ast/parser/Parsers.scala')
-rwxr-xr-xsources/scala/tools/nsc/ast/parser/Parsers.scala9
1 files changed, 6 insertions, 3 deletions
diff --git a/sources/scala/tools/nsc/ast/parser/Parsers.scala b/sources/scala/tools/nsc/ast/parser/Parsers.scala
index 79bc2b024c..b002dfd967 100755
--- a/sources/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/sources/scala/tools/nsc/ast/parser/Parsers.scala
@@ -753,7 +753,7 @@ abstract class Parsers: SyntaxAnalyzer {
* | SimpleExpr1 ArgumentExprs
*/
def simpleExpr(): Tree = {
- var t: Tree = _;
+ var t: Tree = null;
var isNew = false;
in.token match {
case CHARLIT | INTLIT | LONGLIT | FLOATLIT | DOUBLELIT | STRINGLIT |
@@ -1111,6 +1111,7 @@ abstract class Parsers: SyntaxAnalyzer {
*/
def paramClauses(owner: Name, implicitViews: List[Tree], ofCaseClass: boolean): List[List[ValDef]] = {
var implicitmod = 0;
+ var caseParam = ofCaseClass;
def param(): ValDef = {
atPos(in.pos) {
var mods = Flags.PARAM;
@@ -1119,8 +1120,9 @@ abstract class Parsers: SyntaxAnalyzer {
if (in.token == VAL) in.nextToken()
else {
if (mods != Flags.PARAMACCESSOR) accept(VAL);
- if (!ofCaseClass) mods = mods | Flags.PRIVATE | Flags.LOCAL;
+ if (!(caseParam)) mods = mods | Flags.PRIVATE | Flags.LOCAL;
}
+ if (caseParam) mods = mods | Flags.CASEACCESSOR;
}
val name = ident();
accept(COLON);
@@ -1149,13 +1151,14 @@ abstract class Parsers: SyntaxAnalyzer {
in.nextToken();
vds += paramClause();
accept(RPAREN);
+ caseParam = false
}
val result = vds.toList;
if (owner == nme.CONSTRUCTOR &&
(result.isEmpty || (!result.head.isEmpty &&
(result.head.head.mods & Flags.IMPLICIT) != 0)))
syntaxError(pos, "auxiliary constructor needs non-implicit parameter list", false);
- addImplicitViews(result, implicitViews)
+ addImplicitViews(owner, result, implicitViews)
}
/** ParamType ::= Type | `=>' Type | Type `*'