// Temporary // Returns true if deprecated constructor is in use, like // ENTRY: Enum(arguments) instead of // ENTRY(arguments) public static boolean enumEntryUsesDeprecatedSuperConstructor(@NotNull JetEnumEntry enumEntry) { JetInitializerList initializerList = enumEntry.getInitializerList(); if (initializerList == null || initializerList.getInitializers().isEmpty()) return false; JetTypeReference typeReference = initializerList.getInitializers().get(0).getTypeReference(); if (typeReference == null) return false; JetUserType userType = (JetUserType) typeReference.getTypeElement(); if (userType == null || userType.getReferenceExpression() instanceof JetEnumEntrySuperclassReferenceExpression) return false; return true; }
@Nullable public static Name getShortName(@NotNull JetAnnotationEntry annotation) { JetTypeReference typeReference = annotation.getTypeReference(); assert typeReference != null : "Annotation entry hasn't typeReference " + annotation.getText(); JetTypeElement typeElement = typeReference.getTypeElement(); if (typeElement instanceof JetUserType) { JetUserType userType = (JetUserType) typeElement; String shortName = userType.getReferencedName(); if (shortName != null) { return Name.identifier(shortName); } } return null; }
/** @return <code>null</code> iff the tye has syntactic errors */ @Nullable public static FqName toQualifiedName(@NotNull JetUserType userType) { List<String> reversedNames = Lists.newArrayList(); JetUserType current = userType; while (current != null) { String name = current.getReferencedName(); if (name == null) return null; reversedNames.add(name); current = current.getQualifier(); } return FqName.fromSegments(ContainerUtil.reverse(reversedNames)); }