diff options
author | Martin Odersky <odersky@gmail.com> | 2005-09-15 12:57:06 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2005-09-15 12:57:06 +0000 |
commit | 2f8d5228ca7edecc4bfdbd5342fe1ec64b9396c0 (patch) | |
tree | 62cb590f903df4bf5e57b62c6093c1e4a6e705dd /sources/scala/tools/nsc/typechecker/Typers.scala | |
parent | 0c89a9d1a29e3872ef614b312fee8ed48914dbe7 (diff) | |
download | scala-2f8d5228ca7edecc4bfdbd5342fe1ec64b9396c0.tar.gz scala-2f8d5228ca7edecc4bfdbd5342fe1ec64b9396c0.tar.bz2 scala-2f8d5228ca7edecc4bfdbd5342fe1ec64b9396c0.zip |
*** empty log message ***
Diffstat (limited to 'sources/scala/tools/nsc/typechecker/Typers.scala')
-rwxr-xr-x | sources/scala/tools/nsc/typechecker/Typers.scala | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/sources/scala/tools/nsc/typechecker/Typers.scala b/sources/scala/tools/nsc/typechecker/Typers.scala index 1b108537b7..ffef937b0a 100755 --- a/sources/scala/tools/nsc/typechecker/Typers.scala +++ b/sources/scala/tools/nsc/typechecker/Typers.scala @@ -682,6 +682,11 @@ abstract class Typers: Analyzer { copy.CaseDef(cdef, pat1, guard1, body1) setType body1.tpe } + def typedCases(tree: Tree, cases: List[CaseDef], pattp: Type, pt: Type): List[CaseDef] = { + List.mapConserve(cases)(cdef => + newTyper(context.makeNewScope(tree, context.owner)).typedCase(cdef, pattp, pt)) + } + /* Transform a function node (x_1,...,x_n) => body of type FunctionN[T_1, .., T_N, R] to * * class $anon() extends Object() with FunctionN[T_1, .., T_N, R] with ScalaObject { @@ -800,11 +805,6 @@ abstract class Typers: Analyzer { def ptOrLub(tps: List[Type]) = if (isFullyDefined(pt)) pt else lub(tps); - def typedCases(cases: List[CaseDef], pattp: Type): List[CaseDef] = { - List.mapConserve(cases)(cdef => - newTyper(context.makeNewScope(tree, context.owner)).typedCase(cdef, pattp, pt)) - } - def typedTypeApply(fun: Tree, args: List[Tree]): Tree = fun.tpe match { case OverloadedType(pre, alts) => inferPolyAlternatives(fun, args.length); @@ -1155,7 +1155,7 @@ abstract class Typers: Analyzer { case Match(selector, cases) => val selector1 = typed(selector); - val cases1 = typedCases(cases, selector1.tpe); + val cases1 = typedCases(tree, cases, selector1.tpe, pt); copy.Match(tree, selector1, cases1) setType ptOrLub(cases1 map (.tpe)) case Return(expr) => @@ -1171,7 +1171,7 @@ abstract class Typers: Analyzer { case Try(block, catches, finalizer) => val block1 = typed(block, pt); - val catches1 = typedCases(catches, ThrowableClass.tpe); + val catches1 = typedCases(tree, catches, ThrowableClass.tpe, pt); val finalizer1 = if (finalizer.isEmpty) finalizer else typed(finalizer, UnitClass.tpe); copy.Try(tree, block1, catches1, finalizer1) |