summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/Symbols.scala
diff options
context:
space:
mode:
authorEugene Vigdorchik <eugene.vigdorchik@gmail.com>2013-04-08 14:12:26 +0400
committerEugene Vigdorchik <eugene.vigdorchik@gmail.com>2013-04-08 16:12:20 +0400
commit2885eb0b2d49c33c707cecd2ee7b9588fe3f76ab (patch)
tree4ae9b127439ae8dec0a8da3f0461130437dae2d8 /src/reflect/scala/reflect/internal/Symbols.scala
parent53e031f55386d131b1aaa5fb93ee1a3ac6bce646 (diff)
downloadscala-2885eb0b2d49c33c707cecd2ee7b9588fe3f76ab.tar.gz
scala-2885eb0b2d49c33c707cecd2ee7b9588fe3f76ab.tar.bz2
scala-2885eb0b2d49c33c707cecd2ee7b9588fe3f76ab.zip
Revert "SI-6387 Clones accessor before name expansion"
This reverts commit 4e10b2c833fa846c68b81e94a08d867e7de656aa. Add 6387 test to pending and 7341 to up-to-date.
Diffstat (limited to 'src/reflect/scala/reflect/internal/Symbols.scala')
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala35
1 files changed, 11 insertions, 24 deletions
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 7274eeafe0..45c16b7302 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -2538,32 +2538,20 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
}
/** change name by appending $$<fully-qualified-name-of-class `base`>
- * Do the same for any accessed symbols or setters/getters.
- * If the accessor to be renamed is overriding a base symbol, enter
- * a cloned symbol with the original name but without ACCESSOR flag.
+ * Do the same for any accessed symbols or setters/getters
*/
override def expandName(base: Symbol) {
- def expand(sym: Symbol) {
- if ((sym eq NoSymbol) || (sym hasFlag EXPANDEDNAME)) () // skip
- else sym setFlag EXPANDEDNAME setName nme.expandedName(sym.name.toTermName, base)
- }
- def cloneAndExpand(accessor: Symbol) {
- val clone = accessor.cloneSymbol(accessor.owner, (accessor.flags | ARTIFACT) & ~ACCESSOR)
- expand(accessor)
- log(s"Expanded overriding accessor to $accessor, but cloned $clone to preserve override")
- accessor.owner.info.decls enter clone
- }
- def expandAccessor(accessor: Symbol) {
- if (accessor.isOverridingSymbol) cloneAndExpand(accessor) else expand(accessor)
- }
- if (hasAccessorFlag && !isDeferred) {
- expand(accessed)
- }
- else if (hasGetter) {
- expandAccessor(getter(owner))
- expandAccessor(setter(owner))
+ if (!hasFlag(EXPANDEDNAME)) {
+ setFlag(EXPANDEDNAME)
+ if (hasAccessorFlag && !isDeferred) {
+ accessed.expandName(base)
+ }
+ else if (hasGetter) {
+ getter(owner).expandName(base)
+ setter(owner).expandName(base)
+ }
+ name = nme.expandedName(name.toTermName, base)
}
- expand(this)
}
protected def doCookJavaRawInfo() {
@@ -3235,7 +3223,6 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
override def companionModule = NoSymbol
override def companionSymbol = NoSymbol
override def isSubClass(that: Symbol) = false
- override def isOverridingSymbol = false
override def filter(cond: Symbol => Boolean) = this
override def defString: String = toString
override def locationString: String = ""