|
Lines 30-35
Link Here
|
| 30 |
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateNonTypeParameter; |
30 |
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateNonTypeParameter; |
| 31 |
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter; |
31 |
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateParameter; |
| 32 |
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTemplateParameter; |
32 |
import org.eclipse.cdt.core.dom.ast.cpp.ICPPTemplateTemplateParameter; |
|
|
33 |
import org.eclipse.cdt.internal.core.Util; |
| 33 |
import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding; |
34 |
import org.eclipse.cdt.internal.core.dom.parser.ProblemBinding; |
| 34 |
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInstanceCache; |
35 |
import org.eclipse.cdt.internal.core.dom.parser.cpp.ICPPInstanceCache; |
| 35 |
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants; |
36 |
import org.eclipse.cdt.internal.core.index.IIndexCPPBindingConstants; |
|
Lines 55-60
Link Here
|
| 55 |
|
56 |
|
| 56 |
public PDOMCPPClassTemplate(PDOM pdom, PDOMNode parent, ICPPClassTemplate template) throws CoreException { |
57 |
public PDOMCPPClassTemplate(PDOM pdom, PDOMNode parent, ICPPClassTemplate template) throws CoreException { |
| 57 |
super(pdom, parent, template); |
58 |
super(pdom, parent, template); |
|
|
59 |
try { |
| 60 |
ICPPTemplateParameter[] templateParameters = template.getTemplateParameters(); |
| 61 |
PDOMCPPLinkage linkage = (PDOMCPPLinkage) getLinkageImpl(); |
| 62 |
PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + PARAMETERS, linkage); |
| 63 |
for (ICPPTemplateParameter parameter : templateParameters) { |
| 64 |
PDOMNode pdomParameter = linkage.createBinding(this, parameter); |
| 65 |
if (pdomParameter != null) { |
| 66 |
list.addMember(pdomParameter); |
| 67 |
} |
| 68 |
} |
| 69 |
} catch (DOMException e) { |
| 70 |
throw new CoreException(Util.createStatus(e)); |
| 71 |
} |
| 58 |
} |
72 |
} |
| 59 |
|
73 |
|
| 60 |
public PDOMCPPClassTemplate(PDOM pdom, int bindingRecord) { |
74 |
public PDOMCPPClassTemplate(PDOM pdom, int bindingRecord) { |
|
Lines 140-149
Link Here
|
| 140 |
|
154 |
|
| 141 |
@Override |
155 |
@Override |
| 142 |
public void addChild(PDOMNode member) throws CoreException { |
156 |
public void addChild(PDOMNode member) throws CoreException { |
| 143 |
if (member instanceof ICPPTemplateParameter) { |
157 |
// Template parameters are added in ctor. |
| 144 |
PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + PARAMETERS, getLinkageImpl()); |
158 |
if (!(member instanceof ICPPTemplateParameter)) { |
| 145 |
list.addMember(member); |
|
|
| 146 |
} else { |
| 147 |
super.addChild(member); |
159 |
super.addChild(member); |
| 148 |
} |
160 |
} |
| 149 |
} |
161 |
} |