Community
Participate
Working Groups
I got this exception when opening the GNU C++ include <complex> of my cygwin installation. Exception in thread "org.eclipse.cdt.internal.ui.text.CReconciler" java.lang.ClassCastException: org.eclipse.cdt.internal.core.pdom.dom.cpp.PDOMCPPTemplateTypeParameter at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplateDefinition.updateTemplateParameterBindings(CPPTemplateDefinition.java:362) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplateDefinition.addDefinition(CPPTemplateDefinition.java:316) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunctionTemplate.addDefinition(CPPFunctionTemplate.java:128) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:561) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:195) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.getContainingTemplate(CPPTemplates.java:167) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPTemplates.createBinding(CPPTemplates.java:176) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVisitor.createBinding(CPPVisitor.java:209) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.resolveBinding(CPPASTName.java:73) at org.eclipse.cdt.internal.ui.editor.SemanticToken.getBinding(SemanticToken.java:47) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightings$MacroReferenceHighlighting.consumes(SemanticHighlightings.java:1234) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visitNode(SemanticHighlightingReconciler.java:231) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler$PositionCollector.visit(SemanticHighlightingReconciler.java:177) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.accept(CPPASTName.java:127) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleTypeTemplateParameter.accept(CPPASTSimpleTypeTemplateParameter.java:80) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTemplateDeclaration.accept(CPPASTTemplateDeclaration.java:92) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamespaceDefinition.accept(CPPASTNamespaceDefinition.java:88) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTranslationUnit.accept(CPPASTTranslationUnit.java:566) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconcilePositions(SemanticHighlightingReconciler.java:436) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconciled(SemanticHighlightingReconciler.java:401) at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:2565) at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:2504) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:160) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.initialReconcile(CReconcilingStrategy.java:169) at org.eclipse.jface.text.reconciler.MonoReconciler.initialProcess(MonoReconciler.java:103) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:170)
Hi Bryan, can you look at this?
Yes, I'll have a look.
Created attachment 62113 [details] proposed patch Patch modifies CPPVisitor.createBinding(ICPPASTElaboratedTypeSpecifier) to ignore IIndexBindings and forces it to create a new ICPPInternalBinding instead. This behaviour is already implemented in other CPPVisitor.createBinding(...) methods.
Patch applied. Thanks, Bryan.
Verified. Thanks.