diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2012-09-04 14:33:38 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2012-09-04 16:28:55 +0200 |
commit | ec39e1ca82ea26429c140f120831b01cae65853c (patch) | |
tree | f31e27a4cc331e5e23c82c782b5adbedf4bba4dc /src/compiler/scala/tools/nsc/typechecker/Typers.scala | |
parent | 291754799ae498d2b64ac4ac612e4d376a539f05 (diff) | |
download | scala-ec39e1ca82ea26429c140f120831b01cae65853c.tar.gz scala-ec39e1ca82ea26429c140f120831b01cae65853c.tar.bz2 scala-ec39e1ca82ea26429c140f120831b01cae65853c.zip |
SI-6274 Fix owners when eta-expanding function with byName param
When eta-expanding a function that takes a by-name param the local definition
for the corresponding argument is a function-0
val eta$1 = () => { argument-to-by-name }
If there are any definitinos in the `argument-to-by-name`, the symbol
owner needs to be changed to the anonymous function's symbol.
To know the function symbol in eta expand, we need to type-check the
function, and therefore pass the `Typer` instance to `etaExpand`.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Typers.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 1845776c2d..34cb0fa59c 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -886,7 +886,7 @@ trait Typers extends Modes with Adaptations with Tags { if (!meth.isConstructor && !meth.isTermMacro && isFunctionType(pt)) { // (4.2) debuglog("eta-expanding " + tree + ":" + tree.tpe + " to " + pt) checkParamsConvertible(tree, tree.tpe) - val tree0 = etaExpand(context.unit, tree) + val tree0 = etaExpand(context.unit, tree, this) // println("eta "+tree+" ---> "+tree0+":"+tree0.tpe+" undet: "+context.undetparams+ " mode: "+Integer.toHexString(mode)) if (context.undetparams.nonEmpty) { |