summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-25 09:57:51 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-25 09:57:51 +0000
commit9c2488391850128d247da2f7707f98af63168132 (patch)
treee0a095ed385b1a84e7ecedac9185407288750c7f /sources
parent360cd14a72d9aa990c5a13a543552e07ba6b88bc (diff)
downloadscala-9c2488391850128d247da2f7707f98af63168132.tar.gz
scala-9c2488391850128d247da2f7707f98af63168132.tar.bz2
scala-9c2488391850128d247da2f7707f98af63168132.zip
- Added a methods newAccessMethod and isAccessM...
- Added a methods newAccessMethod and isAccessMethod
Diffstat (limited to 'sources')
-rw-r--r--sources/scalac/symtab/Symbol.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/sources/scalac/symtab/Symbol.java b/sources/scalac/symtab/Symbol.java
index 1bdbf21bab..2df07c6b34 100644
--- a/sources/scalac/symtab/Symbol.java
+++ b/sources/scalac/symtab/Symbol.java
@@ -39,12 +39,13 @@ public abstract class Symbol implements Modifiers, Kinds {
// Attribues -------------------------------------------------------------
- public static final int IS_ROOT = 0x00000001;
- public static final int IS_ANONYMOUS = 0x00000002;
- public static final int IS_LABEL = 0x00000010;
- public static final int IS_THISTYPE = 0x20000000;
- public static final int IS_LOCALDUMMY = 0x40000000;
- public static final int IS_COMPOUND = 0x80000000;
+ public static final int IS_ROOT = 0x00000001;
+ public static final int IS_ANONYMOUS = 0x00000002;
+ public static final int IS_LABEL = 0x00000010;
+ public static final int IS_ACCESSMETHOD = 0x00000100;
+ public static final int IS_THISTYPE = 0x20000000;
+ public static final int IS_LOCALDUMMY = 0x40000000;
+ public static final int IS_COMPOUND = 0x80000000;
// Fields -------------------------------------------------------------
@@ -108,6 +109,13 @@ public abstract class Symbol implements Modifiers, Kinds {
return newTerm(pos, flags, name, 0);
}
+ /** Creates a new access method owned by this symbol. */
+ public final Symbol newAccessMethod(int pos, Name name) {
+ assert isClass(): Debug.show(this);
+ int flags = PRIVATE | FINAL | SYNTHETIC;
+ return newTerm(pos, flags, name, IS_ACCESSMETHOD);
+ }
+
/** Creates a new function owned by this symbol. */
public final Symbol newFunction(int pos, int flags, Name name) {
assert isTerm(): Debug.show(this);
@@ -724,6 +732,12 @@ public abstract class Symbol implements Modifiers, Kinds {
return (flags & ACCESSOR) != 0;
}
+ /** Does this symbol denote an access method? (a method to access
+ * private of protected members from inner classes) */
+ public final boolean isAccessMethod() {
+ return (attrs & IS_ACCESSMETHOD) != 0;
+ }
+
/** Is this symbol locally defined? I.e. not a member of a class or module */
public final boolean isLocal() {
return owner.kind == VAL &&