@NotNull private static FqName getClassRelativeName(@NotNull JetClassOrObject decompiledClassOrObject) { Name name = decompiledClassOrObject.getNameAsName(); assert name != null; JetClassOrObject parent = PsiTreeUtil.getParentOfType(decompiledClassOrObject, JetClassOrObject.class, true); if (parent == null) { assert decompiledClassOrObject.isTopLevel(); return FqName.topLevel(name); } return getClassRelativeName(parent).child(name); }
public void putToIndex(@NotNull JetDeclaration declaration) { if (declaration instanceof JetClassInitializer) { return; } allDeclarations.add(declaration); if (declaration instanceof JetNamedFunction) { JetNamedFunction namedFunction = (JetNamedFunction) declaration; functions.put(safeNameForLazyResolve(namedFunction), namedFunction); } else if (declaration instanceof JetProperty) { JetProperty property = (JetProperty) declaration; properties.put(safeNameForLazyResolve(property), property); } else if (declaration instanceof JetClassOrObject) { JetClassOrObject classOrObject = (JetClassOrObject) declaration; classesAndObjects.put(safeNameForLazyResolve(classOrObject.getNameAsName()), classOrObject); } else if (declaration instanceof JetParameter || declaration instanceof JetTypedef || declaration instanceof JetMultiDeclaration) { // Do nothing, just put it into allDeclarations is enough } else { throw new IllegalArgumentException("Unknown declaration: " + declaration); } }