diff options
author | Paul Phillips <paulp@improving.org> | 2013-08-17 23:42:40 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-08-17 23:42:40 -0700 |
commit | a9efda40ee30796d3458604869a87a2c91f3efbf (patch) | |
tree | 7d1e685110c50ae37616c00f3c94450af03c4acc /src | |
parent | 22b82a485a53ffad3490673a481fbd79d616ed71 (diff) | |
parent | 84a335916556cb0fe939d1c51f27d80d9cf980dc (diff) | |
download | scala-a9efda40ee30796d3458604869a87a2c91f3efbf.tar.gz scala-a9efda40ee30796d3458604869a87a2c91f3efbf.tar.bz2 scala-a9efda40ee30796d3458604869a87a2c91f3efbf.zip |
Merge remote-tracking branch 'xeno-by/topic/patmat2' into patmat2
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala | 3 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala b/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala index 7f4bf0dfbc..1f4d5cbac2 100644 --- a/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala +++ b/src/compiler/scala/tools/nsc/typechecker/ContextErrors.scala @@ -517,6 +517,9 @@ trait ContextErrors { def TooManyArgsPatternError(fun: Tree) = NormalTypeError(fun, "too many arguments for unapply pattern, maximum = "+definitions.MaxTupleArity) + def WrongShapeExtractorExpansion(fun: Tree) = + NormalTypeError(fun, "extractor macros can only expand into extractor calls") + def WrongNumberOfArgsError(tree: Tree, fun: Tree) = NormalTypeError(tree, "wrong number of arguments for "+ treeSymTypeMsg(fun)) diff --git a/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala b/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala index 13926ca18b..cc0ffe2ac2 100644 --- a/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/PatternTypers.scala @@ -413,6 +413,8 @@ trait PatternTypers { if (fun1.tpe.isErroneous) duplErrTree + else if (unapplyMethod.isMacro && !fun1.isInstanceOf[Apply]) + duplErrorTree(WrongShapeExtractorExpansion(tree)) else makeTypedUnApply() } |