if (!allowStructuralMostSpecific || actual == null) {
return super.compatible(found, req, warn);
} else {
switch (actual.getTag()) {
case DEFERRED:
DeferredType dt = (DeferredType) actual;
DeferredType.SpeculativeCache.Entry e = dt.speculativeCache.get(deferredAttrContext.msym, deferredAttrContext.phase);
return (e == null || e.speculativeTree == deferredAttr.stuckTree)
? super.compatible(found, req, warn) :
mostSpecific(found, req, e.speculativeTree, warn);
default: