]> source.dussan.org Git - aspectj.git/commitdiff
generics
authoraclement <aclement>
Fri, 13 Aug 2010 17:39:31 +0000 (17:39 +0000)
committeraclement <aclement>
Fri, 13 Aug 2010 17:39:31 +0000 (17:39 +0000)
13 files changed:
org.aspectj.matcher/src/org/aspectj/weaver/BoundedReferenceType.java
org.aspectj.matcher/src/org/aspectj/weaver/BoundedReferenceTypeDelegate.java
org.aspectj.matcher/src/org/aspectj/weaver/ConcreteTypeMunger.java
org.aspectj.matcher/src/org/aspectj/weaver/CrosscuttingMembers.java
org.aspectj.matcher/src/org/aspectj/weaver/Dump.java
org.aspectj.matcher/src/org/aspectj/weaver/GeneratedReferenceTypeDelegate.java
org.aspectj.matcher/src/org/aspectj/weaver/IntMap.java
org.aspectj.matcher/src/org/aspectj/weaver/JoinPointSignature.java
org.aspectj.matcher/src/org/aspectj/weaver/Lint.java
org.aspectj.matcher/src/org/aspectj/weaver/ReferenceType.java
org.aspectj.matcher/src/org/aspectj/weaver/ResolvedMemberImpl.java
org.aspectj.matcher/src/org/aspectj/weaver/Shadow.java
org.aspectj.matcher/src/org/aspectj/weaver/TypeVariableReferenceType.java

index 68c18c4a221b9b5d55ceb832289ce643293a16b5..30a2e4e4cc9bb215c4da559959cb4c5cadb91a48 100644 (file)
@@ -96,7 +96,7 @@ public class BoundedReferenceType extends ReferenceType {
        }
 
        @Override
-       public UnresolvedType parameterize(Map typeBindings) {
+       public UnresolvedType parameterize(Map<String, UnresolvedType> typeBindings) {
                if (this.kind == UNBOUND) {
                        return this;
                }
index 03a2c4ff8e5626854eb0c5955f23923fb087fa30..a9db7b6991edfda1fc0edae28e888602ac4f1df3 100644 (file)
@@ -6,6 +6,7 @@ package org.aspectj.weaver;
 import java.util.Collection;
 import java.util.Collections;
 
+import org.aspectj.weaver.patterns.Declare;
 import org.aspectj.weaver.patterns.PerClause;
 
 class BoundedReferenceTypeDelegate extends AbstractReferenceTypeDelegate {
@@ -102,16 +103,16 @@ class BoundedReferenceTypeDelegate extends AbstractReferenceTypeDelegate {
                return resolvedTypeX.getPerClause();
        }
 
-       public Collection getDeclares() {
+       public Collection<Declare> getDeclares() {
                return resolvedTypeX.getDeclares();
        }
 
-       public Collection getTypeMungers() {
+       public Collection<ConcreteTypeMunger> getTypeMungers() {
                return resolvedTypeX.getTypeMungers();
        }
 
-       public Collection getPrivilegedAccesses() {
-               return Collections.EMPTY_LIST;
+       public Collection<ResolvedMember> getPrivilegedAccesses() {
+               return Collections.emptyList();
        }
 
        public int getModifiers() {
index 8f86876225574fdae329f309d17280022383db6c..81cf351a92b5603f2ed87d30db37c61261843a81 100644 (file)
@@ -38,8 +38,7 @@ public abstract class ConcreteTypeMunger implements PartialOrder.PartialComparab
                ResolvedTypeMunger otherTypeMunger = o.getMunger();
                ResolvedTypeMunger thisTypeMunger = getMunger();
                if (thisTypeMunger instanceof NewConstructorTypeMunger && otherTypeMunger instanceof NewConstructorTypeMunger) {
-                       return ((otherTypeMunger == null) ? (thisTypeMunger == null) : ((NewConstructorTypeMunger) otherTypeMunger)
-                                       .equivalentTo(thisTypeMunger))
+                       return (((NewConstructorTypeMunger) otherTypeMunger).equivalentTo(thisTypeMunger))
                                        && ((o.getAspectType() == null) ? (getAspectType() == null) : o.getAspectType().equals(getAspectType()));
                } else {
                        return ((otherTypeMunger == null) ? (thisTypeMunger == null) : otherTypeMunger.equals(thisTypeMunger))
index 23662c002f26e437f909b63febc9604df76b9922..0b514d6ca196b7765913fe81c7298ad2d007bad9 100644 (file)
@@ -73,8 +73,8 @@ public class CrosscuttingMembers {
                this.shouldConcretizeIfNeeded = shouldConcretizeIfNeeded;
        }
 
-       private final Hashtable cflowFields = new Hashtable();
-       private final Hashtable cflowBelowFields = new Hashtable();
+       private final Hashtable<String, Object> cflowFields = new Hashtable<String, Object>();
+       private final Hashtable<String, Object> cflowBelowFields = new Hashtable<String, Object>();
 
        // public void addConcreteShadowMungers(Collection c) {
        // shadowMungers.addAll(c);
@@ -558,11 +558,11 @@ public class CrosscuttingMembers {
                return declareTypeEow;
        }
 
-       public Map getCflowBelowFields() {
+       public Map<String, Object> getCflowBelowFields() {
                return cflowBelowFields;
        }
 
-       public Map getCflowFields() {
+       public Map<String, Object> getCflowFields() {
                return cflowFields;
        }
 
index 4c0d67ee00380d18d042de5ddf659e00e69ed115..8d9aefda72c98a3a032f786bf6d6c99d6eb31999 100644 (file)
@@ -46,7 +46,7 @@ public class Dump {
        public static final String DUMP_EXCLUDED = "Excluded";
        public static final String NULL_OR_EMPTY = "Empty";
 
-       private static Class exceptionClass;
+       private static Class<?> exceptionClass;
        private static IMessage.Kind conditionKind = IMessage.ABORT;
        private static File directory = new File(".");
 
index c819ac3219bf672ccb2a927a0646a994dcf95c8d..e396b4025495da9928ecc158e0fe5ca5d99e5f9a 100644 (file)
@@ -11,6 +11,7 @@ package org.aspectj.weaver;
 
 import java.util.Collection;
 
+import org.aspectj.weaver.patterns.Declare;
 import org.aspectj.weaver.patterns.PerClause;
 
 /**
@@ -115,15 +116,15 @@ public class GeneratedReferenceTypeDelegate extends AbstractReferenceTypeDelegat
                throw new UnsupportedOperationException("Not supported for GeneratedReferenceTypeDelegate");
        }
 
-       public Collection getDeclares() {
+       public Collection<Declare> getDeclares() {
                throw new UnsupportedOperationException("Not supported for GeneratedReferenceTypeDelegate");
        }
 
-       public Collection getTypeMungers() {
+       public Collection<ConcreteTypeMunger> getTypeMungers() {
                throw new UnsupportedOperationException("Not supported for GeneratedReferenceTypeDelegate");
        }
 
-       public Collection getPrivilegedAccesses() {
+       public Collection<ResolvedMember> getPrivilegedAccesses() {
                throw new UnsupportedOperationException("Not supported for GeneratedReferenceTypeDelegate");
        }
 
index 6f37f20f2275d38640fdc1cbd4ba3229b732dada..c0af738ba38a223c5f6fbcdd9a79ecd84bbb2ac9 100644 (file)
@@ -24,7 +24,7 @@ public class IntMap {
        // XXX begin hack to avoid a signature refactoring in Pointcut
        private ResolvedType concreteAspect;
        private ShadowMunger enclosingAdvice;
-       private List/* ResolvedPointcutDefinition */enclosingDefinition = new ArrayList();
+       private List<ResolvedPointcutDefinition> enclosingDefinition = new ArrayList<ResolvedPointcutDefinition>();
 
        public void pushEnclosingDefinition(ResolvedPointcutDefinition def) {
                enclosingDefinition.add(def);
@@ -35,9 +35,10 @@ public class IntMap {
        }
 
        public ResolvedPointcutDefinition peekEnclosingDefinition() {
-               if (enclosingDefinition.size() == 0)
+               if (enclosingDefinition.size() == 0) {
                        return null;
-               return (ResolvedPointcutDefinition) enclosingDefinition.get(enclosingDefinition.size() - 1);
+               }
+               return enclosingDefinition.get(enclosingDefinition.size() - 1);
        }
 
        public boolean directlyInAdvice() {
@@ -53,10 +54,11 @@ public class IntMap {
        }
 
        public Member getAdviceSignature() {
-               if (enclosingAdvice instanceof Advice)
+               if (enclosingAdvice instanceof Advice) {
                        return ((Advice) enclosingAdvice).getSignature();
-               else
+               } else {
                        return null;
+               }
        }
 
        public ResolvedType getConcreteAspect() {
@@ -99,8 +101,9 @@ public class IntMap {
                if (key >= map.length) {
                        int[] tmp = new int[key * 2 + 1]; // ??? better expansion function
                        System.arraycopy(map, 0, tmp, 0, map.length);
-                       for (int i = map.length, len = tmp.length; i < len; i++)
+                       for (int i = map.length, len = tmp.length; i < len; i++) {
                                tmp[i] = MISSING;
+                       }
                        map = tmp;
                }
                map[key] = val;
index 75a7618a216e1eea26b020dd0edf2a841034beef..39bbf4053cc4df2809cdf7809fe911f4aa145534 100644 (file)
@@ -277,7 +277,7 @@ public class JoinPointSignature implements ResolvedMember {
                return realMember.getAnnotations();
        }
 
-       public Collection getDeclaringTypes(World world) {
+       public Collection<ResolvedType> getDeclaringTypes(World world) {
                throw new UnsupportedOperationException("Adrian doesn't think you should be calling this...");
        }
 
index 70d3c9106e2ae48f414f37992e6c6299d132e747..099adcd42d28b440bbc68325630bdeb5daf028eb 100644 (file)
@@ -139,19 +139,23 @@ public class Lint {
        private static Trace trace = TraceFactory.getTraceFactory().getTrace(Lint.class);
 
        public Lint(World world) {
-               if (trace.isTraceEnabled())
+               if (trace.isTraceEnabled()) {
                        trace.enter("<init>", this, world);
+               }
                this.world = world;
-               if (trace.isTraceEnabled())
+               if (trace.isTraceEnabled()) {
                        trace.exit("<init>");
+               }
        }
 
        public void setAll(String messageKind) {
-               if (trace.isTraceEnabled())
+               if (trace.isTraceEnabled()) {
                        trace.enter("setAll", this, messageKind);
+               }
                setAll(getMessageKind(messageKind));
-               if (trace.isTraceEnabled())
+               if (trace.isTraceEnabled()) {
                        trace.exit("setAll");
+               }
        }
 
        private void setAll(IMessage.Kind messageKind) {
@@ -161,15 +165,16 @@ public class Lint {
        }
 
        public void setFromProperties(File file) {
-               if (trace.isTraceEnabled())
+               if (trace.isTraceEnabled()) {
                        trace.enter("setFromProperties", this, file);
+               }
                InputStream s = null;
                try {
                        s = new FileInputStream(file);
                        setFromProperties(s);
                } catch (IOException ioe) {
-                       MessageUtil.error(world.getMessageHandler(), WeaverMessages.format(WeaverMessages.XLINT_LOAD_ERROR, file.getPath(), ioe
-                                       .getMessage()));
+                       MessageUtil.error(world.getMessageHandler(),
+                                       WeaverMessages.format(WeaverMessages.XLINT_LOAD_ERROR, file.getPath(), ioe.getMessage()));
                } finally {
                        if (s != null) {
                                try {
@@ -180,8 +185,9 @@ public class Lint {
                        }
                }
 
-               if (trace.isTraceEnabled())
+               if (trace.isTraceEnabled()) {
                        trace.exit("setFromProperties");
+               }
        }
 
        public void loadDefaultProperties() {
@@ -193,8 +199,8 @@ public class Lint {
                try {
                        setFromProperties(s);
                } catch (IOException ioe) {
-                       MessageUtil.error(world.getMessageHandler(), WeaverMessages.format(WeaverMessages.XLINTDEFAULT_LOAD_PROBLEM, ioe
-                                       .getMessage()));
+                       MessageUtil.error(world.getMessageHandler(),
+                                       WeaverMessages.format(WeaverMessages.XLINTDEFAULT_LOAD_PROBLEM, ioe.getMessage()));
                } finally {
                        try {
                                s.close();
@@ -211,6 +217,7 @@ public class Lint {
                setFromProperties(p);
        }
 
+       @SuppressWarnings("rawtypes")
        public void setFromProperties(Properties properties) {
                for (Iterator i = properties.entrySet().iterator(); i.hasNext();) {
                        Map.Entry entry = (Map.Entry) i.next();
@@ -232,11 +239,11 @@ public class Lint {
        }
 
        // temporarily suppress the given lint messages
-       public void suppressKinds(Collection lintKind) {
-               if (lintKind.isEmpty())
+       public void suppressKinds(Collection<Kind> lintKind) {
+               if (lintKind.isEmpty()) {
                        return;
-               for (Iterator iter = lintKind.iterator(); iter.hasNext();) {
-                       Kind k = (Kind) iter.next();
+               }
+               for (Kind k : lintKind) {
                        k.setSuppressed(true);
                }
        }
@@ -255,12 +262,13 @@ public class Lint {
        }
 
        private IMessage.Kind getMessageKind(String v) {
-               if (v.equals("ignore"))
+               if (v.equals("ignore")) {
                        return null;
-               else if (v.equals("warning"))
+               } else if (v.equals("warning")) {
                        return IMessage.WARNING;
-               else if (v.equals("error"))
+               } else if (v.equals("error")) {
                        return IMessage.ERROR;
+               }
 
                MessageUtil.error(world.getMessageHandler(), WeaverMessages.format(WeaverMessages.XLINT_VALUE_ERROR, v));
                return null;
@@ -308,8 +316,9 @@ public class Lint {
                }
 
                public void signal(String info, ISourceLocation location) {
-                       if (kind == null)
+                       if (kind == null) {
                                return;
+                       }
 
                        String text = MessageFormat.format(message, new Object[] { info });
                        text += " [Xlint:" + name + "]";
@@ -317,8 +326,9 @@ public class Lint {
                }
 
                public void signal(String[] infos, ISourceLocation location, ISourceLocation[] extraLocations) {
-                       if (kind == null)
+                       if (kind == null) {
                                return;
+                       }
 
                        String text = MessageFormat.format(message, (Object[]) infos);
                        text += " [Xlint:" + name + "]";
index 10fb6c2d78552a04ab45ae46486bc9f2d43966b4..17d3ca3ec3b3ad69317a3fe4eb805d2ab249dcd3 100644 (file)
@@ -53,7 +53,7 @@ public class ReferenceType extends ResolvedType {
        ResolvedMember[] parameterizedPointcuts = null;
        WeakReference<ResolvedType[]> parameterizedInterfaces = new WeakReference<ResolvedType[]>(null);
        Collection<Declare> parameterizedDeclares = null;
-       Collection parameterizedTypeMungers = null;
+       // Collection parameterizedTypeMungers = null;
 
        // During matching it can be necessary to temporary mark types as annotated. For example
        // a declare @type may trigger a separate declare parents to match, and so the annotation
index 7360b2fe1c6eb60504de29b23c1944c3f34396c1..14a6bc4d481896ea7a1a6568d7b96eeb68dac16e 100644 (file)
@@ -27,7 +27,7 @@ import org.aspectj.bridge.ISourceLocation;
  * @author PARC
  * @author Andy Clement
  */
-public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, TypeVariableDeclaringElement, ResolvedMember {
+public class ResolvedMemberImpl extends MemberImpl implements IHasPosition, ResolvedMember {
 
        private String[] parameterNames = null;
        protected UnresolvedType[] checkedExceptions = UnresolvedType.NONE;
index c8c3121db9f555ff2fa9333cc66240dba07522e1..7d636f40f95c386dfe2533e76074cec615bccfc3 100644 (file)
@@ -85,8 +85,9 @@ public abstract class Shadow {
         * @throws IllegalStateException if there is no this here
         */
        public final UnresolvedType getThisType() {
-               if (!hasThis())
+               if (!hasThis()) {
                        throw new IllegalStateException("no this");
+               }
                if (getKind().isEnclosingKind()) {
                        return getSignature().getDeclaringType();
                } else {
@@ -120,8 +121,9 @@ public abstract class Shadow {
         * @throws IllegalStateException if there is no target here
         */
        public final UnresolvedType getTargetType() {
-               if (!hasTarget())
+               if (!hasTarget()) {
                        throw new IllegalStateException("no target");
+               }
                return getSignature().getDeclaringType();
        }
 
@@ -133,8 +135,9 @@ public abstract class Shadow {
        public abstract Var getTargetVar();
 
        public UnresolvedType[] getArgTypes() {
-               if (getKind() == FieldSet)
+               if (getKind() == FieldSet) {
                        return new UnresolvedType[] { getSignature().getReturnType() };
+               }
                return getSignature().getParameterTypes();
        }
 
@@ -153,14 +156,17 @@ public abstract class Shadow {
                int dims = 1;
                while (pos < s.length()) {
                        pos++;
-                       if (pos < s.length())
+                       if (pos < s.length()) {
                                dims += (s.charAt(pos) == '[' ? 1 : 0);
+                       }
                }
-               if (dims == 1)
+               if (dims == 1) {
                        return new ResolvedType[] { ResolvedType.INT };
+               }
                ResolvedType[] someInts = new ResolvedType[dims];
-               for (int i = 0; i < dims; i++)
+               for (int i = 0; i < dims; i++) {
                        someInts[i] = ResolvedType.INT;
+               }
                return someInts;
        }
 
@@ -171,20 +177,23 @@ public abstract class Shadow {
                if (isShadowForMonitor()) {
                        return UnresolvedType.ARRAY_WITH_JUST_OBJECT;
                }
-               if (getKind() == FieldSet)
+               if (getKind() == FieldSet) {
                        return new UnresolvedType[] { getResolvedSignature().getGenericReturnType() };
+               }
                return getResolvedSignature().getGenericParameterTypes();
        }
 
        public UnresolvedType getArgType(int arg) {
-               if (getKind() == FieldSet)
+               if (getKind() == FieldSet) {
                        return getSignature().getReturnType();
+               }
                return getSignature().getParameterTypes()[arg];
        }
 
        public int getArgCount() {
-               if (getKind() == FieldSet)
+               if (getKind() == FieldSet) {
                        return 1;
+               }
                return getSignature().getParameterTypes().length;
        }
 
@@ -263,12 +272,13 @@ public abstract class Shadow {
        }
 
        public UnresolvedType getReturnType() {
-               if (kind == ConstructorCall)
+               if (kind == ConstructorCall) {
                        return getSignature().getDeclaringType();
-               else if (kind == FieldSet)
+               } else if (kind == FieldSet) {
                        return ResolvedType.VOID;
-               else if (kind == SynchronizationLock || kind == SynchronizationUnlock)
+               } else if (kind == SynchronizationLock || kind == SynchronizationUnlock) {
                        return ResolvedType.VOID;
+               }
                return getResolvedSignature().getGenericReturnType();
        }
 
@@ -337,8 +347,9 @@ public abstract class Shadow {
        public static int howMany(int i) {
                int count = 0;
                for (int j = 0; j < SHADOW_KINDS.length; j++) {
-                       if ((i & SHADOW_KINDS[j].bit) != 0)
+                       if ((i & SHADOW_KINDS[j].bit) != 0) {
                                count++;
+                       }
                }
                return count;
        }
@@ -423,10 +434,11 @@ public abstract class Shadow {
 
                public String getSimpleName() {
                        int dash = getName().lastIndexOf('-');
-                       if (dash == -1)
+                       if (dash == -1) {
                                return getName();
-                       else
+                       } else {
                                return getName().substring(dash + 1);
+                       }
                }
 
                public static Kind read(DataInputStream s) throws IOException {
@@ -471,9 +483,10 @@ public abstract class Shadow {
         */
        protected boolean checkMunger(ShadowMunger munger) {
                if (munger.mustCheckExceptions()) {
-                       for (Iterator i = munger.getThrownExceptions().iterator(); i.hasNext();) {
-                               if (!checkCanThrow(munger, (ResolvedType) i.next()))
+                       for (Iterator<ResolvedType> i = munger.getThrownExceptions().iterator(); i.hasNext();) {
+                               if (!checkCanThrow(munger, i.next())) {
                                        return false;
+                               }
                        }
                }
                return true;
@@ -506,24 +519,27 @@ public abstract class Shadow {
        private boolean isDeclaredException(ResolvedType resolvedTypeX, Member member) {
                ResolvedType[] excs = getIWorld().resolve(member.getExceptions(getIWorld()));
                for (int i = 0, len = excs.length; i < len; i++) {
-                       if (excs[i].isAssignableFrom(resolvedTypeX))
+                       if (excs[i].isAssignableFrom(resolvedTypeX)) {
                                return true;
+                       }
                }
                return false;
        }
 
        public void addMunger(ShadowMunger munger) {
                if (checkMunger(munger)) {
-                       if (mungers == Collections.EMPTY_LIST)
+                       if (mungers == Collections.EMPTY_LIST) {
                                mungers = new ArrayList();
+                       }
                        this.mungers.add(munger);
                }
        }
 
        public final void implement() {
                sortMungers();
-               if (mungers == null)
+               if (mungers == null) {
                        return;
+               }
                prepareForMungers();
                implementMungers();
        }
@@ -537,8 +553,7 @@ public abstract class Shadow {
 
                if (sorted == null) {
                        // this means that we have circular dependencies
-                       for (Iterator i = mungers.iterator(); i.hasNext();) {
-                               ShadowMunger m = (ShadowMunger) i.next();
+                       for (ShadowMunger m : mungers) {
                                getIWorld().getMessageHandler().handleMessage(
                                                MessageUtil.error(WeaverMessages.format(WeaverMessages.CIRCULAR_DEPENDENCY, this), m.getSourceLocation()));
                        }
@@ -552,7 +567,7 @@ public abstract class Shadow {
 
                        // Stores a set of strings of the form 'aspect1:aspect2' which indicates there is no
                        // precedence specified between the two aspects at this shadow.
-                       Set clashingAspects = new HashSet();
+                       Set<String> clashingAspects = new HashSet<String>();
                        int max = mungers.size();
 
                        // Compare every pair of advice mungers
@@ -580,20 +595,21 @@ public abstract class Shadow {
                                                                if (order != null && order.equals(new Integer(0))) {
                                                                        String key = adviceA.getDeclaringAspect() + ":" + adviceB.getDeclaringAspect();
                                                                        String possibleExistingKey = adviceB.getDeclaringAspect() + ":" + adviceA.getDeclaringAspect();
-                                                                       if (!clashingAspects.contains(possibleExistingKey))
+                                                                       if (!clashingAspects.contains(possibleExistingKey)) {
                                                                                clashingAspects.add(key);
+                                                                       }
                                                                }
                                                        }
                                                }
                                        }
                                }
                        }
-                       for (Iterator iter = clashingAspects.iterator(); iter.hasNext();) {
-                               String element = (String) iter.next();
+                       for (Iterator<String> iter = clashingAspects.iterator(); iter.hasNext();) {
+                               String element = iter.next();
                                String aspect1 = element.substring(0, element.indexOf(":"));
                                String aspect2 = element.substring(element.indexOf(":") + 1);
-                               getIWorld().getLint().unorderedAdviceAtShadow.signal(new String[] { this.toString(), aspect1, aspect2 }, this
-                                               .getSourceLocation(), null);
+                               getIWorld().getLint().unorderedAdviceAtShadow.signal(new String[] { this.toString(), aspect1, aspect2 },
+                                               this.getSourceLocation(), null);
                        }
                }
        }
@@ -655,12 +671,13 @@ public abstract class Shadow {
         * Convert a bit array for the shadow kinds into a set of them... should only be used for testing - mainline code should do bit
         * manipulation!
         */
-       public static Set toSet(int i) {
-               Set results = new HashSet();
+       public static Set<Kind> toSet(int i) {
+               Set<Kind> results = new HashSet<Kind>();
                for (int j = 0; j < Shadow.SHADOW_KINDS.length; j++) {
                        Kind k = Shadow.SHADOW_KINDS[j];
-                       if (k.isSet(i))
+                       if (k.isSet(i)) {
                                results.add(k);
+                       }
                }
                return results;
        }
index d3cecff004ee18df90e72d71b6af4324d6d0dfc3..5579dfa9f810911ac16936ee9270029bc0959b9b 100644 (file)
@@ -47,8 +47,8 @@ public class TypeVariableReferenceType extends ReferenceType implements TypeVari
        }
 
        @Override
-       public UnresolvedType parameterize(Map typeBindings) {
-               UnresolvedType ut = (UnresolvedType) typeBindings.get(getName());
+       public UnresolvedType parameterize(Map<String, UnresolvedType> typeBindings) {
+               UnresolvedType ut = typeBindings.get(getName());
                if (ut != null) {
                        return world.resolve(ut);
                }