Merge remote-tracking branch 'origin/master' into BETA_JAVA9
diff --git a/org.eclipse.jdt.ui/css/e4-dark_jdt_syntaxhighlighting.css b/org.eclipse.jdt.ui/css/e4-dark_jdt_syntaxhighlighting.css
index a7e98f5..6a0984b 100644
--- a/org.eclipse.jdt.ui/css/e4-dark_jdt_syntaxhighlighting.css
+++ b/org.eclipse.jdt.ui/css/e4-dark_jdt_syntaxhighlighting.css
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2014 Lars Vogel and others.
+ * Copyright (c) 2014, 2016 Lars Vogel 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
@@ -89,4 +89,13 @@
 		'semanticHighlighting.typeParameter.color=191,164,164'
 		'semanticHighlighting.typeParameter.enabled=true'
 		'sourceHoverBackgroundColor=68,68,68'
-}
\ No newline at end of file
+}
+
+BulletListBlock > StyledText {
+    background-color: #3f4447;
+    color: #BBBBBB;
+}
+
+
+
+
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java
index 23c3bed..9126013 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ASTResolving.java
@@ -167,67 +167,69 @@
 			parent= parent.getParent();
 		}
 
-		switch (parent.getNodeType()) {
-			case ASTNode.TYPE_DECLARATION:
-				if (node.getLocationInParent() == TypeDeclaration.SUPER_INTERFACE_TYPES_PROPERTY) {
+		if (parent != null) {
+			switch (parent.getNodeType()) {
+				case ASTNode.TYPE_DECLARATION:
+					if (node.getLocationInParent() == TypeDeclaration.SUPER_INTERFACE_TYPES_PROPERTY) {
+						kind= SimilarElementsRequestor.INTERFACES;
+					} else if (node.getLocationInParent() == TypeDeclaration.SUPERCLASS_TYPE_PROPERTY) {
+						kind= SimilarElementsRequestor.CLASSES;
+					}
+					break;
+				case ASTNode.ENUM_DECLARATION:
 					kind= SimilarElementsRequestor.INTERFACES;
-				} else if (node.getLocationInParent() == TypeDeclaration.SUPERCLASS_TYPE_PROPERTY) {
-					kind= SimilarElementsRequestor.CLASSES;
-				}
-				break;
-			case ASTNode.ENUM_DECLARATION:
-				kind= SimilarElementsRequestor.INTERFACES;
-				break;
-			case ASTNode.METHOD_DECLARATION:
-				if (node.getLocationInParent() == MethodDeclaration.THROWN_EXCEPTION_TYPES_PROPERTY) {
-					kind= SimilarElementsRequestor.CLASSES;
-				} else if (node.getLocationInParent() == MethodDeclaration.RETURN_TYPE2_PROPERTY) {
-					kind= SimilarElementsRequestor.ALL_TYPES | SimilarElementsRequestor.VOIDTYPE;
-				}
-				break;
-			case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
-				kind= SimilarElementsRequestor.PRIMITIVETYPES | SimilarElementsRequestor.ANNOTATIONS | SimilarElementsRequestor.ENUMS;
-				break;
-			case ASTNode.INSTANCEOF_EXPRESSION:
-				kind= SimilarElementsRequestor.REF_TYPES;
-				break;
-			case ASTNode.THROW_STATEMENT:
-				kind= SimilarElementsRequestor.CLASSES;
-				break;
-			case ASTNode.CLASS_INSTANCE_CREATION:
-				if (((ClassInstanceCreation) parent).getAnonymousClassDeclaration() == null) {
-					kind= SimilarElementsRequestor.CLASSES;
-				} else {
-					kind= SimilarElementsRequestor.CLASSES | SimilarElementsRequestor.INTERFACES;
-				}
-				break;
-			case ASTNode.SINGLE_VARIABLE_DECLARATION:
-				int superParent= parent.getParent().getNodeType();
-				if (superParent == ASTNode.CATCH_CLAUSE) {
-					kind= SimilarElementsRequestor.CLASSES;
-				} else if (superParent == ASTNode.ENHANCED_FOR_STATEMENT) {
+					break;
+				case ASTNode.METHOD_DECLARATION:
+					if (node.getLocationInParent() == MethodDeclaration.THROWN_EXCEPTION_TYPES_PROPERTY) {
+						kind= SimilarElementsRequestor.CLASSES;
+					} else if (node.getLocationInParent() == MethodDeclaration.RETURN_TYPE2_PROPERTY) {
+						kind= SimilarElementsRequestor.ALL_TYPES | SimilarElementsRequestor.VOIDTYPE;
+					}
+					break;
+				case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
+					kind= SimilarElementsRequestor.PRIMITIVETYPES | SimilarElementsRequestor.ANNOTATIONS | SimilarElementsRequestor.ENUMS;
+					break;
+				case ASTNode.INSTANCEOF_EXPRESSION:
 					kind= SimilarElementsRequestor.REF_TYPES;
-				}
-				break;
-			case ASTNode.TAG_ELEMENT:
-				kind= SimilarElementsRequestor.REF_TYPES;
-				break;
-			case ASTNode.MARKER_ANNOTATION:
-			case ASTNode.SINGLE_MEMBER_ANNOTATION:
-			case ASTNode.NORMAL_ANNOTATION:
-				kind= SimilarElementsRequestor.ANNOTATIONS;
-				break;
-			case ASTNode.TYPE_PARAMETER:
-				if (((TypeParameter) parent).typeBounds().indexOf(node) > 0) {
-					kind= SimilarElementsRequestor.INTERFACES;
-				} else {
-					kind= SimilarElementsRequestor.REF_TYPES_AND_VAR;
-				}
-				break;
-			case ASTNode.TYPE_LITERAL:
-				kind= SimilarElementsRequestor.REF_TYPES;
-				break;
-			default:
+					break;
+				case ASTNode.THROW_STATEMENT:
+					kind= SimilarElementsRequestor.CLASSES;
+					break;
+				case ASTNode.CLASS_INSTANCE_CREATION:
+					if (((ClassInstanceCreation) parent).getAnonymousClassDeclaration() == null) {
+						kind= SimilarElementsRequestor.CLASSES;
+					} else {
+						kind= SimilarElementsRequestor.CLASSES | SimilarElementsRequestor.INTERFACES;
+					}
+					break;
+				case ASTNode.SINGLE_VARIABLE_DECLARATION:
+					int superParent= parent.getParent().getNodeType();
+					if (superParent == ASTNode.CATCH_CLAUSE) {
+						kind= SimilarElementsRequestor.CLASSES;
+					} else if (superParent == ASTNode.ENHANCED_FOR_STATEMENT) {
+						kind= SimilarElementsRequestor.REF_TYPES;
+					}
+					break;
+				case ASTNode.TAG_ELEMENT:
+					kind= SimilarElementsRequestor.REF_TYPES;
+					break;
+				case ASTNode.MARKER_ANNOTATION:
+				case ASTNode.SINGLE_MEMBER_ANNOTATION:
+				case ASTNode.NORMAL_ANNOTATION:
+					kind= SimilarElementsRequestor.ANNOTATIONS;
+					break;
+				case ASTNode.TYPE_PARAMETER:
+					if (((TypeParameter) parent).typeBounds().indexOf(node) > 0) {
+						kind= SimilarElementsRequestor.INTERFACES;
+					} else {
+						kind= SimilarElementsRequestor.REF_TYPES_AND_VAR;
+					}
+					break;
+				case ASTNode.TYPE_LITERAL:
+					kind= SimilarElementsRequestor.REF_TYPES;
+					break;
+				default:
+			}
 		}
 		return kind & mask;
 	}