--- a/langtools/src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Fri Mar 22 12:39:34 2013 +0000
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java Fri Mar 22 12:41:13 2013 +0000
@@ -229,9 +229,9 @@
public Type complete(DeferredType dt, ResultInfo resultInfo, DeferredAttrContext deferredAttrContext) {
switch (deferredAttrContext.mode) {
case SPECULATIVE:
- Assert.check(dt.mode == null ||
- (dt.mode == AttrMode.SPECULATIVE &&
- dt.speculativeType(deferredAttrContext.msym, deferredAttrContext.phase).hasTag(NONE)));
+ //Note: if a symbol is imported twice we might do two identical
+ //speculative rounds...
+ Assert.check(dt.mode == null || dt.mode == AttrMode.SPECULATIVE);
JCTree speculativeTree = attribSpeculative(dt.tree, dt.env, resultInfo);
dt.speculativeCache.put(deferredAttrContext.msym, speculativeTree, deferredAttrContext.phase);
return speculativeTree.type;