public static List<? extends PsiElement> resolveSimpleReference( PsiElement scopeElement, String name) { final List<DartComponentName> result = new ArrayList<DartComponentName>(); // local final ResolveScopeProcessor resolveScopeProcessor = new ResolveScopeProcessor(result, name, DartResolveUtil.isLValue(scopeElement)); PsiTreeUtil.treeWalkUp(resolveScopeProcessor, scopeElement, null, new ResolveState()); // supers final DartClass dartClass = PsiTreeUtil.getParentOfType(scopeElement, DartClass.class); final boolean inClass = PsiTreeUtil.getParentOfType(scopeElement, DartClassBody.class, false) != null; if (result.isEmpty() && dartClass != null && inClass) { final DartComponent field = filterAccess(scopeElement, dartClass.findMembersByName(name)); if (field != null) { return toResult(field.getComponentName()); } } // global if (result.isEmpty()) { final List<VirtualFile> libraryFiles = DartResolveUtil.findLibrary(scopeElement.getContainingFile()); DartResolveUtil.processTopLevelDeclarations( scopeElement, resolveScopeProcessor, libraryFiles, name); } // dart:core if (result.isEmpty() && !"void".equals(name)) { final List<VirtualFile> libraryFiles = DartLibraryIndex.findLibraryClass(scopeElement, "dart:core"); DartResolveUtil.processTopLevelDeclarations( scopeElement, resolveScopeProcessor, libraryFiles, name); } return result; }