diff --git a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclarationTestSource.awts b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclarationTestSource.awts index 206c80cece2..f57045592bd 100644 --- a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclarationTestSource.awts +++ b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclarationTestSource.awts @@ -164,3 +164,11 @@ int main() //%CPP static_assert(true, "Should always pass"); static_assert(sizeof (int) == 4); + +//!Inline namespace +//%CPP +inline namespace InlnNS +{ + + +} diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java index 7d7b6111869..27aada07f67 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java @@ -203,6 +203,9 @@ public class DeclarationWriter extends NodeWriter { } private void writeNamespaceDefinition(ICPPASTNamespaceDefinition namespaceDefinition) { + if (namespaceDefinition.isInline()) { + scribe.printStringSpace(Keywords.INLINE); + } scribe.printStringSpace(Keywords.NAMESPACE); namespaceDefinition.getName().accept(visitor); writeGCCAttributes(namespaceDefinition, EnumSet.of(SpaceLocation.BEFORE)); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java index 7cec2794187..7831a61b246 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/formatter/CodeFormatterVisitor.java @@ -1089,6 +1089,12 @@ public class CodeFormatterVisitor extends ASTVisitor implements ICPPASTVisitor, public int visit(ICPPASTNamespaceDefinition node) { if (!enterNode(node)) { return PROCESS_SKIP; } final int line= scribe.line; + + if (node.isInline()) { + scribe.printNextToken(Token.t_inline, false); + scribe.space(); + } + // namespace scribe.printNextToken(Token.t_namespace, false); scribe.space(); diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java index 0b56b5b6905..30e51cc960e 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/CodeFormatterTest.java @@ -3371,4 +3371,17 @@ public class CodeFormatterTest extends BaseUITestCase { public void testSwitchInitStatementFormat_4() throws Exception { assertFormatterResult(); } + + //namespace na { + //inline namespace nb { + //} + //} + + //namespace na { + //inline namespace nb { + //} + //} + public void testInlineNamespace_Bug532849() throws Exception { + assertFormatterResult(); + } }