summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2014-02-09 23:06:17 +0100
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2014-02-09 23:06:17 +0100
commit73784d78fdbd4feb07a8446a8336dd203c1be866 (patch)
tree5a3b59cd2f16730b4d307669eec3b1e66dd51dc1 /src
parent08a30e89ef10f1ef9f29b754b61ca7593d475f64 (diff)
parent46d84194a46033f945f9cfc7c4f61f52b0c3ae9e (diff)
downloadscala-73784d78fdbd4feb07a8446a8336dd203c1be866.tar.gz
scala-73784d78fdbd4feb07a8446a8336dd203c1be866.tar.bz2
scala-73784d78fdbd4feb07a8446a8336dd203c1be866.zip
Merge pull request #3488 from retronym/ticket/8245
SI-8245 Fix regression in interplay between lazy val, return
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Contexts.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
index e5907e1a0f..5b7956a757 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Contexts.scala
@@ -457,7 +457,9 @@ trait Contexts { self: Analyzer =>
c.prefix = prefixInChild
c.enclClass = if (isTemplateOrPackage) c else enclClass
c(ConstructorSuffix) = !isTemplateOrPackage && c(ConstructorSuffix)
- c.enclMethod = if (isDefDef) c else enclMethod
+
+ // SI-8245 `isLazy` need to skip lazy getters to ensure `return` binds to the right place
+ c.enclMethod = if (isDefDef && !owner.isLazy) c else enclMethod
registerContext(c.asInstanceOf[analyzer.Context])
debuglog("[context] ++ " + c.unit + " / " + tree.summaryString)