+- CompilationUnit[@Compact = false, @PackageName = ""]
   +- ImportDeclaration[@ImportOnDemand = false, @ImportedName = "java.util.Map", @ImportedSimpleName = "Map", @ModuleImport = false, @PackageName = "java.util", @Static = false]
   +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = false, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch", @Static = false, @TopLevel = true, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
      +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
      +- ClassBody[@Empty = false, @Size = 11]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "primitiveTypePatterns", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- VoidType[]
         |  +- FormalParameters[@Empty = true, @Size = 0]
         |  +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = true, @Visibility = Visibility.V_LOCAL]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- VariableDeclarator[@Initializer = true, @Name = "json"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "json", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |     |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonObject"]
         |     |        +- ArgumentList[@Empty = false, @Size = 1]
         |     |           +- MethodCall[@CompileTimeConstant = false, @Image = "of", @MethodName = "of", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |              +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |              |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Map"]
         |     |              +- ArgumentList[@Empty = false, @Size = 4]
         |     |                 +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "name", @Empty = false, @Image = "\"name\"", @Length = 4, @LiteralText = "\"name\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |                 +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |     |                 |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonString"]
         |     |                 |  +- ArgumentList[@Empty = false, @Size = 1]
         |     |                 |     +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "John", @Empty = false, @Image = "\"John\"", @Length = 4, @LiteralText = "\"John\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |                 +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "age", @Empty = false, @Image = "\"age\"", @Length = 3, @LiteralText = "\"age\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |                 +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |     |                    +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonNumber"]
         |     |                    +- ArgumentList[@Empty = false, @Size = 1]
         |     |                       +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "30", @IntLiteral = true, @Integral = true, @LiteralText = "30", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 30.0, @ValueAsFloat = 30.0, @ValueAsInt = 30, @ValueAsLong = 30]
         |     +- IfStatement[@Else = false]
         |        +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.CONDITIONAL_AND, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.CONDITIONAL_AND, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |  |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "json", @Name = "json", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |  |  +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |  |     +- RecordPattern[]
         |        |  |  |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonObject"]
         |        |  |  |        +- PatternList[@Empty = false, @Size = 1]
         |        |  |  |           +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |        |  |  |              +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |  |  |              +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "map", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |     +- MethodCall[@CompileTimeConstant = false, @Image = "get", @MethodName = "get", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |     |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "map", @Name = "map", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |     |  +- ArgumentList[@Empty = false, @Size = 1]
         |        |  |     |     +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "name", @Empty = false, @Image = "\"name\"", @Length = 4, @LiteralText = "\"name\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |        |  |     +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  |        +- RecordPattern[]
         |        |  |           +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonString"]
         |        |  |           +- PatternList[@Empty = false, @Size = 1]
         |        |  |              +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |        |  |                 +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |  |                 +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |        |  |                 +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "n", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |     +- MethodCall[@CompileTimeConstant = false, @Image = "get", @MethodName = "get", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |     |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "map", @Name = "map", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |     |  +- ArgumentList[@Empty = false, @Size = 1]
         |        |     |     +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "age", @Empty = false, @Image = "\"age\"", @Length = 3, @LiteralText = "\"age\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |        |     +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |        +- RecordPattern[]
         |        |           +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonNumber"]
         |        |           +- PatternList[@Empty = false, @Size = 1]
         |        |              +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |        |                 +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |                 +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |        |                 +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "age", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |           +- ExpressionStatement[]
         |              +- MethodCall[@CompileTimeConstant = false, @Image = "printf", @MethodName = "printf", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |                 +- ArgumentList[@Empty = false, @Size = 3]
         |                    +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "Name: %s Age: %d%n", @Empty = false, @Image = "\"Name: %s Age: %d%n\"", @Length = 18, @LiteralText = "\"Name: %s Age: %d%n\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |                    +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "n", @Name = "n", @ParenthesisDepth = 0, @Parenthesized = false]
         |                    +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "age", @Name = "age", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = true, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$JsonValue", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.JsonValue", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = true, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = false, @RegularInterface = true, @SimpleName = "JsonValue", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.ABSTRACT, JModifier.STATIC, JModifier.SEALED), @ExplicitModifiers = (JModifier.SEALED)]
         |  +- ClassBody[@Empty = true, @Size = 0]
         +- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$JsonString", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.JsonString", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "JsonString", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
         |  +- RecordComponentList[@Empty = false, @Size = 1, @Varargs = false]
         |  |  +- RecordComponent[@EffectiveVisibility = Visibility.V_PRIVATE, @Varargs = false, @Visibility = Visibility.V_PRIVATE]
         |  |     +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE, JModifier.FINAL), @ExplicitModifiers = ()]
         |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "s", @PatternBinding = false, @RecordComponent = true, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         |  +- ImplementsList[@Empty = false, @Size = 1]
         |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonValue"]
         |  +- RecordBody[@Empty = true, @Size = 0]
         +- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$JsonNumber", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.JsonNumber", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "JsonNumber", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
         |  +- RecordComponentList[@Empty = false, @Size = 1, @Varargs = false]
         |  |  +- RecordComponent[@EffectiveVisibility = Visibility.V_PRIVATE, @Varargs = false, @Visibility = Visibility.V_PRIVATE]
         |  |     +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE, JModifier.FINAL), @ExplicitModifiers = ()]
         |  |     +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
         |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "d", @PatternBinding = false, @RecordComponent = true, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         |  +- ImplementsList[@Empty = false, @Size = 1]
         |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonValue"]
         |  +- RecordBody[@Empty = true, @Size = 0]
         +- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$JsonObject", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.JsonObject", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "JsonObject", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
         |  +- RecordComponentList[@Empty = false, @Size = 1, @Varargs = false]
         |  |  +- RecordComponent[@EffectiveVisibility = Visibility.V_PRIVATE, @Varargs = false, @Visibility = Visibility.V_PRIVATE]
         |  |     +- ModifierList[@EffectiveModifiers = (JModifier.PRIVATE, JModifier.FINAL), @ExplicitModifiers = ()]
         |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Map"]
         |  |     |  +- TypeArguments[@Diamond = false, @Empty = false, @Size = 2]
         |  |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |  |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonValue"]
         |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PRIVATE, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "map", @PatternBinding = false, @RecordComponent = true, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_PRIVATE]
         |  +- ImplementsList[@Empty = false, @Size = 1]
         |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "JsonValue"]
         |  +- RecordBody[@Empty = true, @Size = 0]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "topLevelPrimitiveTypePatterns", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- VoidType[]
         |  +- FormalParameters[@Empty = true, @Size = 0]
         |  +- Block[@Empty = false, @Size = 7, @containsComment = false]
         |     +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "X"]
         |     |  +- VariableDeclarator[@Initializer = true, @Name = "x"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |     |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "X"]
         |     |        +- ArgumentList[@Empty = true, @Size = 0]
         |     +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |     |  +- VariableDeclarator[@Initializer = true, @Name = "status"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "status", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- SwitchExpression[@CompileTimeConstant = false, @DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        +- MethodCall[@CompileTimeConstant = false, @Image = "getStatus", @MethodName = "getStatus", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        |  +- ArgumentList[@Empty = true, @Size = 0]
         |     |        +- SwitchArrowBranch[@Default = false]
         |     |        |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |        |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "0", @IntLiteral = true, @Integral = true, @LiteralText = "0", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 0.0, @ValueAsFloat = 0.0, @ValueAsInt = 0, @ValueAsLong = 0]
         |     |        |  +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "okay", @Empty = false, @Image = "\"okay\"", @Length = 4, @LiteralText = "\"okay\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |        +- SwitchArrowBranch[@Default = false]
         |     |        |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |        |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1", @IntLiteral = true, @Integral = true, @LiteralText = "1", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |     |        |  +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "warning", @Empty = false, @Image = "\"warning\"", @Length = 7, @LiteralText = "\"warning\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |        +- SwitchArrowBranch[@Default = false]
         |     |        |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |        |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "2", @IntLiteral = true, @Integral = true, @LiteralText = "2", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 2.0, @ValueAsFloat = 2.0, @ValueAsInt = 2, @ValueAsLong = 2]
         |     |        |  +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "error", @Empty = false, @Image = "\"error\"", @Length = 5, @LiteralText = "\"error\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |        +- SwitchArrowBranch[@Default = false]
         |     |           +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |           |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |           |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |           |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |           |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |           +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |              +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "unknown status: ", @Empty = false, @Image = "\"unknown status: \"", @Length = 16, @LiteralText = "\"unknown status: \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |              +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |     +- ExpressionStatement[]
         |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |     +- ArgumentList[@Empty = false, @Size = 1]
         |     |        +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "status: ", @Empty = false, @Image = "\"status: \"", @Length = 8, @LiteralText = "\"status: \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |           +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "status", @Name = "status", @ParenthesisDepth = 0, @Parenthesized = false]
         |     +- SwitchStatement[@DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false]
         |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "getYearlyFlights", @MethodName = "getYearlyFlights", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  +- ArgumentList[@Empty = true, @Size = 0]
         |     |  +- SwitchArrowBranch[@Default = false]
         |     |  |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |  |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "0", @IntLiteral = true, @Integral = true, @LiteralText = "0", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 0.0, @ValueAsFloat = 0.0, @ValueAsInt = 0, @ValueAsLong = 0]
         |     |  |  +- MethodCall[@CompileTimeConstant = false, @Image = "noop", @MethodName = "noop", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- ArgumentList[@Empty = true, @Size = 0]
         |     |  +- SwitchArrowBranch[@Default = false]
         |     |  |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |  |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1", @IntLiteral = true, @Integral = true, @LiteralText = "1", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |     |  |  +- MethodCall[@CompileTimeConstant = false, @Image = "noop", @MethodName = "noop", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- ArgumentList[@Empty = true, @Size = 0]
         |     |  +- SwitchArrowBranch[@Default = false]
         |     |  |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |  |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "2", @IntLiteral = true, @Integral = true, @LiteralText = "2", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 2.0, @ValueAsFloat = 2.0, @ValueAsInt = 2, @ValueAsLong = 2]
         |     |  |  +- MethodCall[@CompileTimeConstant = false, @Image = "issueDiscount", @MethodName = "issueDiscount", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- ArgumentList[@Empty = true, @Size = 0]
         |     |  +- SwitchArrowBranch[@Default = false]
         |     |  |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |  |  |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |  |  |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  |  |  |  +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  |  +- Guard[]
         |     |  |  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.GE, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  |        +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "100", @IntLiteral = true, @Integral = true, @LiteralText = "100", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 100.0, @ValueAsFloat = 100.0, @ValueAsInt = 100, @ValueAsLong = 100]
         |     |  |  +- MethodCall[@CompileTimeConstant = false, @Image = "issueGoldCard", @MethodName = "issueGoldCard", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- ArgumentList[@Empty = true, @Size = 0]
         |     |  +- SwitchArrowBranch[@Default = false]
         |     |     +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |     |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |     |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |     |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "i", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- MethodCall[@CompileTimeConstant = false, @Image = "issueDiscount", @MethodName = "issueDiscount", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        +- ArgumentList[@Empty = true, @Size = 0]
         |     +- IfStatement[@Else = false]
         |     |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  +- MethodCall[@CompileTimeConstant = false, @Image = "getPopulation", @MethodName = "getPopulation", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |  |  +- ArgumentList[@Empty = true, @Size = 0]
         |     |  |  +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |     +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |  |        +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |        +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
         |     |  |        +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "p", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- Block[@Empty = true, @Size = 0, @containsComment = true]
         |     +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- VariableDeclarator[@Initializer = true, @Name = "i"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "42", @IntLiteral = true, @Integral = true, @LiteralText = "42", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 42.0, @ValueAsFloat = 42.0, @ValueAsInt = 42, @ValueAsLong = 42]
         |     +- IfStatement[@Else = false]
         |        +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |     +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |        |        +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |        +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |        |        +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "b", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        +- Block[@Empty = true, @Size = 0, @containsComment = true]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$X", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.X", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "X", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- ClassBody[@Empty = false, @Size = 6]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "getStatus", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = false]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     |     +- ReturnStatement[]
         |     |        +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "0", @IntLiteral = true, @Integral = true, @LiteralText = "0", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 0.0, @ValueAsFloat = 0.0, @ValueAsInt = 0, @ValueAsLong = 0]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "getYearlyFlights", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = false]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     |     +- ReturnStatement[]
         |     |        +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1", @IntLiteral = true, @Integral = true, @LiteralText = "1", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "noop", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- VoidType[]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "issueDiscount", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- VoidType[]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "issueGoldCard", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- VoidType[]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "getPopulation", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = false]
         |        +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |        +- FormalParameters[@Empty = true, @Size = 0]
         |        +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |           +- ReturnStatement[]
         |              +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1", @IntLiteral = true, @Integral = true, @LiteralText = "1", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "instanceofWithPrimitives", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- VoidType[]
         |  +- FormalParameters[@Empty = true, @Size = 0]
         |  +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- VariableDeclarator[@Initializer = true, @Name = "i"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "42", @IntLiteral = true, @Integral = true, @LiteralText = "42", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 42.0, @ValueAsFloat = 42.0, @ValueAsInt = 42, @ValueAsLong = 42]
         |     +- IfStatement[@Else = false]
         |        +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |        |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |        +- Block[@Empty = false, @Size = 1, @containsComment = true]
         |           +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |              +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |              +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |              +- VariableDeclarator[@Initializer = true, @Name = "b"]
         |                 +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "b", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |                 +- CastExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                    +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
         |                    +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "switchOnAllPrimitives", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- VoidType[]
         |  +- FormalParameters[@Empty = true, @Size = 0]
         |  +- Block[@Empty = false, @Size = 8, @containsComment = false]
         |     +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "User"]
         |     |  +- VariableDeclarator[@Initializer = true, @Name = "user"]
         |     |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "user", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- ConstructorCall[@AnonymousClass = false, @CompileTimeConstant = false, @DiamondTypeArgs = false, @MethodName = "new", @ParenthesisDepth = 0, @Parenthesized = false, @QualifiedInstanceCreation = false]
         |     |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "User"]
         |     |        +- ArgumentList[@Empty = true, @Size = 0]
         |     +- ExpressionStatement[]
         |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "startProcessing", @MethodName = "startProcessing", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "User"]
         |     |     +- ArgumentList[@Empty = false, @Size = 2]
         |     |        +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "NEW", @Name = "NEW", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |        |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "OrderStatus"]
         |     |        |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "User"]
         |     |        +- SwitchExpression[@CompileTimeConstant = false, @DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- MethodCall[@CompileTimeConstant = false, @Image = "isLoggedIn", @MethodName = "isLoggedIn", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |  +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "user", @Name = "user", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |  +- ArgumentList[@Empty = true, @Size = 0]
         |     |           +- SwitchArrowBranch[@Default = false]
         |     |           |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |           |  |  +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "true", @ParenthesisDepth = 0, @Parenthesized = false, @True = true]
         |     |           |  +- MethodCall[@CompileTimeConstant = false, @Image = "id", @MethodName = "id", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "user", @Name = "user", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |     +- ArgumentList[@Empty = true, @Size = 0]
         |     |           +- SwitchArrowBranch[@Default = false]
         |     |              +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |              |  +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "false", @ParenthesisDepth = 0, @Parenthesized = false, @True = false]
         |     |              +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     |                 +- ExpressionStatement[]
         |     |                 |  +- MethodCall[@CompileTimeConstant = false, @Image = "log", @MethodName = "log", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |                 |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |                 |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "User"]
         |     |                 |     +- ArgumentList[@Empty = false, @Size = 1]
         |     |                 |        +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "Unrecognized user", @Empty = false, @Image = "\"Unrecognized user\"", @Length = 17, @LiteralText = "\"Unrecognized user\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |                 +- YieldStatement[]
         |     |                    +- UnaryExpression[@CompileTimeConstant = true, @Operator = UnaryOp.UNARY_MINUS, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |                       +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1", @IntLiteral = true, @Integral = true, @LiteralText = "1", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |     +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.LONG]
         |     |  |  +- VariableDeclarator[@Initializer = true, @Name = "v"]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "v", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.MUL, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |        +- CastExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |        |  +- PrimitiveType[@Kind = PrimitiveTypeKind.LONG]
         |     |  |        |  +- MethodCall[@CompileTimeConstant = false, @Image = "random", @MethodName = "random", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |        |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |        |     |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Math"]
         |     |  |        |     +- ArgumentList[@Empty = true, @Size = 0]
         |     |  |        +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = true, @Image = "MAX_VALUE", @Name = "MAX_VALUE", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |           +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |  |              +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Long"]
         |     |  +- SwitchStatement[@DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false]
         |     |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "v", @Name = "v", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |     |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |     |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1L", @IntLiteral = false, @Integral = true, @LiteralText = "1L", @LongLiteral = true, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |     |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |     |     +- ArgumentList[@Empty = false, @Size = 1]
         |     |     |        +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "v is 1L", @Empty = false, @Image = "\"v is 1L\"", @Length = 7, @LiteralText = "\"v is 1L\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |     |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |     |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "2L", @IntLiteral = false, @Integral = true, @LiteralText = "2L", @LongLiteral = true, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 2.0, @ValueAsFloat = 2.0, @ValueAsInt = 2, @ValueAsLong = 2]
         |     |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |     |     +- ArgumentList[@Empty = false, @Size = 1]
         |     |     |        +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "v is 2L", @Empty = false, @Image = "\"v is 2L\"", @Length = 7, @LiteralText = "\"v is 2L\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |     |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |     |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "10_000_000_000L", @IntLiteral = false, @Integral = true, @LiteralText = "10_000_000_000L", @LongLiteral = true, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0E10, @ValueAsFloat = 1.0E10, @ValueAsInt = 1410065408, @ValueAsLong = 10000000000]
         |     |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |     |     +- ArgumentList[@Empty = false, @Size = 1]
         |     |     |        +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "v is 10b", @Empty = false, @Image = "\"v is 10b\"", @Length = 8, @LiteralText = "\"v is 10b\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |     |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |     |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "20_000_000_000L", @IntLiteral = false, @Integral = true, @LiteralText = "20_000_000_000L", @LongLiteral = true, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 2.0E10, @ValueAsFloat = 2.0E10, @ValueAsInt = -1474836480, @ValueAsLong = 20000000000]
         |     |     |  +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     |     |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |     |     +- ArgumentList[@Empty = false, @Size = 1]
         |     |     |        +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "v is 20b", @Empty = false, @Image = "\"v is 20b\"", @Length = 8, @LiteralText = "\"v is 20b\"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |        +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |        |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.LONG]
         |     |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |        +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |     |           +- ArgumentList[@Empty = false, @Size = 1]
         |     |              +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |                 +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "v is ", @Empty = false, @Image = "\"v is \"", @Length = 5, @LiteralText = "\"v is \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |     |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Byte"]
         |     |  |  +- VariableDeclarator[@Initializer = true, @Name = "b"]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "b", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "2", @IntLiteral = true, @Integral = true, @LiteralText = "2", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 2.0, @ValueAsFloat = 2.0, @ValueAsInt = 2, @ValueAsLong = 2]
         |     |  +- SwitchStatement[@DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false]
         |     |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "b", @Name = "b", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |        +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |        |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "p", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |        +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  |  +- VariableDeclarator[@Initializer = true, @Name = "x"]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "42", @IntLiteral = true, @Integral = true, @LiteralText = "42", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 42.0, @ValueAsFloat = 42.0, @ValueAsInt = 42, @ValueAsLong = 42]
         |     |  +- SwitchStatement[@DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false]
         |     |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |        +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |        |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |        |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |        |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "_", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = true, @Visibility = Visibility.V_LOCAL]
         |     |        +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
         |     |  |  +- VariableDeclarator[@Initializer = true, @Name = "v"]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "v", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "1.1f", @IntLiteral = false, @Integral = false, @LiteralText = "1.1f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.1, @ValueAsFloat = 1.1, @ValueAsInt = 1, @ValueAsLong = 1]
         |     |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |     +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
         |     |     +- VariableDeclarator[@Initializer = true, @Name = "result"]
         |     |        +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "result", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |        +- SwitchExpression[@CompileTimeConstant = false, @DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "v", @Name = "v", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- SwitchArrowBranch[@Default = false]
         |     |           |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |           |  |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "0f", @IntLiteral = false, @Integral = false, @LiteralText = "0f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 0.0, @ValueAsFloat = 0.0, @ValueAsInt = 0, @ValueAsLong = 0]
         |     |           |  +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "5f", @IntLiteral = false, @Integral = false, @LiteralText = "5f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 5.0, @ValueAsFloat = 5.0, @ValueAsInt = 5, @ValueAsLong = 5]
         |     |           +- SwitchArrowBranch[@Default = false]
         |     |           |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |           |  |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |           |  |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |           |  |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
         |     |           |  |  |  +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |           |  |  +- Guard[]
         |     |           |  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.EQ, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |  |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |  |        +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "1f", @IntLiteral = false, @Integral = false, @LiteralText = "1f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |     |           |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "6f", @IntLiteral = false, @Integral = false, @LiteralText = "6f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 6.0, @ValueAsFloat = 6.0, @ValueAsInt = 6, @ValueAsLong = 6]
         |     |           |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |           +- SwitchArrowBranch[@Default = false]
         |     |              +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |     |              |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |     |              |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |              |     +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
         |     |              |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "x", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |              +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
         |     |                 +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "7f", @IntLiteral = false, @Integral = false, @LiteralText = "7f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 7.0, @ValueAsFloat = 7.0, @ValueAsInt = 7, @ValueAsLong = 7]
         |     |                 +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false]
         |     +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |     |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.BOOLEAN]
         |     |  |  +- VariableDeclarator[@Initializer = true, @Name = "v"]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "v", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "true", @ParenthesisDepth = 0, @Parenthesized = false, @True = true]
         |     |  +- SwitchStatement[@DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false]
         |     |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "v", @Name = "v", @ParenthesisDepth = 0, @Parenthesized = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |     |  +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |     |  |  +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "true", @ParenthesisDepth = 0, @Parenthesized = false, @True = true]
         |     |     |  +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     |     +- SwitchArrowBranch[@Default = false]
         |     |        +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = false]
         |     |        |  +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "false", @ParenthesisDepth = 0, @Parenthesized = false, @True = false]
         |     |        +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- Block[@Empty = false, @Size = 2, @containsComment = false]
         |        +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
         |        |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |        |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |        |  +- VariableDeclarator[@Initializer = true, @Name = "i"]
         |        |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |        |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1", @IntLiteral = true, @Integral = true, @LiteralText = "1", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.0, @ValueAsFloat = 1.0, @ValueAsInt = 1, @ValueAsLong = 1]
         |        +- SwitchStatement[@DefaultCase = false, @EnumSwitch = false, @Exhaustive = true, @ExhaustiveEnumSwitch = false, @FallthroughSwitch = false, @NullTolerant = false]
         |           +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
         |           +- SwitchArrowBranch[@Default = false]
         |              +- SwitchLabel[@CaseNull = false, @Default = false, @PatternLabel = true]
         |              |  +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
         |              |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |              |     +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
         |              |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "d", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |              +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |  +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
         |                 |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
         |                 +- ArgumentList[@Empty = false, @Size = 1]
         |                    +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
         |                       +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "double: ", @Empty = false, @Image = "\"double: \"", @Length = 8, @LiteralText = "\"double: \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
         |                       +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "d", @Name = "d", @ParenthesisDepth = 0, @Parenthesized = false]
         +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$User", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.User", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "User", @Static = false, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |  +- ClassBody[@Empty = false, @Size = 6]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "isLoggedIn", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = false]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.BOOLEAN]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     |     +- ReturnStatement[]
         |     |        +- BooleanLiteral[@CompileTimeConstant = true, @LiteralText = "false", @ParenthesisDepth = 0, @Parenthesized = false, @True = false]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "id", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = false]
         |     |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  +- FormalParameters[@Empty = true, @Size = 0]
         |     |  +- Block[@Empty = false, @Size = 1, @containsComment = false]
         |     |     +- ReturnStatement[]
         |     |        +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "42", @IntLiteral = true, @Integral = true, @LiteralText = "42", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 42.0, @ValueAsFloat = 42.0, @ValueAsInt = 42, @ValueAsLong = 42]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 2, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "startProcessing", @Override = false, @Static = true, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |     |  +- ModifierList[@EffectiveModifiers = (JModifier.STATIC), @ExplicitModifiers = (JModifier.STATIC)]
         |     |  +- VoidType[]
         |     |  +- FormalParameters[@Empty = false, @Size = 2]
         |     |  |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "OrderStatus"]
         |     |  |  |  +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "status", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |     +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "userId", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- MethodDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "log", @Override = false, @Static = true, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
         |     |  +- ModifierList[@EffectiveModifiers = (JModifier.STATIC), @ExplicitModifiers = (JModifier.STATIC)]
         |     |  +- VoidType[]
         |     |  +- FormalParameters[@Empty = false, @Size = 1]
         |     |  |  +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
         |     |  |     +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
         |     |  |     +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
         |     |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "s", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
         |     |  +- Block[@Empty = true, @Size = 0, @containsComment = false]
         |     +- EnumDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch$User$OrderStatus", @CanonicalName = "Jep530_PrimitiveTypesInPatternsInstanceofAndSwitch.User.OrderStatus", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = true, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = false, @RegularClass = false, @RegularInterface = false, @SimpleName = "OrderStatus", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
         |     |  +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
         |     |  +- EnumBody[@Empty = false, @SeparatorSemi = false, @Size = 1, @TrailingComma = false]
         |     |     +- EnumConstant[@AnonymousClass = false, @EffectiveVisibility = Visibility.V_PACKAGE, @Image = "NEW", @MethodName = "new", @Name = "NEW", @Visibility = Visibility.V_PUBLIC]
         |     |        +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC, JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
         |     |        +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_PACKAGE, @EnumConstant = true, @ExceptionBlockParameter = false, @Field = false, @Final = true, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "NEW", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = true, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_PUBLIC]
         |     +- EmptyDeclaration[]
         +- MethodDeclaration[@Abstract = false, @Arity = 0, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "instanceofAsThePreconditionForSafeCasting", @Override = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
            +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
            +- VoidType[]
            +- FormalParameters[@Empty = true, @Size = 0]
            +- Block[@Empty = false, @Size = 8, @containsComment = false]
               +- Block[@Empty = false, @Size = 2, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "b"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "b", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "42", @IntLiteral = true, @Integral = true, @LiteralText = "42", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 42.0, @ValueAsFloat = 42.0, @ValueAsInt = 42, @ValueAsLong = 42]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "b", @Name = "b", @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               +- Block[@Empty = false, @Size = 2, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "i"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "42", @IntLiteral = true, @Integral = true, @LiteralText = "42", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 42.0, @ValueAsFloat = 42.0, @ValueAsInt = 42, @ValueAsLong = 42]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
               +- Block[@Empty = false, @Size = 2, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "i"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1000", @IntLiteral = true, @Integral = true, @LiteralText = "1000", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1000.0, @ValueAsFloat = 1000.0, @ValueAsInt = 1000, @ValueAsLong = 1000]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- UnaryExpression[@CompileTimeConstant = false, @Operator = UnaryOp.NEGATION, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 1, @Parenthesized = true]
               |           +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |              +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
               +- Block[@Empty = false, @Size = 5, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "i"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "i", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "16_777_217", @IntLiteral = true, @Integral = true, @LiteralText = "16_777_217", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.6777217E7, @ValueAsFloat = 1.6777216E7, @ValueAsInt = 16777217, @ValueAsLong = 16777217]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- UnaryExpression[@CompileTimeConstant = false, @Operator = UnaryOp.NEGATION, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 1, @Parenthesized = true]
               |  |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |           +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Integer"]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "i", @Name = "i", @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Number"]
               +- Block[@Empty = false, @Size = 4, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "f"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "f", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = true, @Image = "1000.0f", @IntLiteral = false, @Integral = false, @LiteralText = "1000.0f", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1000.0, @ValueAsFloat = 1000.0, @ValueAsInt = 1000, @ValueAsLong = 1000]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- UnaryExpression[@CompileTimeConstant = false, @Operator = UnaryOp.NEGATION, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 1, @Parenthesized = true]
               |  |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "f", @Name = "f", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |           +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "f", @Name = "f", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "f", @Name = "f", @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
               +- Block[@Empty = false, @Size = 4, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "d"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "d", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = true, @FloatLiteral = false, @Image = "1000.0d", @IntLiteral = false, @Integral = false, @LiteralText = "1000.0d", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1000.0, @ValueAsFloat = 1000.0, @ValueAsInt = 1000, @ValueAsLong = 1000]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- UnaryExpression[@CompileTimeConstant = false, @Operator = UnaryOp.NEGATION, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 1, @Parenthesized = true]
               |  |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "d", @Name = "d", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |           +- PrimitiveType[@Kind = PrimitiveTypeKind.BYTE]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "d", @Name = "d", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "d", @Name = "d", @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
               +- Block[@Empty = false, @Size = 4, @containsComment = true]
               |  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
               |  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
               |  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Integer"]
               |  |  +- VariableDeclarator[@Initializer = true, @Name = "ii"]
               |  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "ii", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
               |  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "1000", @IntLiteral = true, @Integral = true, @LiteralText = "1000", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1000.0, @ValueAsFloat = 1000.0, @ValueAsInt = 1000, @ValueAsLong = 1000]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "ii", @Name = "ii", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- PrimitiveType[@Kind = PrimitiveTypeKind.INT]
               |  +- AssertStatement[@DetailMessage = false]
               |  |  +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "ii", @Name = "ii", @ParenthesisDepth = 0, @Parenthesized = false]
               |  |     +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |  |        +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
               |  +- AssertStatement[@DetailMessage = false]
               |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "ii", @Name = "ii", @ParenthesisDepth = 0, @Parenthesized = false]
               |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
               |           +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
               +- Block[@Empty = false, @Size = 3, @containsComment = true]
                  +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL]
                  |  +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
                  |  +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Integer"]
                  |  +- VariableDeclarator[@Initializer = true, @Name = "ii"]
                  |     +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "ii", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
                  |     +- NumericLiteral[@Base = 10, @CompileTimeConstant = true, @DoubleLiteral = false, @FloatLiteral = false, @Image = "16_777_217", @IntLiteral = true, @Integral = true, @LiteralText = "16_777_217", @LongLiteral = false, @ParenthesisDepth = 0, @Parenthesized = false, @ValueAsDouble = 1.6777217E7, @ValueAsFloat = 1.6777216E7, @ValueAsInt = 16777217, @ValueAsLong = 16777217]
                  +- AssertStatement[@DetailMessage = false]
                  |  +- UnaryExpression[@CompileTimeConstant = false, @Operator = UnaryOp.NEGATION, @ParenthesisDepth = 0, @Parenthesized = false]
                  |     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 1, @Parenthesized = true]
                  |        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "ii", @Name = "ii", @ParenthesisDepth = 0, @Parenthesized = false]
                  |        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
                  |           +- PrimitiveType[@Kind = PrimitiveTypeKind.FLOAT]
                  +- AssertStatement[@DetailMessage = false]
                     +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
                        +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "ii", @Name = "ii", @ParenthesisDepth = 0, @Parenthesized = false]
                        +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
                           +- PrimitiveType[@Kind = PrimitiveTypeKind.DOUBLE]
