diff options
author | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-09 23:06:17 +0100 |
---|---|---|
committer | Grzegorz Kossakowski <grzegorz.kossakowski@gmail.com> | 2014-02-09 23:06:17 +0100 |
commit | 73784d78fdbd4feb07a8446a8336dd203c1be866 (patch) | |
tree | 5a3b59cd2f16730b4d307669eec3b1e66dd51dc1 /src | |
parent | 08a30e89ef10f1ef9f29b754b61ca7593d475f64 (diff) | |
parent | 46d84194a46033f945f9cfc7c4f61f52b0c3ae9e (diff) | |
download | scala-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.scala | 4 |
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) |