]> source.dussan.org Git - aspectj.git/commitdiff
Upgrading to latest 1.9 compiler
authorAndy Clement <aclement@pivotal.io>
Fri, 17 Jun 2016 17:40:29 +0000 (10:40 -0700)
committerAndy Clement <aclement@pivotal.io>
Fri, 17 Jun 2016 17:40:29 +0000 (10:40 -0700)
50 files changed:
bcel-builder/src/org/aspectj/apache/bcel/classfile/ClassVisitor.java
bcel-builder/src/org/aspectj/apache/bcel/classfile/Module.java
bcel-builder/verifier-src/org/aspectj/apache/bcel/verifier/DescendingVisitor.java
bcel-builder/verifier-src/org/aspectj/apache/bcel/verifier/EmptyClassVisitor.java
lib/bcel/bcel-src.zip
lib/bcel/bcel-verifier-src.zip
lib/bcel/bcel-verifier.jar
lib/bcel/bcel.jar
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/AdviceDeclaration.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/KnownMessageSend.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/ast/ValidateAtAspectJAnnotationsVisitor.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/lookup/EclipseSourceType.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/compiler/problem/AjProblemReporter.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AsmHierarchyBuilder.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/CompactTypeStructureRepresentation.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/EclipseClassPathManager.java
org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/StatefulNameEnvironment.java
org.aspectj.ajdt.core/testsrc/org/aspectj/ajdt/internal/compiler/batch/BasicCommandTestCase.java
org.aspectj.ajdt.core/testsrc/org/aspectj/ajdt/internal/compiler/batch/BcweaverJarMaker.java
org.aspectj.ajdt.core/testsrc/org/aspectj/ajdt/internal/compiler/batch/BinaryFormsTestCase.java
org.aspectj.ajdt.core/testsrc/org/aspectj/ajdt/internal/core/builder/AsmBuilderTest.java
org.aspectj.ajdt.core/testsrc/org/aspectj/tools/ajc/AjcTestCase.java
org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip
org.eclipse.jdt.core/jdtcore-for-aspectj.jar
tests/bugs1810/493554/example/aspect/FooAspect$ajcMightHaveAspect.class [new file with mode: 0644]
tests/bugs1810/493554/example/aspect/FooAspect.class [new file with mode: 0644]
tests/bugs1810/493554/example/dep/Dep.class [new file with mode: 0644]
tests/bugs1810/493554/example/kusedep/Cmd.class [new file with mode: 0644]
tests/bugs1810/generics/Code.java [new file with mode: 0644]
tests/bugs190/modules/aspect1/Azpect1.java [new file with mode: 0644]
tests/bugs190/modules/cpl.sh [new file with mode: 0755]
tests/bugs190/modules/module1/Code.java [new file with mode: 0644]
tests/bugs190/modules/module1/a/b/c/Code.class [new file with mode: 0644]
tests/bugs190/modules/module1/module-info.class [new file with mode: 0644]
tests/bugs190/modules/module1/module-info.java [new file with mode: 0644]
tests/bugs190/modules/module1/module-one.jar [new file with mode: 0644]
tests/bugs190/modules/play/m [new file with mode: 0644]
tests/bugs190/modules/play/src/a/module-info.java [new file with mode: 0644]
tests/bugs190/modules/play/src/b/module-info.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/AllTests19.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java [new file with mode: 0644]
tests/src/org/aspectj/systemtest/ajc190/ajc190.xml [new file with mode: 0644]
tests/testsrc/org/aspectj/tests/TestsModuleTests.java
weaver5/java5-testsrc/org/aspectj/weaver/MemberTestCase15.java
weaver5/java5-testsrc/org/aspectj/weaver/reflect/ReflectionWorldTest.java

index 9280083a86130b2e03a87e7937a1b5f05cc2e8fc..f72da47ee83991c7b8bde801663b394983bfce8d 100644 (file)
@@ -162,4 +162,6 @@ public interface ClassVisitor {
        public void visitLocalVariableTypeTable(LocalVariableTypeTable obj);
 
        public void visitMethodParameters(MethodParameters methodParameters);
+       
+       public void visitModule(Module m);
 }
index 217f5fbd09df92b27951e0813e9e8893fae8c0eb..3041add34d46f175637dd0b8acd0fd64a3dcef83 100644 (file)
@@ -388,13 +388,14 @@ public final class Module extends Attribute {
        /**
         * @return deep copy of this attribute //
         */
-       // @Override
-       // public Attribute copy(ConstantPool constant_pool) {
-       // return (SourceFile) clone();
-       // }
+//      @Override
+//      public Attribute copy(ConstantPool constant_pool) {
+//              return (Module) clone();
+//      }
+       
        @Override
        public void accept(ClassVisitor v) {
-               v.visitSourceFile(this);
+               v.visitModule(this);
        }
        
        public Require[] getRequires() {
index 251b94663d6f3b6c29a8adb513b32d3ae40b900a..be8a558f3aa6b1d032fc399f4593e9f859c77524 100644 (file)
@@ -92,6 +92,7 @@ import org.aspectj.apache.bcel.classfile.LocalVariableTable;
 import org.aspectj.apache.bcel.classfile.LocalVariableTypeTable;
 import org.aspectj.apache.bcel.classfile.Method;
 import org.aspectj.apache.bcel.classfile.MethodParameters;
+import org.aspectj.apache.bcel.classfile.Module;
 import org.aspectj.apache.bcel.classfile.Signature;
 import org.aspectj.apache.bcel.classfile.SourceFile;
 import org.aspectj.apache.bcel.classfile.StackMap;
@@ -107,375 +108,387 @@ import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisParamAnnos;
 import org.aspectj.apache.bcel.classfile.annotation.RuntimeVisTypeAnnos;
 
 /**
- * Traverses a JavaClass with another Visitor object 'piggy-backed'
- * that is applied to all components of a JavaClass object. I.e. this
- * class supplies the traversal strategy, other classes can make use
- * of it.
+ * Traverses a JavaClass with another Visitor object 'piggy-backed' that is
+ * applied to all components of a JavaClass object. I.e. this class supplies the
+ * traversal strategy, other classes can make use of it.
  *
  * @version $Id: DescendingVisitor.java,v 1.4 2009/09/15 19:40:22 aclement Exp $
- * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A> 
+ * @author <A HREF="mailto:markus.dahm@berlin.de">M. Dahm</A>
  */
 public class DescendingVisitor implements ClassVisitor {
-  private JavaClass clazz;
-  private ClassVisitor   visitor;
-  private Stack<Object>     stack = new Stack<Object>();
-
-  /** @return container of current entitity, i.e., predecessor during traversal
-   */
-  public Object predecessor() {
-    return predecessor(0);
-  }
-
-  /**
-   * @param level nesting level, i.e., 0 returns the direct predecessor
-   * @return container of current entitity, i.e., predecessor during traversal
-   */
-  public Object predecessor(int level) {
-    int size = stack.size();
-
-    if((size < 2) || (level < 0))
-      return null;
-    else
-      return stack.elementAt(size - (level + 2)); // size - 1 == current
-  }
-
-  /** @return current object
-   */
-  public Object current() {
-    return stack.peek();
-  }
-
-  /**
-   * @param clazz Class to traverse
-   * @param visitor visitor object to apply to all components
-   */
-  public DescendingVisitor(JavaClass clazz, ClassVisitor visitor) {
-    this.clazz   = clazz;
-    this.visitor = visitor;
-  }
-
-  /**
-   * Start traversal.
-   */
-  public void visit() { clazz.accept(this); }
-
-  public void visitJavaClass(JavaClass clazz) {
-    stack.push(clazz);
-    clazz.accept(visitor);
-
-    Field[] fields = clazz.getFields();
-    for(int i=0; i < fields.length; i++)
-      fields[i].accept(this);
-
-    Method[] methods = clazz.getMethods();
-    for(int i=0; i < methods.length; i++)
-      methods[i].accept(this);
-
-    AttributeUtils.accept(clazz.getAttributes(),visitor);
-//    clazz.getAttributes().accept(this);
-    clazz.getConstantPool().accept(this);
-    stack.pop();
-  }
-
-  public void visitField(Field field) {
-    stack.push(field);
-    field.accept(visitor);
-    AttributeUtils.accept(field.getAttributes(),visitor);
-//    field.getAttributes().accept(this);
-    stack.pop();
-  }
-
-  public void visitConstantValue(ConstantValue cv) {
-    stack.push(cv);
-    cv.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitMethod(Method method) {
-    stack.push(method);
-    method.accept(visitor);
-    AttributeUtils.accept(method.getAttributes(),visitor);
-    stack.pop();
-  }
-
-  public void visitExceptionTable(ExceptionTable table) {
-    stack.push(table);
-    table.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitCode(Code code) {
-    stack.push(code);
-    code.accept(visitor);
-
-    CodeException[] table = code.getExceptionTable();
-    for(int i=0; i < table.length; i++)
-      table[i].accept(this);
-
-    Attribute[] attributes = code.getAttributes();
-    for(int i=0; i < attributes.length; i++)
-      attributes[i].accept(this);
-    stack.pop();
-  }
-
-  public void visitCodeException(CodeException ce) {
-    stack.push(ce);
-    ce.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitLineNumberTable(LineNumberTable table) {
-    stack.push(table);
-    table.accept(visitor);
-
-    LineNumber[] numbers = table.getLineNumberTable();
-    for(int i=0; i < numbers.length; i++)
-      numbers[i].accept(this);
-    stack.pop();
-  }
-
-  public void visitLineNumber(LineNumber number) {
-    stack.push(number);
-    number.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitLocalVariableTable(LocalVariableTable table) {
-    stack.push(table);
-    table.accept(visitor);
-
-    LocalVariable[] vars = table.getLocalVariableTable();
-    for(int i=0; i < vars.length; i++)
-      vars[i].accept(this);
-    stack.pop();
-  }
-
-  public void visitStackMap(StackMap table) {
-    stack.push(table);
-    table.accept(visitor);
-
-    StackMapEntry[] vars = table.getStackMap();
-
-    for(int i=0; i < vars.length; i++)
-      vars[i].accept(this);
-    stack.pop();
-  }
-
-  public void visitStackMapEntry(StackMapEntry var) {
-    stack.push(var);
-    var.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitLocalVariable(LocalVariable var) {
-    stack.push(var);
-    var.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantPool(ConstantPool cp) {
-    stack.push(cp);
-    cp.accept(visitor);
-
-    Constant[] constants = cp.getConstantPool();
-    for(int i=1; i < constants.length; i++) {
-      if(constants[i] != null)
-       constants[i].accept(this);
-    }
-
-    stack.pop();
-  }
-
-  public void visitConstantClass(ConstantClass constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantDouble(ConstantDouble constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantFieldref(ConstantFieldref constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantFloat(ConstantFloat constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
- }
-
-  public void visitConstantInteger(ConstantInteger constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantLong(ConstantLong constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantMethodref(ConstantMethodref constant) {
-    stack.push(constant);
-    constant.accept(visitor); 
-    stack.pop();
-  }
-  
-  public void visitConstantMethodHandle(ConstantMethodHandle constant) {
-         throw new IllegalStateException("nyi");
-  }
-
-  public void visitConstantMethodType(ConstantMethodType obj) {
-         throw new IllegalStateException("nyi");
-  }
-  
-  public void visitConstantInvokeDynamic(ConstantInvokeDynamic obj) {
-         throw new IllegalStateException("nyi");
-  }
-
-  public void visitBootstrapMethods(BootstrapMethods obj) {
-         throw new IllegalStateException("nyi");
-  }
-
-  public void visitConstantNameAndType(ConstantNameAndType constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantString(ConstantString constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitConstantUtf8(ConstantUtf8 constant) {
-    stack.push(constant);
-    constant.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitInnerClasses(InnerClasses ic) {
-    stack.push(ic);
-    ic.accept(visitor);
-
-    InnerClass[] ics = ic.getInnerClasses();
-    for(int i=0; i < ics.length; i++)
-      ics[i].accept(this);
-    stack.pop();
-  }
-
-  public void visitInnerClass(InnerClass inner) {
-    stack.push(inner);
-    inner.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitDeprecated(Deprecated attribute) {
-    stack.push(attribute);
-    attribute.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitSignature(Signature attribute) {
-    stack.push(attribute);
-    attribute.accept(visitor);
-    stack.pop();
-  }
-  
-  // J5SUPPORT:
-  public void visitEnclosingMethod(EnclosingMethod attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitRuntimeVisibleAnnotations(RuntimeVisAnnos attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitRuntimeInvisibleAnnotations(RuntimeInvisAnnos attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitRuntimeVisibleParameterAnnotations(RuntimeVisParamAnnos attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisParamAnnos attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitRuntimeVisibleTypeAnnotations(RuntimeVisTypeAnnos attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitMethodParameters(MethodParameters attribute) {
-         stack.push(attribute);
-         attribute.accept(visitor);
-         stack.pop();
-  }
-  
-  public void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisTypeAnnos attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitAnnotationDefault(AnnotationDefault attribute) {
-       stack.push(attribute);
-       attribute.accept(visitor);
-       stack.pop();
-  }
-  
-  public void visitLocalVariableTypeTable(LocalVariableTypeTable table) {
-    stack.push(table);
-    table.accept(visitor);
-
-    LocalVariable[] vars = table.getLocalVariableTypeTable();
-    for(int i=0; i < vars.length; i++)
-      vars[i].accept(this);
-    stack.pop();
-  }
-  
-  public void visitSourceFile(SourceFile attribute) {
-    stack.push(attribute);
-    attribute.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitSynthetic(Synthetic attribute) {
-    stack.push(attribute);
-    attribute.accept(visitor);
-    stack.pop();
-  }
-
-  public void visitUnknown(Unknown attribute) {
-    stack.push(attribute);
-    attribute.accept(visitor);
-    stack.pop();
- }
+       private JavaClass clazz;
+       private ClassVisitor visitor;
+       private Stack<Object> stack = new Stack<Object>();
+
+       /**
+        * @return container of current entitity, i.e., predecessor during traversal
+        */
+       public Object predecessor() {
+               return predecessor(0);
+       }
+
+       /**
+        * @param level
+        *            nesting level, i.e., 0 returns the direct predecessor
+        * @return container of current entitity, i.e., predecessor during traversal
+        */
+       public Object predecessor(int level) {
+               int size = stack.size();
+
+               if ((size < 2) || (level < 0))
+                       return null;
+               else
+                       return stack.elementAt(size - (level + 2)); // size - 1 == current
+       }
+
+       /**
+        * @return current object
+        */
+       public Object current() {
+               return stack.peek();
+       }
+
+       /**
+        * @param clazz
+        *            Class to traverse
+        * @param visitor
+        *            visitor object to apply to all components
+        */
+       public DescendingVisitor(JavaClass clazz, ClassVisitor visitor) {
+               this.clazz = clazz;
+               this.visitor = visitor;
+       }
+
+       /**
+        * Start traversal.
+        */
+       public void visit() {
+               clazz.accept(this);
+       }
+
+       public void visitJavaClass(JavaClass clazz) {
+               stack.push(clazz);
+               clazz.accept(visitor);
+
+               Field[] fields = clazz.getFields();
+               for (int i = 0; i < fields.length; i++)
+                       fields[i].accept(this);
+
+               Method[] methods = clazz.getMethods();
+               for (int i = 0; i < methods.length; i++)
+                       methods[i].accept(this);
+
+               AttributeUtils.accept(clazz.getAttributes(), visitor);
+               // clazz.getAttributes().accept(this);
+               clazz.getConstantPool().accept(this);
+               stack.pop();
+       }
+
+       public void visitField(Field field) {
+               stack.push(field);
+               field.accept(visitor);
+               AttributeUtils.accept(field.getAttributes(), visitor);
+               // field.getAttributes().accept(this);
+               stack.pop();
+       }
+
+       public void visitConstantValue(ConstantValue cv) {
+               stack.push(cv);
+               cv.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitMethod(Method method) {
+               stack.push(method);
+               method.accept(visitor);
+               AttributeUtils.accept(method.getAttributes(), visitor);
+               stack.pop();
+       }
+
+       public void visitExceptionTable(ExceptionTable table) {
+               stack.push(table);
+               table.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitCode(Code code) {
+               stack.push(code);
+               code.accept(visitor);
+
+               CodeException[] table = code.getExceptionTable();
+               for (int i = 0; i < table.length; i++)
+                       table[i].accept(this);
+
+               Attribute[] attributes = code.getAttributes();
+               for (int i = 0; i < attributes.length; i++)
+                       attributes[i].accept(this);
+               stack.pop();
+       }
+
+       public void visitCodeException(CodeException ce) {
+               stack.push(ce);
+               ce.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitLineNumberTable(LineNumberTable table) {
+               stack.push(table);
+               table.accept(visitor);
+
+               LineNumber[] numbers = table.getLineNumberTable();
+               for (int i = 0; i < numbers.length; i++)
+                       numbers[i].accept(this);
+               stack.pop();
+       }
+
+       public void visitLineNumber(LineNumber number) {
+               stack.push(number);
+               number.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitLocalVariableTable(LocalVariableTable table) {
+               stack.push(table);
+               table.accept(visitor);
+
+               LocalVariable[] vars = table.getLocalVariableTable();
+               for (int i = 0; i < vars.length; i++)
+                       vars[i].accept(this);
+               stack.pop();
+       }
+
+       public void visitStackMap(StackMap table) {
+               stack.push(table);
+               table.accept(visitor);
+
+               StackMapEntry[] vars = table.getStackMap();
+
+               for (int i = 0; i < vars.length; i++)
+                       vars[i].accept(this);
+               stack.pop();
+       }
+
+       public void visitStackMapEntry(StackMapEntry var) {
+               stack.push(var);
+               var.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitLocalVariable(LocalVariable var) {
+               stack.push(var);
+               var.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantPool(ConstantPool cp) {
+               stack.push(cp);
+               cp.accept(visitor);
+
+               Constant[] constants = cp.getConstantPool();
+               for (int i = 1; i < constants.length; i++) {
+                       if (constants[i] != null)
+                               constants[i].accept(this);
+               }
+
+               stack.pop();
+       }
+
+       public void visitConstantClass(ConstantClass constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantDouble(ConstantDouble constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantFieldref(ConstantFieldref constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantFloat(ConstantFloat constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantInteger(ConstantInteger constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantInterfaceMethodref(ConstantInterfaceMethodref constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantLong(ConstantLong constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantMethodref(ConstantMethodref constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantMethodHandle(ConstantMethodHandle constant) {
+               throw new IllegalStateException("nyi");
+       }
+
+       public void visitConstantMethodType(ConstantMethodType obj) {
+               throw new IllegalStateException("nyi");
+       }
+
+       public void visitConstantInvokeDynamic(ConstantInvokeDynamic obj) {
+               throw new IllegalStateException("nyi");
+       }
+
+       public void visitBootstrapMethods(BootstrapMethods obj) {
+               throw new IllegalStateException("nyi");
+       }
+
+       public void visitConstantNameAndType(ConstantNameAndType constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantString(ConstantString constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitConstantUtf8(ConstantUtf8 constant) {
+               stack.push(constant);
+               constant.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitInnerClasses(InnerClasses ic) {
+               stack.push(ic);
+               ic.accept(visitor);
+
+               InnerClass[] ics = ic.getInnerClasses();
+               for (int i = 0; i < ics.length; i++)
+                       ics[i].accept(this);
+               stack.pop();
+       }
+
+       public void visitInnerClass(InnerClass inner) {
+               stack.push(inner);
+               inner.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitDeprecated(Deprecated attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitSignature(Signature attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       // J5SUPPORT:
+       public void visitEnclosingMethod(EnclosingMethod attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitRuntimeVisibleAnnotations(RuntimeVisAnnos attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitRuntimeInvisibleAnnotations(RuntimeInvisAnnos attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitRuntimeVisibleParameterAnnotations(RuntimeVisParamAnnos attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitRuntimeInvisibleParameterAnnotations(RuntimeInvisParamAnnos attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitRuntimeVisibleTypeAnnotations(RuntimeVisTypeAnnos attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitMethodParameters(MethodParameters attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitRuntimeInvisibleTypeAnnotations(RuntimeInvisTypeAnnos attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitAnnotationDefault(AnnotationDefault attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitLocalVariableTypeTable(LocalVariableTypeTable table) {
+               stack.push(table);
+               table.accept(visitor);
+
+               LocalVariable[] vars = table.getLocalVariableTypeTable();
+               for (int i = 0; i < vars.length; i++)
+                       vars[i].accept(this);
+               stack.pop();
+       }
+
+       public void visitSourceFile(SourceFile attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitSynthetic(Synthetic attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitUnknown(Unknown attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
+
+       public void visitModule(Module attribute) {
+               stack.push(attribute);
+               attribute.accept(visitor);
+               stack.pop();
+       }
 }
index f1b61c1ac391b35c17b2a8daa75a370c0a900e9d..117d8d3205c9dde7ba23ba56aed388dec28dc219 100644 (file)
@@ -87,6 +87,7 @@ import org.aspectj.apache.bcel.classfile.LocalVariableTable;
 import org.aspectj.apache.bcel.classfile.LocalVariableTypeTable;
 import org.aspectj.apache.bcel.classfile.Method;
 import org.aspectj.apache.bcel.classfile.MethodParameters;
+import org.aspectj.apache.bcel.classfile.Module;
 import org.aspectj.apache.bcel.classfile.Signature;
 import org.aspectj.apache.bcel.classfile.SourceFile;
 import org.aspectj.apache.bcel.classfile.StackMap;
@@ -150,6 +151,7 @@ public class EmptyClassVisitor implements ClassVisitor {
   public void visitUnknown(Unknown obj) {}
   public void visitStackMap(StackMap obj) {}
   public void visitStackMapEntry(StackMapEntry obj) {}
+  public void visitModule(Module obj) {}
   
   // J5SUPPORT:
   public void visitEnclosingMethod(EnclosingMethod obj) {}
index 2d70911e537c1b5e8fff509498da1a26d0ce8105..3c34a94dc4752c444ec1c59254ef07368e51d4bf 100644 (file)
Binary files a/lib/bcel/bcel-src.zip and b/lib/bcel/bcel-src.zip differ
index bf5a86a3e8bfe2f9367f79f53bdb3ae7b04e5370..e3f91ee827c2618003017640d0e5c75d1d422c36 100644 (file)
Binary files a/lib/bcel/bcel-verifier-src.zip and b/lib/bcel/bcel-verifier-src.zip differ
index e6edce128d3ce77ec4b781e13193d07520225c87..c3d035753b3c19752fc15554252091284d015f88 100644 (file)
Binary files a/lib/bcel/bcel-verifier.jar and b/lib/bcel/bcel-verifier.jar differ
index d008015dd84ba2ebee9c8c84634ae16b5539dffc..e7bcdb90b1aebe59126dfe8728d63816c922711b 100644 (file)
Binary files a/lib/bcel/bcel.jar and b/lib/bcel/bcel.jar differ
index f6316cd00629a2f27fbe8ebc6197fcfc9ea89521..26c6a41c21192d936276007b1dbc6c0b8b96f42d 100644 (file)
@@ -721,11 +721,14 @@ public class BuildArgParser extends Main {
                        } else if (arg.equals("-1.8")) {
                                buildConfig.setBehaveInJava5Way(true);
                                unparsedArgs.add("-1.8");
+                       } else if (arg.equals("-1.9")) {
+                               buildConfig.setBehaveInJava5Way(true);
+                               unparsedArgs.add("-1.9");
                        } else if (arg.equals("-source")) {
                                if (args.size() > nextArgIndex) {
                                        String level = ((ConfigParser.Arg) args.get(nextArgIndex)).getValue();
                                        if (level.equals("1.5") || level.equals("5") || level.equals("1.6") || level.equals("6") || level.equals("1.7")
-                                                       || level.equals("7") || level.equals("8") || level.equals("1.8")) {
+                                                       || level.equals("7") || level.equals("8") || level.equals("1.8") || level.equals("9") || level.equals("1.9")) {
                                                buildConfig.setBehaveInJava5Way(true);
                                        }
                                        unparsedArgs.add("-source");
index 94dd63e2766914f4ff93cebaef93a5f8d3b9bf70..388e325488531955ef23c35da01840daa6dd849e 100644 (file)
@@ -64,8 +64,9 @@ Standard Eclipse compiler options:\n\
 \    -1.6 -6 -6.0       use 1.6 compliance (-source 1.6 -target 1.6)\n\
 \    -1.7 -7 -7.0       use 1.7 compliance (-source 1.7 -target 1.7)\n\
 \    -1.8 -8 -8.0       use 1.8 compliance (-source 1.8 -target 1.8)\n\
-\    -source <version>  set source level: 1.3 to 1.8 (or 5, 5.0, etc)\n\
-\    -target <version>  set classfile target: 1.1 to 1.8 (or 5, 5.0, etc)\n\
+\    -1.9 -9 -9.0       use 1.9 compliance (-source 1.9 -target 1.9)\n\
+\    -source <version>  set source level: 1.3 to 1.9 (or 5, 5.0, etc)\n\
+\    -target <version>  set classfile target: 1.1 to 1.9 (or 5, 5.0, etc)\n\
 \ \n\
 \ Warning options:\n\
 \    -deprecation         + deprecation outside deprecated code\n\
@@ -250,7 +251,7 @@ configure.requiresJDK1.2orAbove = Need to use a JVM >= 1.2
 configure.duplicateLog = duplicate log specification: {0}
 configure.duplicateRepeat = duplicate repeat specification: {0}
 configure.duplicateCompliance = duplicate compliance setting specification: {0}
-configure.source = invalid source option, source is either ''1.3'' or ''1.4'': {0}
+configure.source = invalid source option, source is in the range ''1.3'' > ''1.9'': {0}
 configure.duplicateOutputPath = duplicate output path specification: {0}
 configure.duplicateBootClasspath = duplicate bootclasspath specification: {0}
 configure.invalidDebugOption = invalid debug option: {0}
index 73e539e71944094b554f61b1d5bf8211e6f66fb7..fa3e28ad07644da98cca59e33f85bd4861aa6470 100644 (file)
@@ -80,10 +80,9 @@ public class AdviceDeclaration extends AjMethodDeclaration {
 
        // override
        protected int generateInfoAttributes(ClassFile classFile) {
-               List l = new ArrayList(1);
+               List<EclipseAttributeAdapter> l = new ArrayList<>(1);
                l.add(new EclipseAttributeAdapter(makeAttribute()));
                addDeclarationStartLineAttribute(l, classFile);
-
                return classFile.generateMethodInfoAttributes(binding, l);
        }
 
index 6cf6527b67decc31bca2cdd42d2ad3377181f9bb..4350160433da89bcb6dd61e544aec53f18380961 100644 (file)
@@ -28,7 +28,7 @@ public class KnownMessageSend extends MessageSend {
                this.receiver = receiver;
                this.actualReceiverType = binding.declaringClass;
                this.selector = binding.selector;
-               constant = Constant.NotAConstant;
+               // constant = Constant.NotAConstant;
        }
 
        public void manageSyntheticAccessIfNecessary(BlockScope currentScope) {
index fa63a33939bcc306eb413fc7f2c2031c60a090a4..90ca34c4564159dc039ae9a279196a8f9f9f0a86 100644 (file)
@@ -476,7 +476,7 @@ public class ValidateAtAspectJAnnotationsVisitor extends ASTVisitor {
                        } else if (sma.memberValue instanceof NameReference
                                        && (((NameReference) sma.memberValue).binding instanceof FieldBinding)) {
                                Binding b = ((NameReference) sma.memberValue).binding;
-                               Constant c = ((FieldBinding) b).constant;
+                               Constant c = ((FieldBinding) b).constant();
                                return c.stringValue();
                        }
                }
index dc82d4aac54259af1a66e24442da406a6b60bdcd..f2acf2e9f7ed12ea326ae0b5e8b1f63c077015d5 100644 (file)
@@ -204,7 +204,7 @@ public class EclipseSourceType extends AbstractReferenceTypeDelegate {
                                        return new String(sLit.source());
                                } else if (expr instanceof NameReference && (((NameReference) expr).binding instanceof FieldBinding)) {
                                        Binding b = ((NameReference) expr).binding;
-                                       Constant c = ((FieldBinding) b).constant;
+                                       Constant c = ((FieldBinding) b).constant();
                                        return c.stringValue();
                                } else {
                                        throw new BCException("Do not know how to recover pointcut definition from " + expr + " (type "
index 88556fccfdba1dc9fb0b96c032b39855472af1a2..2cb035a7041752f9ce924a10a52ca7413a24708a 100644 (file)
@@ -757,6 +757,11 @@ public class AjProblemReporter extends ProblemReporter {
                public String getSupplementaryMessageInfo() {
                        return delegate.getSupplementaryMessageInfo();
                }
+
+               @Override
+               public boolean isInfo() {
+                       return delegate.isInfo();
+               }
        }
 
        public void duplicateMethodInType(AbstractMethodDeclaration methodDecl, boolean equalParameters, int severity) {
index 0dda15cb10cc3adaab2c4c4a86355984b86f4bb6..164af662982b8809251b326a04a46a7dbb8b6af4 100644 (file)
@@ -1021,7 +1021,7 @@ public class AjBuildManager implements IOutputClassFileNameProvider, IBinarySour
                }
 
                org.aspectj.ajdt.internal.compiler.CompilerAdapter.setCompilerAdapterFactory(this);
-               final Map<?, ?> settings = buildConfig.getOptions().getMap();
+               final Map<String, String> settings = buildConfig.getOptions().getMap();
                final BuildArgParser bMain = buildConfig.getBuildArgParser();
 
                final org.aspectj.org.eclipse.jdt.internal.compiler.Compiler compiler = new org.aspectj.org.eclipse.jdt.internal.compiler.Compiler(
index ceba72e3038ab052e68c2281426f2ec2e0ac3dfd..62487a2b7063b9af43b7bbe2b37b8294d46f42ba 100644 (file)
@@ -52,15 +52,15 @@ public class AjCompilerOptions extends CompilerOptions {
 
 
        // constants for irritant levels
-       public static final int InvalidAbsoluteTypeName = IrritantSet.GROUP2 | ASTNode.Bit20;
-       public static final int InvalidWildCardTypeName = IrritantSet.GROUP2 | ASTNode.Bit21;
-       public static final int UnresolvableMember = IrritantSet.GROUP2 | ASTNode.Bit22;
-       public static final int TypeNotExposedToWeaver = IrritantSet.GROUP2 | ASTNode.Bit23;
-       public static final int ShadowNotInStructure = IrritantSet.GROUP2 | ASTNode.Bit24;
-       public static final int UnmatchedSuperTypeInCall = IrritantSet.GROUP2 | ASTNode.Bit25;
-       public static final int CannotImplementLazyTJP = IrritantSet.GROUP2 | ASTNode.Bit26;
-       public static final int NeedSerialVersionUIDField = IrritantSet.GROUP2 | ASTNode.Bit27;
-       public static final int IncompatibleSerialVersion = IrritantSet.GROUP2 | ASTNode.Bit28;
+       public static final int InvalidAbsoluteTypeName = IrritantSet.GROUP3 | ASTNode.Bit1;
+       public static final int InvalidWildCardTypeName = IrritantSet.GROUP3 | ASTNode.Bit2;
+       public static final int UnresolvableMember = IrritantSet.GROUP3 | ASTNode.Bit3;
+       public static final int TypeNotExposedToWeaver = IrritantSet.GROUP3 | ASTNode.Bit4;
+       public static final int ShadowNotInStructure = IrritantSet.GROUP3 | ASTNode.Bit5;
+       public static final int UnmatchedSuperTypeInCall = IrritantSet.GROUP3 | ASTNode.Bit6;
+       public static final int CannotImplementLazyTJP = IrritantSet.GROUP3 | ASTNode.Bit7;
+       public static final int NeedSerialVersionUIDField = IrritantSet.GROUP3 | ASTNode.Bit8;
+       public static final int IncompatibleSerialVersion = IrritantSet.GROUP3 | ASTNode.Bit9;
 
        public boolean terminateAfterCompilation = false;
        public boolean xSerializableAspects = false;
@@ -128,7 +128,7 @@ public class AjCompilerOptions extends CompilerOptions {
         * 
         * @see org.eclipse.jdt.internal.compiler.impl.CompilerOptions#getMap()
         */
-       public Map getMap() {
+       public Map<String,String> getMap() {
                Map<String,String> map = super.getMap();
                // now add AspectJ additional options           
                map.put(OPTION_ReportInvalidAbsoluteTypeName, getSeverityString(InvalidAbsoluteTypeName));
index dd38f775097326005768d805b5a81d678617525b..7da62b87c6f2d1950d8cdc11886998d277bfe9e0 100644 (file)
@@ -485,7 +485,12 @@ public class AsmHierarchyBuilder extends ASTVisitor {
                        }
                }
 
-               ((IProgramElement) stack.peek()).addChild(peNode);
+               IProgramElement ipe = (IProgramElement)stack.peek();
+               if (ipe!=null) {
+                       // With AspectJ 1.8.9 the type structure must be slightly different as the guard
+                       // is required (the null is due to a default constructor).
+                       ((IProgramElement) stack.peek()).addChild(peNode);
+               }
                stack.push(peNode);
                return true;
        }
index 6770b647a0660f114d56fa71d10d3374ac1eb052..e48c6cd0fefc18c6946206da2923ff8896e93752 100644 (file)
@@ -19,6 +19,9 @@ import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryMethod;
 import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryNestedType;
 import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryType;
 import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryTypeAnnotation;
+import org.aspectj.org.eclipse.jdt.internal.compiler.env.ITypeAnnotationWalker;
+import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.ExternalAnnotationStatus;
+import org.aspectj.org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment;
 
 /**
  * Used to determine if a type has structurally changed during incremental compilation. At the end of compilation we create one of
@@ -181,4 +184,19 @@ public class CompactTypeStructureRepresentation implements IBinaryType {
                return typeAnnotations;
        }
 
+       public ITypeAnnotationWalker enrichWithExternalAnnotationsFor(ITypeAnnotationWalker walker, Object member,
+                       LookupEnvironment environment) {
+               // TODO[1.8.7] more to do here? In what contexts?
+               return walker;
+       }
+
+       public char[] getModule() {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       public ExternalAnnotationStatus getExternalAnnotationStatus() {
+               return ExternalAnnotationStatus.NOT_EEA_CONFIGURED;
+       }
+
 }
\ No newline at end of file
index 4ffb009a88d6584a01d836feaf80cabb4f01fb48..20952b18d8f443fea35693ab82dfb6869e9f41a8 100644 (file)
@@ -61,7 +61,8 @@ public class EclipseClassPathManager extends ClassPathManager {
                        name = name.substring(0,name.length() - ".class".length());
                }
                char[][] cname = CharOperation.splitOn('.',name.toCharArray());
-               NameEnvironmentAnswer answer = nameEnv.findType(cname);
+               // TODO [j9] passing null client/module here...
+               NameEnvironmentAnswer answer = nameEnv.findType(cname,(char[])null);
                if (answer == null || !answer.isBinaryType()) {
                        return null;
                } else {
index 6167e7aaf24e8040db85fc8dd288ff55ea0bca48..26c683bb4beea2b59413f8bb26b31641a6d66b8a 100644 (file)
@@ -1,5 +1,5 @@
 /* *******************************************************************
- * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC).
+ * Copyright (c) 2002 IBM and other contributors
  * All rights reserved. 
  * This program and the accompanying materials are made available 
  * under the terms of the Eclipse Public License v1.0 
@@ -7,18 +7,17 @@
  * http://www.eclipse.org/legal/epl-v10.html 
  *  
  * Contributors: 
- *     PARC     initial implementation 
+ *     Palo Alto Research Center, Incorporated (PARC)
+ *     Andy Clement
  * ******************************************************************/
 
 package org.aspectj.ajdt.internal.core.builder;
 
-//import java.util.HashMap;
 import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 
@@ -26,29 +25,28 @@ import org.aspectj.org.eclipse.jdt.core.compiler.CharOperation;
 import org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader;
 import org.aspectj.org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException;
 import org.aspectj.org.eclipse.jdt.internal.compiler.env.IBinaryType;
+import org.aspectj.org.eclipse.jdt.internal.compiler.env.IModule;
+import org.aspectj.org.eclipse.jdt.internal.compiler.env.IModuleLocation;
 import org.aspectj.org.eclipse.jdt.internal.compiler.env.INameEnvironment;
 import org.aspectj.org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer;
 import org.aspectj.util.FileUtil;
 
 public class StatefulNameEnvironment implements INameEnvironment {
-       private Map classesFromName;
-       private Map inflatedClassFilesCache;
-       private Set packageNames;
+       private Map<String,File> classesFromName;
+       private Map<String,NameEnvironmentAnswer> inflatedClassFilesCache;
+       private Set<String> packageNames;
        private AjState state;
        private INameEnvironment baseEnvironment;
 
-       public StatefulNameEnvironment(INameEnvironment baseEnvironment, Map classesFromName, AjState state) {
+       public StatefulNameEnvironment(INameEnvironment baseEnvironment, Map<String,File> classesFromName, AjState state) {
                this.classesFromName = classesFromName;
-               this.inflatedClassFilesCache = new HashMap();
+               this.inflatedClassFilesCache = new HashMap<String,NameEnvironmentAnswer>();
                this.baseEnvironment = baseEnvironment;
                this.state = state;
-
-               packageNames = new HashSet();
-               for (Iterator i = classesFromName.keySet().iterator(); i.hasNext();) {
-                       String className = (String) i.next();
+               packageNames = new HashSet<String>();
+               for (String className: classesFromName.keySet()) {
                        addAllPackageNames(className);
                }
-               // System.err.println(packageNames);
        }
 
        private void addAllPackageNames(String className) {
@@ -59,12 +57,6 @@ public class StatefulNameEnvironment implements INameEnvironment {
                }
        }
 
-       public void cleanup() {
-               baseEnvironment.cleanup();
-               this.classesFromName = Collections.EMPTY_MAP;
-               this.packageNames.clear();// = Collections.EMPTY_SET;
-       }
-
        private NameEnvironmentAnswer findType(String name) {
                // pr133532 - ask the state for the type first
                IBinaryType seenOnPreviousBuild = state.checkPreviousBuild(name);
@@ -76,10 +68,9 @@ public class StatefulNameEnvironment implements INameEnvironment {
                } else {
                        File fileOnDisk = (File) classesFromName.get(name);
                        // System.err.println("find: " + name + " found: " + cf);
-
-                       if (fileOnDisk == null)
+                       if (fileOnDisk == null) {
                                return null;
-
+                       }
                        try {
                                // System.out.println("from cache: " + name);
                                byte[] bytes = FileUtil.readAsByteArray(fileOnDisk);
@@ -95,24 +86,36 @@ public class StatefulNameEnvironment implements INameEnvironment {
                }
        }
 
-       public NameEnvironmentAnswer findType(char[] typeName, char[][] packageName) {
+       @Override
+       public void cleanup() {
+               baseEnvironment.cleanup();
+               this.classesFromName = Collections.emptyMap();
+               this.packageNames.clear();
+       }
+       
+       @Override
+       public NameEnvironmentAnswer findType(char[] typeName, char[][] packageName, char[] client) {
                NameEnvironmentAnswer ret = findType(new String(CharOperation.concatWith(packageName, typeName, '.')));
-               if (ret != null)
+               if (ret != null) {
                        return ret;
-               return baseEnvironment.findType(typeName, packageName);
+               }
+               return baseEnvironment.findType(typeName, packageName, client);
        }
 
-       public NameEnvironmentAnswer findType(char[][] compoundName) {
+       @Override
+       public NameEnvironmentAnswer findType(char[][] compoundName, char[] client) {
                NameEnvironmentAnswer ret = findType(new String(CharOperation.concatWith(compoundName, '.')));
-               if (ret != null)
+               if (ret != null) {
                        return ret;
-               return baseEnvironment.findType(compoundName);
+               }
+               return baseEnvironment.findType(compoundName, client);
        }
 
-       public boolean isPackage(char[][] parentPackageName, char[] packageName) {
-               if (baseEnvironment.isPackage(parentPackageName, packageName))
+       @Override
+       public boolean isPackage(char[][] parentPackageName, char[] packageName, char[] client) {
+               if (baseEnvironment.isPackage(parentPackageName, packageName, client)) {
                        return true;
-
+               }
                String fullPackageName = new String(CharOperation.concatWith(parentPackageName, packageName, '.'));
                return packageNames.contains(fullPackageName);
        }
@@ -121,12 +124,35 @@ public class StatefulNameEnvironment implements INameEnvironment {
         * Needs to be told about changes. The 'added' set is a subset of classNameToFileMap consisting of just those names added during
         * this build - to reduce any impact on incremental compilation times.
         */
-       public void update(Map classNameToFileMap, Set added) {
-               for (Iterator i = added.iterator(); i.hasNext();) {
-                       String className = (String) i.next();
+       public void update(Map<String,File> classNameToFileMap, Set<String> added) {
+               for (String className: added) {
                        addAllPackageNames(className);
                }
                this.classesFromName = classNameToFileMap;
        }
 
+       @Override
+       public void acceptModule(IModule module, IModuleLocation location) {
+               // TODO [j9]
+               baseEnvironment.acceptModule(module, location);
+       }
+
+       @Override
+       public boolean isPackageVisible(char[] pack, char[] source, char[] client) {
+               // TODO [j9]
+               return baseEnvironment.isPackageVisible(pack, source, client);
+       }
+
+       @Override
+       public IModule getModule(char[] name) {
+               // TODO [j9]
+               return baseEnvironment.getModule(name);
+       }
+
+       @Override
+       public IModule getModule(IModuleLocation location) {
+               // TODO [j9]
+               return baseEnvironment.getModule(location);
+       }
+
 }
index 7a8bfa48f4ce412332341c033fdcc9ca16741543..08a5252a63fa6bc97b909dc284feb900c8ae888a 100644 (file)
@@ -92,7 +92,7 @@ public class BasicCommandTestCase extends CommandTestCase {
                checkCompile("src1/Xlint.java", NO_ERRORS);
        }
        public void testXlintError() {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                args.add("-d");
                args.add(getSandboxName());
@@ -105,7 +105,7 @@ public class BasicCommandTestCase extends CommandTestCase {
                runCompiler(args, new int[] {2});
        }
        public void testMissingJarError() {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                args.add("-d");
                args.add(getSandboxName());
@@ -125,7 +125,7 @@ public class BasicCommandTestCase extends CommandTestCase {
 
        }
        public void testMissingRuntimeError() {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                args.add("-d");
                args.add(getSandboxName());
@@ -176,7 +176,7 @@ public class BasicCommandTestCase extends CommandTestCase {
        public void testSizeChanges() {
                File f1 = new File(getSandboxName(),"SizeIssues.class");
                
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                args.add("-d");
                args.add(getSandboxName());
index b7468d552d3929271b3d6aff2cec559256924175..83513071a5917eb58ed3f0e5911ab1cf0bf3440a 100644 (file)
@@ -49,7 +49,7 @@ public class BcweaverJarMaker {
        }
        
        public static void makeJar0() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                args.add("-outjar");
                args.add("../weaver/testdata/tracing.jar");
 
@@ -63,7 +63,7 @@ public class BcweaverJarMaker {
        }
        
        public static void makeJar1() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                args.add("-outjar");
                args.add("../weaver/testdata/megatrace.jar");
 
@@ -78,7 +78,7 @@ public class BcweaverJarMaker {
        
        
        public static void makeJarObviousNothing() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                args.add("-outjar");
                args.add("../weaver/testdata/megatrace0easy.jar");
 
@@ -92,7 +92,7 @@ public class BcweaverJarMaker {
        }
        
        public static void makeJarHardNothing() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                args.add("-outjar");
                args.add("../weaver/testdata/megatrace0hard.jar");
 
@@ -107,7 +107,7 @@ public class BcweaverJarMaker {
        
        
        public static void makeJar1a() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                args.add("-outjar");
                args.add("../weaver/testdata/megatraceNoweave.jar");
 
@@ -124,7 +124,7 @@ public class BcweaverJarMaker {
        
        
        public static void makeJar2() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                args.add("-outjar");
                args.add("../weaver/testdata/dummyAspect.jar");
 
@@ -137,7 +137,7 @@ public class BcweaverJarMaker {
        }       
        
        public static void makeTestJars() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar" +
@@ -148,7 +148,7 @@ public class BcweaverJarMaker {
                
                CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
                
-               args = new ArrayList();
+               args = new ArrayList<>();
 
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar" +
@@ -159,7 +159,7 @@ public class BcweaverJarMaker {
                
                CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
                
-               args = new ArrayList();
+               args = new ArrayList<>();
 
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar"  +
@@ -170,7 +170,7 @@ public class BcweaverJarMaker {
                
                CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
                
-               args = new ArrayList();
+               args = new ArrayList<>();
 
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar"  +
@@ -183,7 +183,7 @@ public class BcweaverJarMaker {
                CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
                
                // For PR55341
-               args = new ArrayList();
+               args = new ArrayList<>();
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar"  +
                        File.pathSeparator + System.getProperty("aspectjrt.path"));
@@ -196,7 +196,7 @@ public class BcweaverJarMaker {
        }
        
        public static void makeURLWeavingClassLoaderJars() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                /*
                 * Vanilla classes
@@ -213,7 +213,7 @@ public class BcweaverJarMaker {
                /* 
                 * Woven classes
                 */
-               args = new ArrayList();
+               args = new ArrayList<>();
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar;../weaver/testdata/ltw-classes.jar" +
                   File.pathSeparator + System.getProperty("aspectjrt.path"));
@@ -227,7 +227,7 @@ public class BcweaverJarMaker {
                /*
                 * Advice
                 */
-               args = new ArrayList();
+               args = new ArrayList<>();
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar;../weaver/testdata/ltw-classes.jar" +
                   File.pathSeparator + System.getProperty("aspectjrt.path"));
@@ -239,7 +239,7 @@ public class BcweaverJarMaker {
                /*
                 * Declare warning advice
                 */
-               args = new ArrayList();
+               args = new ArrayList<>();
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar;../weaver/testdata/ltw-classes.jar" +
                   File.pathSeparator + System.getProperty("aspectjrt.path"));
@@ -263,7 +263,7 @@ public class BcweaverJarMaker {
                /*
                 * Around closure advice
                 */
-               args = new ArrayList();
+               args = new ArrayList<>();
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar;../weaver/testdata/ltw-classes.jar" +
                   File.pathSeparator + System.getProperty("aspectjrt.path"));
@@ -302,7 +302,7 @@ public class BcweaverJarMaker {
        
        private static void buildJarWithClasspath(String outjar,String input,String deps,boolean nodebug) {
                System.out.println("  Building "+outjar);
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
                if (nodebug) args.add("-g:none");               
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar"  +
@@ -332,7 +332,7 @@ public class BcweaverJarMaker {
        }       
        
        public static void makeDuplicateManifestTestJars() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                /*
                 * injar
@@ -360,7 +360,7 @@ public class BcweaverJarMaker {
        }       
        
        public static void makeAspectPathTestJars() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
                args.clear();
                args.add("-classpath"); 
@@ -372,8 +372,7 @@ public class BcweaverJarMaker {
        }
        
        public static void makeAjc11TestJars() throws IOException {
-               List args = new ArrayList();
-
+               List<String> args = new ArrayList<>();
                args.clear();
                args.add("-classpath"); 
                args.add(cp);
@@ -384,11 +383,9 @@ public class BcweaverJarMaker {
        }
        
        public static void makeOutjarTestJars() throws IOException {
-               List args = new ArrayList();
+               List<String> args = new ArrayList<>();
 
-               /*
-                * parent
-                */
+               // parent
                args.clear();
                args.add("-classpath"); 
                args.add("../lib/test/aspectjrt.jar;../lib/test/testing-client.jar" +
index d69906cdfdc1f33170ba20d8892aeeecf2b71473..f5ce496001d2371ae00dc610c7e5849a9a96d3de 100644 (file)
@@ -32,7 +32,7 @@ public class BinaryFormsTestCase extends CommandTestCase {
        public void testJar1() throws IOException {
                String library = getSandboxName() + "/lib.jar";
                
-               List args = new ArrayList();
+               List<String> args = new ArrayList();
                args.add("-outjar");
                args.add(library);
 
@@ -48,7 +48,7 @@ public class BinaryFormsTestCase extends CommandTestCase {
                
                CommandTestCase.runCompiler(args, CommandTestCase.NO_ERRORS);
                
-               args = new ArrayList();
+               args = new ArrayList<>();
                args.add("-aspectpath");
                args.add(library);
 
index dc40100bc2831159c29724fa3e890ac798780333..8679f787932e3e39b73f8cee7cc776078006ec1d 100644 (file)
@@ -59,6 +59,11 @@ public class AsmBuilderTest extends TestCase {
                        public boolean ignoreOptionalProblems() {
                                return false;
                        }
+
+                       @Override
+                       public char[] module() {
+                               return null;
+                       }
                        
                };
                TypeDeclaration local = new TypeDeclaration(new CompilationResult(cu, 0, 0, 0));
index d444c4d099edcfc6a60feed24bd1c0a9d6d78878..f0af8da50096e8b7c4d6318cbf027fbc99009226 100644 (file)
@@ -231,7 +231,7 @@ public class AjcTestCase extends TestCase {
                                }
                        }
                        if (seeAlsos != null) {
-                               List extraLocations = message.getExtraSourceLocations();
+                               List<ISourceLocation> extraLocations = message.getExtraSourceLocations();
                                if (extraLocations.size() != seeAlsos.length) {
                                        return false;
                                }
index 020caa4432669331e0a5c24d01f2ed9c395e65f4..2809d07815850b9a85627a25044b6fbfd45f7504 100644 (file)
Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip and b/org.eclipse.jdt.core/jdtcore-for-aspectj-src.zip differ
index 4dc8b880516363359bff7ee158ec8f92da8bb0fe..68cf1737e1722a79a90acbece244c35dbfda30cc 100644 (file)
Binary files a/org.eclipse.jdt.core/jdtcore-for-aspectj.jar and b/org.eclipse.jdt.core/jdtcore-for-aspectj.jar differ
diff --git a/tests/bugs1810/493554/example/aspect/FooAspect$ajcMightHaveAspect.class b/tests/bugs1810/493554/example/aspect/FooAspect$ajcMightHaveAspect.class
new file mode 100644 (file)
index 0000000..8f9346b
Binary files /dev/null and b/tests/bugs1810/493554/example/aspect/FooAspect$ajcMightHaveAspect.class differ
diff --git a/tests/bugs1810/493554/example/aspect/FooAspect.class b/tests/bugs1810/493554/example/aspect/FooAspect.class
new file mode 100644 (file)
index 0000000..6c5f481
Binary files /dev/null and b/tests/bugs1810/493554/example/aspect/FooAspect.class differ
diff --git a/tests/bugs1810/493554/example/dep/Dep.class b/tests/bugs1810/493554/example/dep/Dep.class
new file mode 100644 (file)
index 0000000..cda4a43
Binary files /dev/null and b/tests/bugs1810/493554/example/dep/Dep.class differ
diff --git a/tests/bugs1810/493554/example/kusedep/Cmd.class b/tests/bugs1810/493554/example/kusedep/Cmd.class
new file mode 100644 (file)
index 0000000..536d112
Binary files /dev/null and b/tests/bugs1810/493554/example/kusedep/Cmd.class differ
diff --git a/tests/bugs1810/generics/Code.java b/tests/bugs1810/generics/Code.java
new file mode 100644 (file)
index 0000000..cc36722
--- /dev/null
@@ -0,0 +1,9 @@
+class AbstractSuperClass<A,B> {}
+interface InterfaceOne {}
+interface InterfaceTwo<A> {}
+class ID {}
+abstract class AbstractTestClass<T> extends AbstractSuperClass<T,ID> implements InterfaceOne, InterfaceTwo<T> {
+}
+class TestType {}
+class ConcreteClass extends AbstractTestClass<TestType> {
+}
diff --git a/tests/bugs190/modules/aspect1/Azpect1.java b/tests/bugs190/modules/aspect1/Azpect1.java
new file mode 100644 (file)
index 0000000..6106916
--- /dev/null
@@ -0,0 +1,5 @@
+public aspect Azpect1 {
+  before(): execution(* main(..)) {
+    System.out.println("Azpect1.before running");
+  }
+}
diff --git a/tests/bugs190/modules/cpl.sh b/tests/bugs190/modules/cpl.sh
new file mode 100755 (executable)
index 0000000..ca5f7b0
--- /dev/null
@@ -0,0 +1,4 @@
+cd module1
+javac module-info.java Code.java -d .
+jar -cvMf module-one.jar *
+cd ..
diff --git a/tests/bugs190/modules/module1/Code.java b/tests/bugs190/modules/module1/Code.java
new file mode 100644 (file)
index 0000000..5cc9632
--- /dev/null
@@ -0,0 +1,6 @@
+package a.b.c;
+public class Code {
+  public static void main(String []argv) {
+    System.out.println("Code.main running");
+  }
+}
diff --git a/tests/bugs190/modules/module1/a/b/c/Code.class b/tests/bugs190/modules/module1/a/b/c/Code.class
new file mode 100644 (file)
index 0000000..5d5e514
Binary files /dev/null and b/tests/bugs190/modules/module1/a/b/c/Code.class differ
diff --git a/tests/bugs190/modules/module1/module-info.class b/tests/bugs190/modules/module1/module-info.class
new file mode 100644 (file)
index 0000000..0088bd1
Binary files /dev/null and b/tests/bugs190/modules/module1/module-info.class differ
diff --git a/tests/bugs190/modules/module1/module-info.java b/tests/bugs190/modules/module1/module-info.java
new file mode 100644 (file)
index 0000000..7edf5da
--- /dev/null
@@ -0,0 +1,2 @@
+module one {
+}
diff --git a/tests/bugs190/modules/module1/module-one.jar b/tests/bugs190/modules/module1/module-one.jar
new file mode 100644 (file)
index 0000000..907678e
Binary files /dev/null and b/tests/bugs190/modules/module1/module-one.jar differ
diff --git a/tests/bugs190/modules/play/m b/tests/bugs190/modules/play/m
new file mode 100644 (file)
index 0000000..54520da
--- /dev/null
@@ -0,0 +1,11 @@
+module M.N {
+  requires A.B;
+  requires public C.D;
+
+  exports P.Q;
+  exports R.S to T1.U1, T2.U2;
+
+  uses V.W;
+  provides X.Y with Z1.Z2;
+  provides X.Y with Z3.Z4;
+}
diff --git a/tests/bugs190/modules/play/src/a/module-info.java b/tests/bugs190/modules/play/src/a/module-info.java
new file mode 100644 (file)
index 0000000..5de28f6
--- /dev/null
@@ -0,0 +1,2 @@
+module a {
+}
diff --git a/tests/bugs190/modules/play/src/b/module-info.java b/tests/bugs190/modules/play/src/b/module-info.java
new file mode 100644 (file)
index 0000000..d7a65f0
--- /dev/null
@@ -0,0 +1,2 @@
+module b {
+}
diff --git a/tests/src/org/aspectj/systemtest/AllTests19.java b/tests/src/org/aspectj/systemtest/AllTests19.java
new file mode 100644 (file)
index 0000000..4835a61
--- /dev/null
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2013, 2014 Contributors 
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Andy Clement - initial API and implementation
+ *******************************************************************************/
+package org.aspectj.systemtest;
+
+import org.aspectj.systemtest.ajc190.AllTestsAspectJ190;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests19 {
+
+       public static Test suite() {
+               TestSuite suite = new TestSuite("AspectJ System Test Suite - 1.9");
+               // $JUnit-BEGIN$ 
+               suite.addTest(AllTestsAspectJ190.suite()); 
+               suite.addTest(AllTests18.suite());
+               // $JUnit-END$
+               return suite;
+       }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java b/tests/src/org/aspectj/systemtest/ajc190/Ajc190Tests.java
new file mode 100644 (file)
index 0000000..26fc7c7
--- /dev/null
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2016 Contributors
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Andy Clement - initial API and implementation
+ *******************************************************************************/
+package org.aspectj.systemtest.ajc190;
+
+import java.io.File;
+
+import org.aspectj.testing.XMLBasedAjcTestCase;
+
+import junit.framework.Test;
+
+/**
+ * @author Andy Clement
+ */
+public class Ajc190Tests extends org.aspectj.testing.XMLBasedAjcTestCase {
+
+       // Weave a module with code that isn't in a module
+       public void testWeaveModule() throws Exception {
+               runTest("weave module");
+       }
+
+       // ---
+
+       public static Test suite() {
+               return XMLBasedAjcTestCase.loadSuite(Ajc190Tests.class);
+       }
+
+       @Override
+       protected File getSpecFile() {
+        return getClassResource("ajc190.xml");
+       }
+
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java b/tests/src/org/aspectj/systemtest/ajc190/AllTestsAspectJ190.java
new file mode 100644 (file)
index 0000000..36b767f
--- /dev/null
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Contributors
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *    Andy Clement - initial API and implementation
+ *******************************************************************************/
+package org.aspectj.systemtest.ajc190;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+import org.aspectj.systemtest.apt.AptTests;
+
+public class AllTestsAspectJ190 {
+
+       public static Test suite() {
+               TestSuite suite = new TestSuite("AspectJ 1.8.5 tests");
+               // $JUnit-BEGIN$
+               suite.addTest(Ajc190Tests.suite());
+               suite.addTest(AptTests.suite());
+               // $JUnit-END$
+               return suite;
+       }
+}
diff --git a/tests/src/org/aspectj/systemtest/ajc190/ajc190.xml b/tests/src/org/aspectj/systemtest/ajc190/ajc190.xml
new file mode 100644 (file)
index 0000000..bbe0407
--- /dev/null
@@ -0,0 +1,10 @@
+<!DOCTYPE suite SYSTEM "../tests/ajcTestSuite.dtd"[]>
+
+<suite>
+
+  <ajc-test dir="bugs190/modules" title="weave module">
+    <compile files="aspect1/Azpect1.java" inpath="module1/module-one.jar" outjar="runner.jar" options="-1.8"/>
+    <java classpath="runner.jar" class="a.b.c.Code"/>
+  </ajc-test>
+
+</suite>
index 35d88df72d86764807c28f3f70983ebc7bc92022..672a952997ea2c54f4c3f79506efb364ac469178 100644 (file)
@@ -20,6 +20,7 @@ import org.aspectj.systemtest.AllTests;
 import org.aspectj.systemtest.AllTests14;
 import org.aspectj.systemtest.AllTests17;
 import org.aspectj.systemtest.AllTests18;
+import org.aspectj.systemtest.AllTests19;
 import org.aspectj.util.LangUtil;
 
 public class TestsModuleTests extends TestCase {
@@ -28,7 +29,9 @@ public class TestsModuleTests extends TestCase {
                String name = TestsModuleTests.class.getName();
                TestSuite suite = new TestSuite(name);
                // compiler tests, wrapped for JUnit
-               if (LangUtil.is18VMOrGreater()) {
+               if (LangUtil.is19VMOrGreater()) {
+                       suite.addTest(AllTests19.suite());      
+               } else if (LangUtil.is18VMOrGreater()) {
                        suite.addTest(AllTests18.suite());      
                } else if (LangUtil.is15VMOrGreater()) {
                        // suite.addTest(AllTests15.suite());
index 7838c069688620350015ac1bf60ff4370cd8799a..f44095a0e73ab599b7bae696f1b484600357f5d9 100644 (file)
@@ -11,8 +11,6 @@
  * ******************************************************************/
 package org.aspectj.weaver;
 
-import java.util.List;
-
 import org.aspectj.weaver.bcel.BcelWorld;
 
 import junit.framework.TestCase;
index 5c08cf892a0bb8a6ebca7af4f6206d81673d69e6..cbde8e680d243e98347a42f44b70327a4920ef60 100644 (file)
@@ -13,9 +13,12 @@ package org.aspectj.weaver.reflect;
 
 import junit.framework.TestCase;
 
+import java.util.List;
+
 import org.aspectj.weaver.ResolvedType;
 import org.aspectj.weaver.UnresolvedType;
 import org.aspectj.weaver.World;
+import org.aspectj.weaver.patterns.ConcreteCflowPointcut;
 
 public class ReflectionWorldTest extends TestCase {
 
@@ -38,5 +41,27 @@ public class ReflectionWorldTest extends TestCase {
                assertEquals("int", UnresolvedType.INT, world.resolve(int.class));
                assertEquals("void", UnresolvedType.VOID, world.resolve(void.class));
        }
+       
+       static class AbstractSuperClass<A,B> {}
+       static interface InterfaceOne {}
+       static interface InterfaceTwo<A> {}
+       static class ID {}
+       static abstract class AbstractTestClass<T> extends AbstractSuperClass<T,ID> implements InterfaceOne, InterfaceTwo<T> {
+
+       }
+       static class TestType {}
+//     static class ConcreteClass extends AbstractTestClass<TestType> {
+       static class ConcreteClass extends AbstractTestClass<List<TestType>> {
+       }
+       
+       static class Bar extends ConcreteClass {}
+       
+       public void testGenerics() {
+               ReflectionWorld world = new ReflectionWorld(getClass().getClassLoader());
+//             world.lookupOrCreateName(UnresolvedType.forName(AbstractTestClass.class.getName()));
+//             ResolvedType resolvedType = world.resolve(AbstractTestClass.class);
+               JavaLangTypeToResolvedTypeConverter converter = new JavaLangTypeToResolvedTypeConverter(world);
+               ResolvedType resolvedType2 = converter.fromType(ConcreteClass.class);
+       }
 
 }