diff options
author | Paul Phillips <paulp@improving.org> | 2013-05-11 13:02:54 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-05-11 13:02:54 -0700 |
commit | c663ecf8677eda3fe8c91170b614eb7166b18711 (patch) | |
tree | 80184e648c1f8c72f7e424649552425ceb51b19c /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 433880e91cba9e1e926e9fcbf04ecd4aeb1d73eb (diff) | |
download | scala-c663ecf8677eda3fe8c91170b614eb7166b18711.tar.gz scala-c663ecf8677eda3fe8c91170b614eb7166b18711.tar.bz2 scala-c663ecf8677eda3fe8c91170b614eb7166b18711.zip |
Incorporated reviewer feedback.
Made things a little more consistent and self-apparent.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index eeae7da94f..5cce4865cc 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -3039,7 +3039,7 @@ trait Typers extends Adaptations with Tags { } def typedArg(arg: Tree, mode: Mode, newmode: Mode, pt: Type): Tree = { - val typedMode = mode stickyPlus newmode + val typedMode = mode.onlySticky | newmode val t = withCondConstrTyper(mode.inSccMode)(_.typed(arg, typedMode, pt)) checkDead.inMode(typedMode, t) } @@ -3062,7 +3062,7 @@ trait Typers extends Adaptations with Tags { // No formals left or * indicates varargs. val isVarArgs = formals.isEmpty || formals.tail.isEmpty && isRepeatedParamType(formals.head) val isByName = formals.nonEmpty && isByNameParamType(formals.head) - def typedMode = mode stickyPlus ( if (isByName) NOmode else BYVALmode ) + def typedMode = if (isByName) mode.onlySticky else mode.onlySticky | BYVALmode def body = typedArg(args.head, mode, typedMode, adapted.head) def arg1 = if (isVarArgs) context.withinStarPatterns(body) else body @@ -4984,13 +4984,11 @@ trait Typers extends Adaptations with Tags { newTyper(context.makeNewScope(ddef, sym)).constrTyperIf(isConstrDefaultGetter) } - def typedAlternative(alt: Alternative) = { - val saved = context.inPatAlternative - context.inPatAlternative = true - try treeCopy.Alternative(tree, alt.trees mapConserve (alt => typed(alt, mode, pt))) setType pt - finally context.inPatAlternative = saved - } - + def typedAlternative(alt: Alternative) = ( + context withinPatAlternative ( + treeCopy.Alternative(tree, alt.trees mapConserve (alt => typed(alt, mode, pt))) setType pt + ) + ) def typedStar(tree: Star) = { if (!context.starPatterns && !isPastTyper) StarPatternWithVarargParametersError(tree) |