diff --git a/lib/src/front_end/ast_node_visitor.dart b/lib/src/front_end/ast_node_visitor.dart
index b88ba6d..a1fc65a 100644
--- a/lib/src/front_end/ast_node_visitor.dart
+++ b/lib/src/front_end/ast_node_visitor.dart
@@ -220,6 +220,18 @@
   }
 
   @override
+  Piece visitCaseClause(CaseClause node) {
+    return buildPiece((b) {
+      b.token(node.caseKeyword);
+      if (node.guardedPattern.whenClause != null) {
+        throw UnimplementedError();
+      }
+      b.space();
+      b.visit(node.guardedPattern.pattern);
+    });
+  }
+
+  @override
   Piece visitCastPattern(CastPattern node) {
     throw UnimplementedError();
   }
@@ -1022,11 +1034,14 @@
     void traverse(Token? precedingElse, IfStatement ifStatement) {
       var condition = buildPiece((b) {
         b.token(precedingElse, spaceAfter: true);
-        b.add(startControlFlow(
-            ifStatement.ifKeyword,
-            ifStatement.leftParenthesis,
-            ifStatement.expression,
-            ifStatement.rightParenthesis));
+        b.token(ifStatement.ifKeyword);
+        b.space();
+        b.token(ifStatement.leftParenthesis);
+        b.add(buildPiece((b) {
+          b.visit(ifStatement.expression);
+          b.visit(ifStatement.caseClause, spaceBefore: true);
+        }));
+        b.token(ifStatement.rightParenthesis);
         b.space();
       });
 
diff --git a/test/statement/if_case.stmt b/test/statement/if_case.stmt
new file mode 100644
index 0000000..98c6e58
--- /dev/null
+++ b/test/statement/if_case.stmt
@@ -0,0 +1,7 @@
+40 columns                              |
+>>> Simple bool pattern.
+if (obj case true) {;}
+<<<
+if (obj case true) {
+  ;
+}
