Package org.aspectj.weaver

Examples of org.aspectj.weaver.UnresolvedType.resolve()


        if (!hasThis()) { // pr197719 - static accessor has been created to handle the call
          if (Modifier.isStatic(enclosingMethod.getAccessFlags()) && enclosingMethod.getName().startsWith("access$")) {
            targetType = BcelWorld.fromBcel(enclosingMethod.getArgumentTypes()[0]);
          }
        } else {
          if (!targetType.resolve(world).isAssignableFrom(getThisType().resolve(world))) {
            throw new BCException("bad bytecode");
          }
          targetType = getThisType();
        }
      }
View Full Code Here


      while (true) {
        UnresolvedType declaringType = searchType.getDeclaringType();
        if (declaringType == null) {
          break;
        }
        searchType = declaringType.resolve(scope.getWorld());
        pointcutDef = searchType.findPointcut(name);
        if (pointcutDef != null) {
          // make this a static reference
          onType = searchType;
          break;
View Full Code Here

      boolean reportProblem = false;
      if (parameterTypes[i].isTypeVariableReference() && p.getExactType().isTypeVariableReference()) {
        UnresolvedType One = ((TypeVariableReference) parameterTypes[i]).getTypeVariable().getFirstBound();
        UnresolvedType Two = ((TypeVariableReference) p.getExactType()).getTypeVariable().getFirstBound();
        reportProblem = !One.resolve(scope.getWorld()).isAssignableFrom(Two.resolve(scope.getWorld()));
      } else {
        reportProblem = !p.matchesSubtypes(parameterTypes[i]) && !p.getExactType().equals(UnresolvedType.OBJECT);
      }
      if (reportProblem) {
        scope.message(IMessage.ERROR, this, "incompatible type, expected " + parameterTypes[i].getName() + " found " + p
View Full Code Here

            // class names in constant pool use '/' instead of '.', from JVM Spec 2nd ed. par. 4.2
            String outerClsName = cpool.getConstantUtf8(outerClsInfo.getNameIndex()).getValue().replace('/', '.');

            UnresolvedType outer = UnresolvedType.forName(outerClsName);
            return outer.resolve(getResolvedTypeX().getWorld());
          }
        }
      }
    }
View Full Code Here

    // try finding outer class name by assuming standard class name mangling convention of javac for this class
    int lastDollar = className.lastIndexOf('$');
    String superClassName = className.substring(0, lastDollar);
    UnresolvedType outer = UnresolvedType.forName(superClassName);
    return outer.resolve(getResolvedTypeX().getWorld());
  }

  private void ensureGenericInfoProcessed() {
    if ((bitflag & DISCOVERED_DECLARED_SIGNATURE) != 0) {
      return;
View Full Code Here

      UnresolvedType mtmbgoParameter = methodThatMightBeGettingOverridden.getParameterTypes()[p];
      UnresolvedType ptype = methodParamsArray[p];

      if (mtmbgoParameter.isTypeVariableReference()) {
        if (!mtmbgoParameter.resolve(w).isAssignableFrom(ptype.resolve(w))) {
          sameParams = false;
        }
      } else {
        // old condition:
        boolean b = !methodThatMightBeGettingOverridden.getParameterTypes()[p].getErasureSignature().equals(
View Full Code Here

      if (methodName.startsWith("ajc$inlineAccessMethod") || methodName.startsWith("ajc$superDispatch")) {
        ResolvedMember resolvedDooberry = world.resolve(declaredSig);
        pnames = resolvedDooberry.getParameterNames();
      } else {
        ResolvedMember realthing = AjcMemberMaker.interMethodDispatcher(rm.resolve(world), memberHostType).resolve(world);
        ResolvedMember theRealMember = findResolvedMemberNamed(memberHostType.resolve(world), realthing.getName());
        if (theRealMember != null) {
          pnames = theRealMember.getParameterNames();
          // static ITDs don't need any parameter shifting
          if (pnames.length > 0 && pnames[0].equals("ajc$this_")) {
            String[] pnames2 = new String[pnames.length - 1];
View Full Code Here

          } else {
            ResolvedMember realthing = AjcMemberMaker.interMethodDispatcher(rm.resolve(world), memberHostType).resolve(
                world);
            // ResolvedMember resolvedDooberry =
            // world.resolve(realthing);
            ResolvedMember theRealMember = findResolvedMemberNamed(memberHostType.resolve(world), realthing.getName());
            // AMC temp guard for M4
            if (theRealMember == null) {
              throw new UnsupportedOperationException(
                  "Known limitation in M4 - can't find ITD members when type variable is used as an argument and has upper bound specified");
            }
View Full Code Here

                  "Known limitation in M4 - can't find ITD members when type variable is used as an argument and has upper bound specified");
            }
            annotations = theRealMember.getAnnotationTypes();
          }
        } else if (rm.getKind() == Member.CONSTRUCTOR) {
          ResolvedMember realThing = AjcMemberMaker.postIntroducedConstructor(memberHostType.resolve(world),
              rm.getDeclaringType(), rm.getParameterTypes());
          ResolvedMember resolvedDooberry = world.resolve(realThing);
          // AMC temp guard for M4
          if (resolvedDooberry == null) {
            throw new UnsupportedOperationException(
View Full Code Here

  private ReferenceType getOuterClass() {
    if (!isNestedClass()) throw new IllegalStateException("Can't get the outer class of a non-nested type");
    int lastDollar = javaClass.getClassName().lastIndexOf('$');
    String superClassName = javaClass.getClassName().substring(0,lastDollar);
    UnresolvedType outer = UnresolvedType.forName(superClassName);
    return (ReferenceType) outer.resolve(getResolvedTypeX().getWorld());
  }
 
  private Signature.FormalTypeParameter[] getFormalTypeParametersFromOuterClass() {
    List typeParameters = new ArrayList();
    ReferenceType outer = getOuterClass();
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.