diff options
author | Paul Phillips <paulp@improving.org> | 2012-09-04 06:34:14 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-09-04 06:34:14 -0700 |
commit | 2355b656e030a7b968aa02de9a688f565b147581 (patch) | |
tree | ce378f0732fe6c3c6555c78b029c9273d90cbfc9 /src | |
parent | 1e934c3acceb205971963836bc3c1e4bbb01df6c (diff) | |
parent | cb393fcbe35d0a871f23189d791b44be1b826ed2 (diff) | |
download | scala-2355b656e030a7b968aa02de9a688f565b147581.tar.gz scala-2355b656e030a7b968aa02de9a688f565b147581.tar.bz2 scala-2355b656e030a7b968aa02de9a688f565b147581.zip |
Merge pull request #1217 from axel22/issue/6294
Fix SI-6294.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/icode/GenICode.scala | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala index 431802d185..739aa2b184 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/GenICode.scala @@ -121,10 +121,13 @@ abstract class GenICode extends SubComponent { m.native = m.symbol.hasAnnotation(definitions.NativeAttr) if (!m.isAbstractMethod && !m.native) { - if (m.symbol.isAccessor && m.symbol.accessed.hasStaticAnnotation) { + val staticfield = if (m.symbol.isAccessor && m.symbol.accessed.hasStaticAnnotation) { + val compClass = m.symbol.owner.companionClass + compClass.info.findMember(m.symbol.accessed.name, NoFlags, NoFlags, false) + } else NoSymbol + if (staticfield != NoSymbol) { // in companion object accessors to @static fields, we access the static field directly val hostClass = m.symbol.owner.companionClass - val staticfield = hostClass.info.findMember(m.symbol.accessed.name, NoFlags, NoFlags, false) if (m.symbol.isGetter) { ctx1.bb.emit(LOAD_FIELD(staticfield, true) setHostClass hostClass, tree.pos) |