Collection<DeclarationDescriptor> () { List<DeclarationDescriptor> descriptors = new ArrayList<>(); MemberScope builtIns = DefaultBuiltIns.getInstance().getBuiltInsPackageScope(); for (DeclarationDescriptor packageMember : DescriptorUtils.getAllDescriptors(builtIns)) { packageMember.acceptVoid(new DeclarationDescriptorVisitorEmptyBodies<Void, Void>() { @Override public Void visitClassDescriptor(ClassDescriptor descriptor, Void data) { descriptors.add(descriptor); for (DeclarationDescriptor classMember : DescriptorUtils .getAllDescriptors(descriptor.getDefaultType().getMemberScope())) { classMember.acceptVoid(this); } return null; } @Override public Void visitDeclarationDescriptor(DeclarationDescriptor descriptor, Void data) { descriptors.add(descriptor); return null; } @Override public Void visitPackageViewDescriptor(PackageViewDescriptor descriptor, Void data) { return null; } }); } return descriptors; }