aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Typer.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-05-16 13:58:25 +0200
committerMartin Odersky <odersky@gmail.com>2014-05-30 14:38:30 +0200
commit772d57cd0874d992b3d5bad12e8f30746b24f5d6 (patch)
tree3273b5e6e3f757d9b49a5e3d209455743ec04d25 /src/dotty/tools/dotc/typer/Typer.scala
parent20034dd5500815ff04052cbc9a97deddacb3e892 (diff)
downloaddotty-772d57cd0874d992b3d5bad12e8f30746b24f5d6.tar.gz
dotty-772d57cd0874d992b3d5bad12e8f30746b24f5d6.tar.bz2
dotty-772d57cd0874d992b3d5bad12e8f30746b24f5d6.zip
typedTyped needs to maintain Mode.
The first part of a type ascription e: T can be a pattern or an expression. The mode has to be kept depending on what it was on the outside.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Typer.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Typer.scala4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/typer/Typer.scala b/src/dotty/tools/dotc/typer/Typer.scala
index e3683d2cf..32680e34b 100644
--- a/src/dotty/tools/dotc/typer/Typer.scala
+++ b/src/dotty/tools/dotc/typer/Typer.scala
@@ -328,7 +328,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
val tpt1 = typedType(tree.tpt)
val expr1 =
if (isWildcard) tree.expr withType tpt1.tpe
- else typedExpr(tree.expr, tpt1.tpe)
+ else typed(tree.expr, tpt1.tpe)
assignType(cpy.Typed(tree, expr1, tpt1), tpt1)
}
tree.expr match {
@@ -957,7 +957,7 @@ class Typer extends Namer with TypeAssigner with Applications with Implicits wit
}
}
- def typed(tree: untpd.Tree, pt: Type = WildcardType)(implicit ctx: Context): Tree = /*>|>*/ ctx.traceIndented (i"typing $tree", typr, show = true) /*<|<*/ {
+ def typed(tree: untpd.Tree, pt: Type = WildcardType)(implicit ctx: Context): Tree = /*>|>*/ ctx.traceIndented (i"typing $tree, patternMode = ${ctx.mode is Mode.Pattern}", typr, show = true) /*<|<*/ {
assertPositioned(tree)
try adapt(typedUnadapted(tree, pt), pt, tree)
catch {