diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2007-08-23 09:55:45 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2007-08-23 09:55:45 +0000 |
commit | 8d96aea0a2d626e78a2f6477cb739447a17be153 (patch) | |
tree | 020d35073560c70715eadd2841656a8715bebe7b /src | |
parent | 62cd29a17818625f9a0ec84ffdac827281ae6265 (diff) | |
download | scala-8d96aea0a2d626e78a2f6477cb739447a17be153.tar.gz scala-8d96aea0a2d626e78a2f6477cb739447a17be153.tar.bz2 scala-8d96aea0a2d626e78a2f6477cb739447a17be153.zip |
Fixed bug #1287, lazy vals in trait methods.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/transform/LazyVals.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/transform/LazyVals.scala b/src/compiler/scala/tools/nsc/transform/LazyVals.scala index e4cfa6029f..74fa713430 100644 --- a/src/compiler/scala/tools/nsc/transform/LazyVals.scala +++ b/src/compiler/scala/tools/nsc/transform/LazyVals.scala @@ -42,6 +42,8 @@ abstract class LazyVals extends Transform { /** Perform the following transformations: * - for a lazy accessor inside a method, make it check the initialization bitmap * - for all methods, add enough int vars to allow one flag per lazy local value + * - remove ACCESSOR flags: accessors in traits are not statically implemented, + * but moved to the host class. local lazy values should be statically implemented. */ override def transform(tree: Tree): Tree = { val sym = tree.symbol @@ -51,7 +53,7 @@ abstract class LazyVals extends Transform { val idx = lazyVals(sym.enclMethod) val rhs1 = mkLazyDef(sym.enclMethod, super.transform(rhs), idx) lazyVals(sym.owner) = idx + 1 - sym.resetFlag(LAZY) + sym.resetFlag(LAZY | ACCESSOR) rhs1 } else super.transform(rhs) |