1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-29 20:05:35 +02:00

References to template parameters stored in index, bug 256095

This commit is contained in:
Markus Schorn 2008-11-24 09:36:43 +00:00
parent 7db7ce6ac9
commit 3898f8eaa7

View file

@ -38,8 +38,10 @@ import org.eclipse.cdt.core.dom.ast.IProblemBinding;
import org.eclipse.cdt.core.dom.ast.ITypedef;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTUsingDirective;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPClassTemplate;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPDeferredTemplateInstance;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespace;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPNamespaceAlias;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter;
import org.eclipse.cdt.core.dom.ast.cpp.ICPPASTCompositeTypeSpecifier.ICPPASTBaseSpecifier;
import org.eclipse.cdt.core.index.IIndexFileLocation;
import org.eclipse.cdt.core.parser.IProblem;
@ -243,17 +245,19 @@ abstract public class PDOMWriter {
if (fShowProblems) {
reportProblem((IProblemBinding) binding);
}
}
else if (name.isReference()) {
if ((fSkipReferences & SKIP_TYPE_REFERENCES) != 0) {
if (isTypeReferenceBinding(binding) && !isRequiredReference(name)) {
} else if (name.isReference()) {
if (binding instanceof ICPPTemplateParameter ||
binding instanceof ICPPDeferredTemplateInstance ||
((fSkipReferences & SKIP_TYPE_REFERENCES) != 0 && isTypeReferenceBinding(binding))) {
if (!isRequiredReference(name)) {
na[0]= null;
fStatistics.fReferenceCount--;
}
}
} else {
fStatistics.fReferenceCount++;
}
else {
} else {
fStatistics.fReferenceCount++;
}
} else {
fStatistics.fDeclarationCount++;
}
} catch (RuntimeException e) {