/** * Returns the resolved reference for this unbound reference. * It does not try to resolve this reference but only returns * the resolved representation if this one was resolved by other clients * explicitly. * @return the resolved reference or <code>null</code>. */ /* @Nullable */ public LightweightTypeReference getResolvedTo() { return internalGetResolvedTo(); }
public boolean internalIsResolved() { return internalGetResolvedTo() != null; }
@Override public boolean isRawType() { if (internalGetResolvedTo() != null) return resolvedTo.isRawType(); return false; }
@Override public boolean isAnonymous() { if (internalGetResolvedTo() != null) return resolvedTo.isAnonymous(); return false; }
@Override public boolean isResolved() { if (internalGetResolvedTo() != null) { return resolvedTo.isResolved(); } return false; }
@Override public LightweightTypeReference getInvariantBoundSubstitute() { if (internalGetResolvedTo() != null) return resolvedTo.getInvariantBoundSubstitute(); return super.getInvariantBoundSubstitute(); }
@Override public LightweightTypeReference getUpperBoundSubstitute() { if (internalGetResolvedTo() != null) return resolvedTo.getUpperBoundSubstitute(); return super.getUpperBoundSubstitute(); }
@Override public LightweightTypeReference getLowerBoundSubstitute() { if (internalGetResolvedTo() != null) return resolvedTo.getLowerBoundSubstitute(); return super.getLowerBoundSubstitute(); }
public List<LightweightBoundTypeArgument> getAllHints() { if (internalGetResolvedTo() != null) { throw new IllegalStateException("Cannot query hints for a resolved reference"); } return getOwner().getAllHints(getHandle()); }
/** * Force this reference to be resolved. If not hints are available, * the reference is resolved to the constraints of the type parameters. * @return the resolved representation. Never <code>null</code>. */ public LightweightTypeReference resolve() { if (internalIsResolved()) return resolvedTo; List<LightweightBoundTypeArgument> allHints = getAllHints(); if (!allHints.isEmpty() && resolveWithHints(allHints)) { LightweightTypeReference result = internalGetResolvedTo(); if (result != null) { return result; } } resolveAgainstConstraints(); return resolvedTo; }
@Override public JvmTypeReference toTypeReference() { if (internalGetResolvedTo() != null) { return resolvedTo.toTypeReference(); } XComputedTypeReference result = getServices().getXtypeFactory().createXComputedTypeReference(); result.setTypeProvider(new UnboundTypeReferenceResolver(this)); return result; }
case KIND_UNBOUND_TYPE_REFERENCE: { UnboundTypeReference castedRight = (UnboundTypeReference) right; LightweightTypeReference resolved = castedRight.internalGetResolvedTo(); if (resolved != null) { return doIsConformant(left, resolved, flags); LightweightTypeReference resolvedLeft = castedLeft.internalGetResolvedTo(); if (resolvedLeft != null) { return doIsConformant(resolvedLeft, castedRight, flags); LightweightTypeReference resolvedLeft = castedLeft.internalGetResolvedTo(); if (resolvedLeft != null) { return doIsConformant(resolvedLeft, right, flags);