diff options
author | Martin Odersky <odersky@gmail.com> | 2013-12-07 18:25:19 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2013-12-07 18:25:19 +0100 |
commit | 394c0a7439820fc18665be182fa9839b41d28164 (patch) | |
tree | 7a03e468850676f7ce837b83983b6f3287002470 /src/dotty/tools/dotc/ast/Desugar.scala | |
parent | 377eb3318cdacd2dfb91d56be3649431ec1155f0 (diff) | |
download | dotty-394c0a7439820fc18665be182fa9839b41d28164.tar.gz dotty-394c0a7439820fc18665be182fa9839b41d28164.tar.bz2 dotty-394c0a7439820fc18665be182fa9839b41d28164.zip |
Fixes for translation of pattern definitions (PatDef)
Diffstat (limited to 'src/dotty/tools/dotc/ast/Desugar.scala')
-rw-r--r-- | src/dotty/tools/dotc/ast/Desugar.scala | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/ast/Desugar.scala b/src/dotty/tools/dotc/ast/Desugar.scala index 86e584f6b..e72fca195 100644 --- a/src/dotty/tools/dotc/ast/Desugar.scala +++ b/src/dotty/tools/dotc/ast/Desugar.scala @@ -352,6 +352,8 @@ object desugar { val caseDef = CaseDef(pat, EmptyTree, makeTuple(ids)) val matchExpr = Match(rhsUnchecked, caseDef :: Nil) vars match { + case Nil => + matchExpr case (named, tpt) :: Nil => derivedValDef(mods, named, tpt, matchExpr) case _ => @@ -684,9 +686,9 @@ object desugar { apply(add(tree, tpt), tree1) case tree @ Bind(_, tree1) => apply(add(tree, TypeTree()), tree1) - case Typed(id: Ident, t) if isVarPattern(id) => + case Typed(id: Ident, t) if isVarPattern(id) && id.name != nme.WILDCARD => add(id, t) - case id: Ident if isVarPattern(id) => + case id: Ident if isVarPattern(id) && id.name != nme.WILDCARD => add(id, TypeTree()) case _ => foldOver(buf, tree) |