summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-07-25 04:32:28 -0700
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-07-25 04:32:28 -0700
commit41ee45eb86ae20875d2c79403d3436a65d2b125f (patch)
tree69ce3cc8481b95d1a41e1abf3672b05b92db7148
parent950c783e31f9cb5d4268cc83d824020c8345d910 (diff)
parente6f3a8f6d3d4607d60e74ab8658a40fb55915d69 (diff)
downloadscala-41ee45eb86ae20875d2c79403d3436a65d2b125f.tar.gz
scala-41ee45eb86ae20875d2c79403d3436a65d2b125f.tar.bz2
scala-41ee45eb86ae20875d2c79403d3436a65d2b125f.zip
Merge pull request #985 from scalamacros/ticket/6112
SI-6112 exposes symbol mutators in macro universe
-rw-r--r--src/reflect/scala/reflect/internal/Symbols.scala1
-rw-r--r--src/reflect/scala/reflect/makro/Universe.scala11
2 files changed, 10 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/Symbols.scala b/src/reflect/scala/reflect/internal/Symbols.scala
index 10d02376b1..6054af0ac2 100644
--- a/src/reflect/scala/reflect/internal/Symbols.scala
+++ b/src/reflect/scala/reflect/internal/Symbols.scala
@@ -78,6 +78,7 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
def asType: Type = tpe
def asTypeIn(site: Type): Type = site.memberType(this)
def asTypeConstructor: Type = typeConstructor
+ def setFlags(flags: FlagSet): this.type = setInternalFlags(flags)
def setInternalFlags(flag: Long): this.type = { setFlag(flag); this }
def setTypeSignature(tpe: Type): this.type = { setInfo(tpe); this }
def getAnnotations: List[AnnotationInfo] = { initialize; annotations }
diff --git a/src/reflect/scala/reflect/makro/Universe.scala b/src/reflect/scala/reflect/makro/Universe.scala
index a676f7f1de..d88e7e0bb8 100644
--- a/src/reflect/scala/reflect/makro/Universe.scala
+++ b/src/reflect/scala/reflect/makro/Universe.scala
@@ -24,8 +24,15 @@ abstract class Universe extends scala.reflect.api.Universe {
*/
trait SymbolContextApi extends SymbolApi with AttachableApi { this: Symbol =>
- // [Eugene++ to Martin] should we also add mutability methods here (similarly to what's done below for trees)?
- // I'm talking about `setAnnotations` and friends
+ def setFlags(flags: FlagSet): this.type
+
+ def setTypeSignature(tpe: Type): this.type
+
+ def setAnnotations(annots: AnnotationInfo*): this.type
+
+ def setName(name: Name): this.type
+
+ def setPrivateWithin(sym: Symbol): this.type
}
// Tree extensions ---------------------------------------------------------------