diff --git a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclaratorTestSource.awts b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclaratorTestSource.awts index d1adcb49b01..0c541c209c8 100644 --- a/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclaratorTestSource.awts +++ b/core/org.eclipse.cdt.core.tests/resources/rewrite/ASTWriterDeclaratorTestSource.awts @@ -92,6 +92,20 @@ int b, a; } +//!ICPPASTDeclarator with nested declarator being a variable +//%C +int *(*var[3]); + +//!ICPPASTDeclarator with nested declarator and redundant parentheses +//%C +char (*((*fptr))(int, char)); + +//!ICPPASTDeclarator with nested declarator as a method +//%CPP +class Foo +{ + int (*(*aMethod())[2]); +}; //!ICPPASTReferenceOperator rvalue reference //%CPP int && foo(int && a) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclaratorWriter.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclaratorWriter.java index b20d2542f6c..3cef7d0691e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclaratorWriter.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclaratorWriter.java @@ -79,6 +79,7 @@ public class DeclaratorWriter extends NodeWriter { writePointerOperators(declarator, pointOps); IASTName name = declarator.getName(); name.accept(visitor); + writeNestedDeclarator(declarator); IASTInitializer init = getInitializer(declarator); if(init!= null) { init.accept(visitor);