Exact (@NotNull PsiType type) { if (type instanceof PsiArrayType arrayType) { PsiType componentType = arrayType.getComponentType(); if (componentType instanceof PsiPrimitiveType) { for (PrimitiveArray p : PrimitiveArray.values()) { if (p.getType().equals(componentType)) { return p; } } return null; } Exact componentConstraint = createExact(componentType); return componentConstraint == null ? null : new ExactArray(componentConstraint); } if (type instanceof PsiClassType classType) { PsiClass psiClass = classType.resolve(); if (psiClass == null) { return new Unresolved(type.getCanonicalText()); } if (!(psiClass instanceof PsiTypeParameter)) { return exactClass(psiClass); } } return null; }