if(!annotationInterface.isResolved()) { annotationInterface.resolve(); }
  private Annotation createValue() {    // Find the annotation then find its implementing class    VM_Class annotationInterface = VM_TypeReference.findOrCreate(classLoader, type).resolve().asClass();    VM_Class annotationClass = annotationInterface.getAnnotationClass();    if(!annotationClass.isResolved()) {      annotationClass.resolve();    }    if(!annotationClass.isInitialized()) {      VM_Runtime.initializeClassForDynamicLink(annotationClass);    }    // Construct an instance with default values    Annotation annotationInstance = (Annotation)VM_Runtime.resolvedNewScalar(annotationClass);    VM_Method defaultConstructor = annotationClass.getConstructorMethods()[0];    VM_Reflection.invoke(defaultConstructor, annotationInstance, new VM_Annotation[]{this});    // Override default values with those given in the element value pairs    VM_Field annotationClassFields[] = annotationClass.getDeclaredFields();    for(int i=0; i < elementValuePairs.length; i++) {      AnnotationMember evp = elementValuePairs[i];      VM_Atom evpFieldName = evp.getNameAsFieldName();      for(int j=0; j < annotationClassFields.length; j++) {        if(annotationClassFields[j].getName() == evpFieldName) {          evp.setValueToField(annotationClassFields[j], annotationInstance);        }      }    }    return annotationInstance;  }