Migrating e43j8 changes to e44
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/AspectJMemberElement.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/AspectJMemberElement.java
index 022f0b4..e9883dc 100755
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/AspectJMemberElement.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/AspectJMemberElement.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2004, 2010 IBM Corporation and others.
+ * Copyright (c) 2004, 2014 IBM Corporation and others.
  * 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
@@ -401,4 +401,8 @@
     public ILocalVariable[] getParameters() throws JavaModelException {
         return new ILocalVariable[0];
     }
+    
+    public boolean isLambdaMethod() {
+         return false;
+    }
 }
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/BinaryAspectElementInfo.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/BinaryAspectElementInfo.java
index 00e74a6..a76f7ef 100644
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/BinaryAspectElementInfo.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/javaelements/BinaryAspectElementInfo.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009 SpringSource and others.
+ * Copyright (c) 2009, 2014 SpringSource and others.
  * 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
@@ -12,6 +12,7 @@
 package org.eclipse.ajdt.core.javaelements;
 
 import org.aspectj.asm.IProgramElement;
+import org.eclipse.jdt.internal.compiler.env.IBinaryTypeAnnotation;
 import org.eclipse.jdt.internal.compiler.env.IBinaryAnnotation;
 import org.eclipse.jdt.internal.compiler.env.IBinaryField;
 import org.eclipse.jdt.internal.compiler.env.IBinaryMethod;
@@ -134,4 +135,9 @@
     public char[] getEnclosingMethod() {
         return null;
     }
+    
+    public IBinaryTypeAnnotation[] getTypeAnnotations() {
+       return null;
+    }
+
 }
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJCompilationUnitProblemFinder.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJCompilationUnitProblemFinder.java
index 16c78f8..e8d5545 100644
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJCompilationUnitProblemFinder.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJCompilationUnitProblemFinder.java
@@ -602,7 +602,7 @@
                 }
             }
             
-            if (id == IProblem.TypeMismatch &&
+            if (id == IProblem.ReturnTypeMismatch 	 &&
                     numArgs == 2 &&
                     typeAtPositionIsArg(categorizedProblem, unit, firstArg)) {
                 if (findLastSegment(getITDTargetType(categorizedProblem, unit, isJavaFileInAJEditor)).equals(findLastSegment(secondArg))) {
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser.java
index 7e9fcae..bdbd3b2 100644
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser.java
@@ -881,7 +881,7 @@
 	 */
 	int length = identifierLengthStack[identifierLengthPtr--];
 	if (length < 0) { //flag for precompiled type reference on base types
-		TypeReference ref = TypeReference.baseTypeReference(-length, dim,null);
+		TypeReference ref = TypeReference.baseTypeReference(-length, dim);
 		ref.sourceStart = intStack[intPtr--];
 		if (dim == 0) {
 			ref.sourceEnd = intStack[intPtr--];
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser2.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser2.java
index 6c6ebf6..7d0e798 100644
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser2.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/AJSourceElementParser2.java
@@ -443,8 +443,10 @@
 		requestor.acceptMethodReference(memberValuepair.name, 0, memberValuepair.sourceStart);
 	}
 }
-protected void consumeMarkerAnnotation() {
-	super.consumeMarkerAnnotation();
+
+@Override
+protected void consumeMarkerAnnotation(boolean isTypeAnnotation) {
+	super.consumeMarkerAnnotation(isTypeAnnotation);
 	Annotation annotation = (Annotation)expressionStack[expressionPtr];
 	if (reportReferenceInfo) { // accept annotation type reference
 		this.requestor.acceptAnnotationTypeReference(annotation.type.getTypeName(), annotation.sourceStart, annotation.sourceEnd);
@@ -560,15 +562,19 @@
 			(int)(messageSend.nameSourcePosition >>> 32));
 	}
 }
-protected void consumeNormalAnnotation() {
-	super.consumeNormalAnnotation();
+
+@Override
+protected void consumeNormalAnnotation(boolean isTypeAnnotation) {
+	super.consumeNormalAnnotation(isTypeAnnotation);
 	Annotation annotation = (Annotation)expressionStack[expressionPtr];
 	if (reportReferenceInfo) { // accept annotation type reference
 		this.requestor.acceptAnnotationTypeReference(annotation.type.getTypeName(), annotation.sourceStart, annotation.sourceEnd);
 	}
 }
-protected void consumeSingleMemberAnnotation() {
-	super.consumeSingleMemberAnnotation();
+
+@Override
+protected void consumeSingleMemberAnnotation(boolean isTypeAnnotation) {
+	super.consumeSingleMemberAnnotation(isTypeAnnotation);
 	SingleMemberAnnotation member = (SingleMemberAnnotation) expressionStack[expressionPtr];
 	if (reportReferenceInfo) {
 		requestor.acceptMethodReference(TypeConstants.VALUE, 0, member.sourceStart);
diff --git a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/ITDInserter.java b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/ITDInserter.java
index 08b7748..075a4b1 100644
--- a/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/ITDInserter.java
+++ b/org.eclipse.ajdt.core/src/org/eclipse/ajdt/core/parserbridge/ITDInserter.java
@@ -42,6 +42,7 @@
 import org.eclipse.jdt.internal.compiler.ast.TypeDeclaration;
 import org.eclipse.jdt.internal.compiler.ast.TypeParameter;
 import org.eclipse.jdt.internal.compiler.ast.TypeReference;
+import org.eclipse.jdt.internal.compiler.classfmt.TypeAnnotationWalker;
 import org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding;
 import org.eclipse.jdt.internal.compiler.lookup.BlockScope;
 import org.eclipse.jdt.internal.compiler.lookup.ClassScope;
@@ -328,7 +329,7 @@
      */
     protected TypeBinding getReturnTypeBinding(char[] typeName, TypeBinding ititBinding) {
         TypeBinding typeBinding = env.getTypeFromTypeSignature(new SignatureWrapper(typeName), 
-                new TypeVariableBinding[0], (ReferenceBinding) ititBinding, new char[0][][]);
+                new TypeVariableBinding[0], (ReferenceBinding) ititBinding, new char[0][][],TypeAnnotationWalker.EMPTY_ANNOTATION_WALKER);
             typeBinding = BinaryTypeBinding.resolveType(typeBinding, env, false);
         return typeBinding;
     }
diff --git a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
index ee45fd3..98d41a3 100755
--- a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
+++ b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/debug/ui/actions/ToggleBreakpointAdapter.java
@@ -254,7 +254,7 @@
             throw new CoreException(Status.CANCEL_STATUS);
         }
         IDocument document = documentProvider.getDocument(editorInput);
-        ASTParser parser = ASTParser.newParser(AST.JLS3);
+        ASTParser parser = ASTParser.newParser(AST.JLS8);
         parser.setSource(document.get().toCharArray());
         return (CompilationUnit) parser.createAST(null);
     }
diff --git a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/ITDRenameRefactoringProvider.java b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/ITDRenameRefactoringProvider.java
index c67f607..d72fed7 100644
--- a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/ITDRenameRefactoringProvider.java
+++ b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/ITDRenameRefactoringProvider.java
@@ -133,7 +133,7 @@
                 AspectsConvertingParser acp = new AspectsConvertingParser(contents);
                 acp.convert(ConversionOptions.CONSTANT_SIZE);
                 AJCompilationUnit clone = ajUnit.ajCloneCachingContents(acp.content);
-                ASTParser parser = ASTParser.newParser(AST.JLS3);
+                ASTParser parser = ASTParser.newParser(AST.JLS8);
                 parser.setBindingsRecovery(true);
                 parser.setResolveBindings(true);
                 parser.setSource(clone);
diff --git a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/PushInRefactoring.java b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/PushInRefactoring.java
index 0479985..333245f 100644
--- a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/PushInRefactoring.java
+++ b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/PushInRefactoring.java
@@ -162,7 +162,7 @@
         void computeImports(List<IMember> itds, ICompilationUnit ajUnit, IProgressMonitor monitor)
                 throws JavaModelException {
             IJavaProject project = ajUnit.getJavaProject();
-            ASTParser parser = ASTParser.newParser(AST.JLS3);
+            ASTParser parser = ASTParser.newParser(AST.JLS8);
             parser.setProject(project);
             parser.setResolveBindings(true);
             parser.setSource(ajUnit);
@@ -465,7 +465,7 @@
                 final Set<IJavaProject> set= projects.keySet();
                 subMonitor.beginTask("Compiling source...", set.size());
                 for (IJavaProject project : projects.keySet()) {
-                    ASTParser parser= ASTParser.newParser(AST.JLS3);
+                    ASTParser parser= ASTParser.newParser(AST.JLS8);
                     parser.setProject(project);
                     parser.setResolveBindings(true);
                     Collection<ICompilationUnit> collection= projects.get(project);
diff --git a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/pullout/PullOutRefactoring.java b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/pullout/PullOutRefactoring.java
index 366bbb9..1e71d41 100644
--- a/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/pullout/PullOutRefactoring.java
+++ b/org.eclipse.ajdt.ui/src/org/eclipse/ajdt/internal/ui/refactoring/pullout/PullOutRefactoring.java
@@ -684,7 +684,7 @@
             ICompilationUnit[] cus = memberMap.keySet().toArray(new ICompilationUnit[0]);
             Arrays.sort(cus, CompilationUnitComparator.the);
             for (ICompilationUnit cu : cus) {
-                ASTParser parser= ASTParser.newParser(AST.JLS3);
+                ASTParser parser= ASTParser.newParser(AST.JLS8);
                 parser.setSource(cu);
                 parser.setResolveBindings(true);
                 ASTNode cuNode = parser.createAST(pm);
@@ -962,7 +962,7 @@
             for (ICompilationUnit cu : memberMap.keySet()) {
                 
                 // Prepare an ASTRewriter for this compilation unit
-                ASTParser parser= ASTParser.newParser(AST.JLS3);
+                ASTParser parser= ASTParser.newParser(AST.JLS8);
                 parser.setSource(cu);
                 ASTNode cuNode = parser.createAST(pm);
                 MultiTextEdit cuEdits = new MultiTextEdit();
diff --git a/org.eclipse.contribution.weaving.jdt.tests/src/org/eclipse/contribution/weaving/jdt/tests/sourceprovider/SourceTransformerTests.java b/org.eclipse.contribution.weaving.jdt.tests/src/org/eclipse/contribution/weaving/jdt/tests/sourceprovider/SourceTransformerTests.java
index 9c7b014..5fcbfa6 100644
--- a/org.eclipse.contribution.weaving.jdt.tests/src/org/eclipse/contribution/weaving/jdt/tests/sourceprovider/SourceTransformerTests.java
+++ b/org.eclipse.contribution.weaving.jdt.tests/src/org/eclipse/contribution/weaving/jdt/tests/sourceprovider/SourceTransformerTests.java
@@ -31,6 +31,7 @@
 import org.eclipse.jdt.internal.compiler.env.IBinaryMethod;
 import org.eclipse.jdt.internal.compiler.env.IBinaryNestedType;
 import org.eclipse.jdt.internal.compiler.env.IBinaryType;
+import org.eclipse.jdt.internal.compiler.env.IBinaryTypeAnnotation;
 import org.eclipse.jdt.internal.core.BinaryType;
 import org.eclipse.jdt.internal.core.JavaElement;
 import org.eclipse.jdt.internal.core.JavaModelManager;
@@ -230,5 +231,8 @@
             return null;
         }
         
+		public IBinaryTypeAnnotation[] getTypeAnnotations() {
+			return null;
+		}
     }
 }