Make TypePatternExpr a subclass of PatternExpr with codegen
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
index 4e0dc06..cb7c6ca 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
@@ -878,18 +878,22 @@
     public void ifTypePatternExpr(Consumer<TypePatternExpr> action) {
     }
 
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public boolean isPatternExpr() {
         return false;
     }
 
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public PatternExpr asPatternExpr() {
         throw new IllegalStateException(f("%s is not PatternExpr, it is %s", this, this.getClass().getSimpleName()));
     }
 
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public Optional<PatternExpr> toPatternExpr() {
         return Optional.empty();
     }
 
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public void ifPatternExpr(Consumer<PatternExpr> action) {
     }
 }
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/PatternExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/PatternExpr.java
index 753cc40..f93904a 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/PatternExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/PatternExpr.java
@@ -23,10 +23,12 @@
 import com.github.javaparser.ast.AllFieldsConstructor;
 import java.util.Optional;
 import java.util.function.Consumer;
+import com.github.javaparser.ast.Generated;
 import com.github.javaparser.ast.visitor.CloneVisitor;
 import com.github.javaparser.metamodel.PatternExprMetaModel;
 import com.github.javaparser.metamodel.JavaParserMetaModel;
 import com.github.javaparser.TokenRange;
+import com.github.javaparser.ast.Node;
 
 public abstract class PatternExpr extends Expression {
 
@@ -35,30 +37,37 @@
     }
 
     @Override
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public boolean isPatternExpr() {
         return true;
     }
 
     @Override
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public PatternExpr asPatternExpr() {
         return this;
     }
 
     @Override
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public Optional<PatternExpr> toPatternExpr() {
         return Optional.of(this);
     }
 
+    @Override
+    @Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
     public void ifPatternExpr(Consumer<PatternExpr> action) {
         action.accept(this);
     }
 
     @Override
+    @Generated("com.github.javaparser.generator.core.node.CloneGenerator")
     public PatternExpr clone() {
         return (PatternExpr) accept(new CloneVisitor(), null);
     }
 
     @Override
+    @Generated("com.github.javaparser.generator.core.node.GetMetaModelGenerator")
     public PatternExprMetaModel getMetaModel() {
         return JavaParserMetaModel.patternExprMetaModel;
     }
@@ -66,6 +75,7 @@
     /**
      * This constructor is used by the parser and is considered private.
      */
+    @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator")
     public PatternExpr(TokenRange tokenRange) {
         super(tokenRange);
         customInitialization();
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypePatternExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypePatternExpr.java
index 8e235ac..1cb7a75 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypePatternExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypePatternExpr.java
@@ -71,7 +71,7 @@
  * @see <a href="https://bugs.openjdk.java.net/browse/JDK-8181287">JEP305: https://bugs.openjdk.java.net/browse/JDK-8181287</a>
  * @see <a href="https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.20">https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.20</a>
  */
-public class TypePatternExpr extends Expression implements NodeWithSimpleName<TypePatternExpr>, NodeWithType<TypePatternExpr, ReferenceType>, NodeWithFinalModifier<TypePatternExpr> {
+public class TypePatternExpr extends PatternExpr implements NodeWithSimpleName<TypePatternExpr>, NodeWithType<TypePatternExpr, ReferenceType>, NodeWithFinalModifier<TypePatternExpr> {
 
     private NodeList<Modifier> modifiers;
 
diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java
index fb78ea2..de7c26a 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java
@@ -1078,7 +1078,7 @@
     public static final TypeExprMetaModel typeExprMetaModel = new TypeExprMetaModel(Optional.of(expressionMetaModel));
 
     @Generated("com.github.javaparser.generator.metamodel.NodeMetaModelGenerator")
-    public static final TypePatternExprMetaModel typePatternExprMetaModel = new TypePatternExprMetaModel(Optional.of(expressionMetaModel));
+    public static final TypePatternExprMetaModel typePatternExprMetaModel = new TypePatternExprMetaModel(Optional.of(patternExprMetaModel));
 
     @Generated("com.github.javaparser.generator.metamodel.NodeMetaModelGenerator")
     public static final UnaryExprMetaModel unaryExprMetaModel = new UnaryExprMetaModel(Optional.of(expressionMetaModel));
diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypePatternExprMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypePatternExprMetaModel.java
index 3c63169..d684e54 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypePatternExprMetaModel.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/TypePatternExprMetaModel.java
@@ -34,7 +34,7 @@
  * For this reason, any changes made directly to this file will be overwritten the next time generators are run.
  */
 @Generated("com.github.javaparser.generator.metamodel.NodeMetaModelGenerator")
-public class TypePatternExprMetaModel extends ExpressionMetaModel {
+public class TypePatternExprMetaModel extends PatternExprMetaModel {
 
     @Generated("com.github.javaparser.generator.metamodel.NodeMetaModelGenerator")
     TypePatternExprMetaModel(Optional<BaseNodeMetaModel> superBaseNodeMetaModel) {