diff options
author | Martin Odersky <odersky@gmail.com> | 2015-11-16 12:21:54 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-12-14 14:30:10 +0100 |
commit | 0a19b0b94393e47865f21f714e82676a67ab2e4d (patch) | |
tree | a840bb61d5151e785840086c74fed20f848179b7 | |
parent | a0b29722ff5c3f4d5a6c8e2f2868df755933d298 (diff) | |
download | dotty-0a19b0b94393e47865f21f714e82676a67ab2e4d.tar.gz dotty-0a19b0b94393e47865f21f714e82676a67ab2e4d.tar.bz2 dotty-0a19b0b94393e47865f21f714e82676a67ab2e4d.zip |
Only select parameterless get methods in unapplys.
Otherwise we'd get a failure due to an overloaded `get` definition
whenever we typecheck a case class that is also a Map (because maps
inherit a `get`).
-rw-r--r-- | src/dotty/tools/dotc/typer/Applications.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala index 8370b3059..b3cda20b8 100644 --- a/src/dotty/tools/dotc/typer/Applications.scala +++ b/src/dotty/tools/dotc/typer/Applications.scala @@ -33,7 +33,7 @@ object Applications { def hasNamedArg(args: List[Any]) = args exists isNamedArg def extractorMemberType(tp: Type, name: Name, errorPos: Position = NoPosition)(implicit ctx:Context) = { - val ref = tp member name + val ref = tp.member(name).suchThat(_.info.isParameterless) if (ref.isOverloaded) errorType(i"Overloaded reference to $ref is not allowed in extractor", errorPos) else if (ref.info.isInstanceOf[PolyType]) |