aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/Definitions.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-12-05 19:25:45 +0100
committerMartin Odersky <odersky@gmail.com>2014-12-05 19:26:24 +0100
commitfc23083675e4b194e42a0c310b1c43ab5d3aed2e (patch)
tree0d0895bebf4917a862dbb89ca2d662155acef9b9 /src/dotty/tools/dotc/core/Definitions.scala
parent8336a0ddbe78b363394c48e3407b79c72008d2b3 (diff)
downloaddotty-fc23083675e4b194e42a0c310b1c43ab5d3aed2e.tar.gz
dotty-fc23083675e4b194e42a0c310b1c43ab5d3aed2e.tar.bz2
dotty-fc23083675e4b194e42a0c310b1c43ab5d3aed2e.zip
Fix by-name arguments
Previous scheme relying on Attachments was fragile. We now use a dummy method application, which transmits info reliably to Erasure.
Diffstat (limited to 'src/dotty/tools/dotc/core/Definitions.scala')
-rw-r--r--src/dotty/tools/dotc/core/Definitions.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Definitions.scala b/src/dotty/tools/dotc/core/Definitions.scala
index 895d41516..311b27717 100644
--- a/src/dotty/tools/dotc/core/Definitions.scala
+++ b/src/dotty/tools/dotc/core/Definitions.scala
@@ -172,6 +172,11 @@ class Definitions {
def ObjectMethods = List(Object_eq, Object_ne, Object_synchronized, Object_clone,
Object_finalize, Object_notify, Object_notifyAll, Object_wait, Object_waitL, Object_waitLI)
+ /** Dummy method needed by elimByName */
+ lazy val dummyApply = newPolyMethod(
+ RootClass, nme.dummyApply, 1,
+ pt => MethodType(List(FunctionType(Nil, PolyParam(pt, 0))), PolyParam(pt, 0)))
+
lazy val NotNullClass = ctx.requiredClass("scala.NotNull")
lazy val NothingClass: ClassSymbol = newCompleteClassSymbol(