commit | df789541c450eca92e3fb83a71094679e34e670d | [log] [tgz] |
---|---|---|
author | Stephan Herrmann <stephan.herrmann@berlin.de> | Sun Sep 08 00:27:47 2013 +0200 |
committer | Stephan Herrmann <stephan.herrmann@berlin.de> | Sun Sep 08 00:27:47 2013 +0200 |
tree | 1b3bf835520da151ab35e556c1259648e298d942 | |
parent | c4e1c7d87f25bc88e77109cc1e731e9545b950e4 [diff] |
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?