Merge pull request #2572 from wsnyder/interface_class
Fix formatting of `interface class`
diff --git a/verible/verilog/formatting/formatter_test.cc b/verible/verilog/formatting/formatter_test.cc
index 25d200e..4d92b55 100644
--- a/verible/verilog/formatting/formatter_test.cc
+++ b/verible/verilog/formatting/formatter_test.cc
@@ -3885,6 +3885,22 @@
" endtask\n"
" // class is about to end\n"
"endclass\n"},
+
+ // interface class test cases
+ {"interface class Foo;\nendclass\n",
+ "interface class Foo;\n"
+ "endclass\n"},
+ {"interface class Foo ; endclass\n",
+ "interface class Foo;\n"
+ "endclass\n"},
+ {"interface class Foo extends Bar , Baz ;\nendclass\n",
+ "interface class Foo extends Bar, Baz;\n"
+ "endclass\n"},
+ {"interface class Foo;\n pure virtual task foo ( ) ; \nendclass\n",
+ "interface class Foo;\n"
+ " pure virtual task foo();\n"
+ "endclass\n"},
+
// class property alignment test cases
{"class c;\n"
"int foo ;\n"
diff --git a/verible/verilog/formatting/tree-unwrapper.cc b/verible/verilog/formatting/tree-unwrapper.cc
index 28f6391..9664c98 100644
--- a/verible/verilog/formatting/tree-unwrapper.cc
+++ b/verible/verilog/formatting/tree-unwrapper.cc
@@ -803,6 +803,7 @@
case NodeEnum::kTypeDeclaration:
case NodeEnum::kNetTypeDeclaration:
case NodeEnum::kForwardDeclaration:
+ case NodeEnum::kInterfaceClassMethod:
case NodeEnum::kConstraintDeclaration:
case NodeEnum::kConstraintExpression:
case NodeEnum::kCovergroupDeclaration:
@@ -881,6 +882,7 @@
case NodeEnum::kTaskDeclaration:
case NodeEnum::kClassDeclaration:
case NodeEnum::kClassHeader:
+ case NodeEnum::kInterfaceClassDeclaration:
case NodeEnum::kBegin:
case NodeEnum::kEnd:
// case NodeEnum::kFork: // TODO(fangism): introduce this node enum
@@ -1201,7 +1203,6 @@
// For the following constructs, always expand the view to subpartitions.
// Add a level of indentation.
case NodeEnum::kPackageImportList:
- case NodeEnum::kInterfaceClassDeclaration:
case NodeEnum::kCasePatternItemList:
case NodeEnum::kConstraintBlockItemList:
case NodeEnum::kConstraintExpressionList:
@@ -1311,6 +1312,7 @@
case NodeEnum::kCaseInsideItemList:
case NodeEnum::kGenerateCaseItemList:
case NodeEnum::kClassItems:
+ case NodeEnum::kInterfaceClassItemList:
case NodeEnum::kModuleItemList:
case NodeEnum::kGenerateItemList:
// Aligns parameter, net/variable, and assignment declarations in packages.