Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 364226 - ClassCastException indexing template redeclaration
Summary: ClassCastException indexing template redeclaration
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-parser (show other bugs)
Version: 8.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: 8.1.0   Edit
Assignee: Markus Schorn CLA
QA Contact: Markus Schorn CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 364188
  Show dependency tree
 
Reported: 2011-11-19 14:53 EST by Marc-André Laperle CLA
Modified: 2012-02-23 11:33 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marc-André Laperle CLA 2011-11-19 14:53:10 EST
Tested with 8.0.0, 8.0.1 and master. From bug 364188.

This code doesn't compile but I don't think it should trigger an exception when indexing:


template<template<class > class Y> class Template;
template<class> class Template;



java.lang.ClassCastException: org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleTypeTemplateParameter cannot be cast to org.eclipse.cdt.core.dom.ast.cpp.ICPPASTTemplatedTypeTemplateParameter
	at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplateTemplateParameter.getTemplateParameters(CPPTemplateTemplateParameter.java:77)
	at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPTemplateTemplateParameter.update(PDOMCPPTemplateTemplateParameter.java:217)
	at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPClassTemplate.updateTemplateParameters(PDOMCPPClassTemplate.java:157)
	at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPClassTemplate.update(PDOMCPPClassTemplate.java:122)
	at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkage.addBinding(PDOMCPPLinkage.java:298)
	at org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPLinkage.addBinding(PDOMCPPLinkage.java:237)
	at org.eclipse.cdt.internal.core.pdom.dom.PDOMFile.createPDOMName(PDOMFile.java:490)
	at org.eclipse.cdt.internal.core.pdom.dom.PDOMFile.addNames(PDOMFile.java:457)
	at org.eclipse.cdt.internal.core.pdom.WritablePDOM.addFileContent(WritablePDOM.java:132)
	at org.eclipse.cdt.internal.core.index.WritableCIndex.setFileContent(WritableCIndex.java:93)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.storeFileInIndex(PDOMWriter.java:560)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.storeSymbolsInIndex(PDOMWriter.java:264)
	at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:212)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.writeToIndex(AbstractIndexerTask.java:1112)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:961)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:786)
	at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:494)
	at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:137)
	at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:137)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Comment 1 Markus Schorn CLA 2011-11-30 05:03:48 EST
Thanks for the sample code!
Added testcase and fix.
Comment 2 CDT Genie CLA 2011-11-30 09:23:10 EST
*** cdt git genie on behalf of Markus Schorn ***

    Bug 364226: Invalid redeclaration of class-template.

[*] http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=6e0560d4f59e2091b15bc5359774fff628108f2d