@Nullable private DeclarationDescriptor findCurrentDescriptorForMember( @NotNull MemberDescriptor originalDescriptor) { if (!isFromBuiltinModule(originalDescriptor)) return null; DeclarationDescriptor containingDeclaration = findCurrentDescriptor(originalDescriptor.getContainingDeclaration()); JetScope memberScope = getMemberScope(containingDeclaration); if (memberScope == null) return null; String renderedOriginal = DescriptorRenderer.FQ_NAMES_IN_TYPES.render(originalDescriptor); Collection<? extends DeclarationDescriptor> descriptors; if (originalDescriptor instanceof ConstructorDescriptor && containingDeclaration instanceof ClassDescriptor) { descriptors = ((ClassDescriptor) containingDeclaration).getConstructors(); } else { descriptors = memberScope.getAllDescriptors(); } for (DeclarationDescriptor member : descriptors) { if (renderedOriginal.equals(DescriptorRenderer.FQ_NAMES_IN_TYPES.render(member))) { return member; } } return null; }
public static void checkForLoadErrors( @NotNull PackageViewDescriptor packageFromJava, @NotNull BindingContext bindingContext) { Map<DeclarationDescriptor, List<String>> expectedErrors = getExpectedLoadErrors(packageFromJava); Map<DeclarationDescriptor, List<String>> actualErrors = getActualLoadErrors(bindingContext); for (DeclarationDescriptor descriptor : ContainerUtil.union(expectedErrors.keySet(), actualErrors.keySet())) { List<String> actual = actualErrors.get(descriptor); List<String> expected = expectedErrors.get(descriptor); String rendered = DescriptorRenderer.FQ_NAMES_IN_TYPES.render(descriptor); assertNotNull("Unexpected load error(s):\n" + actual + "\ncontainer:" + rendered, expected); assertNotNull("Missing load error(s):\n" + expected + "\ncontainer:" + rendered, actual); assertSameElements( "Unexpected/missing load error(s)\ncontainer:" + rendered, actual, expected); } }