From dbb59673cecab61db04483828937e55947dc84c1 Mon Sep 17 00:00:00 2001 From: John Camelon Date: Mon, 18 Apr 2005 17:46:27 +0000 Subject: [PATCH] Partial fix/adjustment for Bug 91530 - FileTypeResolver reports a C++ header file as a C file. InternalASTServiceProvider#getTranslationUnit() now assumes that a header file is a C++ file. --- .../core/dom/InternalASTServiceProvider.java | 28 ++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java index 6eb8c944db9..cf1f4139310 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/dom/InternalASTServiceProvider.java @@ -10,7 +10,6 @@ **********************************************************************/ package org.eclipse.cdt.internal.core.dom; -import org.eclipse.cdt.core.CCProjectNature; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.dom.IASTServiceProvider; import org.eclipse.cdt.core.dom.ICodeReaderFactory; @@ -44,7 +43,6 @@ import org.eclipse.cdt.internal.core.parser.scanner2.IScannerExtensionConfigurat import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; /** * @author jcamelon @@ -230,22 +228,14 @@ public class InternalASTServiceProvider implements IASTServiceProvider { { IProject project = resource.getProject(); ICFileType type = CCorePlugin.getDefault().getFileType(project, resource.getLocation().lastSegment()); - String lid = type.getLanguage().getId(); - try { - if( lid != null ) { - if( lid.equals(ICFileTypeConstants.LANG_C )) { - if (type.isHeader() && project.hasNature(CCProjectNature.CC_NATURE_ID)) - return ParserLanguage.CPP; - else - return ParserLanguage.C; - } else if( lid.equals(ICFileTypeConstants.LANG_CXX)) - return ParserLanguage.CPP; - } else if( project.hasNature( CCProjectNature.CC_NATURE_ID )) - return ParserLanguage.CPP; - } catch (CoreException e) { - } - - // Actually, it probably isn't a C file, but anyway... - return ParserLanguage.C; + boolean isHeader= type.isHeader(); + if( isHeader ) + return ParserLanguage.CPP; // assumption + String lid = type.getLanguage().getId(); + if( lid.equals(ICFileTypeConstants.LANG_CXX)) + return ParserLanguage.CPP; + if( lid.equals( ICFileTypeConstants.LANG_C ) ) + return ParserLanguage.C; + return ParserLanguage.CPP; } }