private static List<? extends PsiElement> resolveSimpleReference( @NotNull DartReference reference) { final List<? extends PsiElement> result = resolveSimpleReference(reference, reference.getCanonicalText()); final PsiElement parent = reference.getParent(); final PsiElement superParent = parent.getParent(); final boolean isSimpleConstructor = parent instanceof DartType && superParent instanceof DartNewExpression && ((DartNewExpression) superParent).getReferenceExpression() == null; if (!isSimpleConstructor || result.isEmpty()) { return result; } final List<PsiElement> filteredResult = new ArrayList<PsiElement>(result.size()); for (PsiElement element : result) { final PsiElement elementParent = element.getParent(); if (element instanceof DartComponentName && elementParent instanceof DartClass) { final DartComponent component = ((DartClass) elementParent).findNamedConstructor(reference.getCanonicalText()); if (component != null && DartComponentType.typeOf(component) == DartComponentType.CONSTRUCTOR) { filteredResult.add(component.getComponentName()); continue; } } filteredResult.add(element); } return filteredResult; }