diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java index 6fa1ae4cc5a..f11b5788e0e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/ASTNode.java @@ -242,7 +242,11 @@ public abstract class ASTNode implements IASTNode { @Override public IASTTranslationUnit getTranslationUnit() { - return parent != null ? parent.getTranslationUnit() : null; + IASTNode node = this; + for (IASTNode p = parent; p != null; p = p.getParent()) { + node = p; + } + return node instanceof IASTTranslationUnit ? (IASTTranslationUnit) node : null; } @Override