import com.intellij.psi.*;
import com.intellij.psi.impl.source.resolve.reference.impl.providers.JavaClassReference;
import com.intellij.psi.impl.source.resolve.reference.impl.providers.JavaClassReferenceProvider;
-import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.InheritanceUtil;
import com.intellij.psi.util.PsiUtil;
import com.intellij.util.ProcessingContext;
final boolean allowEnum,
final DomElementAnnotationHolder holder) {
final Project project = element.getManager().getProject();
- PsiClass extendClass = JavaPsiFacade.getInstance(project).findClass(name, GlobalSearchScope.allScope(project));
+ PsiClass extendClass = JavaPsiFacade.getInstance(project).findClass(name, value.getResolveScope());
final SmartList<DomElementProblemDescriptor> list = new SmartList<DomElementProblemDescriptor>();
if (extendClass != null) {
if (!name.equals(value.getQualifiedName()) && !value.isInheritor(extendClass, true)) {
for (PsiMethod method : value.getConstructors()) {
final PsiParameterList psiParameterList = method.getParameterList();
if (psiParameterList.getParametersCount() != 1) continue;
- final PsiType psiType = psiParameterList.getParameters()[0].getTypeElement().getType();
- if (psiType instanceof PsiClassType) {
- final PsiClass psiClass = ((PsiClassType)psiType).resolve();
- if (psiClass != null && InheritanceUtil.isInheritorOrSelf(psiClass, extendClass, true)) {
- hasConstructor = true;
- break;
+ PsiTypeElement typeElement = psiParameterList.getParameters()[0].getTypeElement();
+ if (typeElement != null) {
+ final PsiType psiType = typeElement.getType();
+ if (psiType instanceof PsiClassType) {
+ final PsiClass psiClass = ((PsiClassType)psiType).resolve();
+ if (psiClass != null && InheritanceUtil.isInheritorOrSelf(psiClass, extendClass, true)) {
+ hasConstructor = true;
+ break;
+ }
}
}
}