Bug 416781 - reconcile compiler changes from BETA_JAVA8 with OT/J
- adjust to IntersectionCastTypeBinding which has no name
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/core/compiler/OTNameUtils.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/core/compiler/OTNameUtils.java
index 131b715..cd8d40c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/core/compiler/OTNameUtils.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/core/compiler/OTNameUtils.java
@@ -85,6 +85,8 @@
 
 	/** Does name denote a synthetic marker interface used for marking tsuper methods? */
 	public static boolean isTSuperMarkerInterface(char[] name) {
+		if (name == null) // some types like LocalTypeBinding and IntersectionCastTypeBinding don't have a name
+			return false;
 		int lastDollar = CharOperation.lastIndexOf('$', name);
 		if (lastDollar > -1)
 			name = CharOperation.subarray(name, lastDollar+1, -1);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/RoleTypeCreator.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/RoleTypeCreator.java
index ca2c67e..b7118cb 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/RoleTypeCreator.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/util/RoleTypeCreator.java
@@ -606,6 +606,9 @@
 	        		}
 	        	};
 	        }
+	        if (typeToWrap instanceof IntersectionCastTypeBinding) { // FIXME (recurse?)
+	        	return originalType;
+	        }
 	        ReferenceBinding refBinding = (ReferenceBinding)typeToWrap;
 	        if (refBinding.isTypeVariable()) {
 	        	// inplace modifying the type variable. TODO(SH): is this ok, or do we need a copy?