diff options
author | Lukas Rytz <lukas.rytz@gmail.com> | 2015-09-22 16:41:40 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@gmail.com> | 2015-09-22 16:42:20 +0200 |
commit | b4cc68a79d70fe8911073c608aa6767244fe28de (patch) | |
tree | ca7e4df33c4e5404f18e0b664e28c7c8bc4e3375 /src/reflect/scala/reflect/internal/Symbols.scala | |
parent | cd2bbaaf70d2f35e23c0bd5f5c84240fa1c22d3f (diff) | |
parent | 03aaf05edda92344acc642fb9e58546a8a37d33c (diff) | |
download | scala-b4cc68a79d70fe8911073c608aa6767244fe28de.tar.gz scala-b4cc68a79d70fe8911073c608aa6767244fe28de.tar.bz2 scala-b4cc68a79d70fe8911073c608aa6767244fe28de.zip |
Merge commit '03aaf05' into merge-2.11-to-2.12-sep-22
Diffstat (limited to 'src/reflect/scala/reflect/internal/Symbols.scala')
-rw-r--r-- | src/reflect/scala/reflect/internal/Symbols.scala | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala index 05fdfb51ed..c3b2a8da08 100644 --- a/src/reflect/scala/reflect/internal/Symbols.scala +++ b/src/reflect/scala/reflect/internal/Symbols.scala @@ -503,6 +503,19 @@ trait Symbols extends api.Symbols { self: SymbolTable => case _ => new StubTermSymbol(this, name.toTermName, missingMessage) } + /** Given a field, construct a term symbol that represents the source construct that gave rise the the field */ + def sugaredSymbolOrSelf = { + val getter = getterIn(owner) + if (getter == NoSymbol) { + this + } else { + val result = owner.newValue(getter.name.toTermName, newFlags = getter.flags & ~Flags.METHOD).setPrivateWithin(getter.privateWithin).setInfo(getter.info.resultType) + val setter = setterIn(owner) + if (setter != NoSymbol) result.setFlag(Flags.MUTABLE) + result + } + } + // ----- locking and unlocking ------------------------------------------------------ // True if the symbol is unlocked. |