Top Description Inners Fields Constructors Methods
com.sun.tools.javac.comp

public Class TransPatterns

extends TreeTranslator
Class Inheritance
Imports
com.sun.source.tree.CaseTree, .CaseTree.CaseKind, com.sun.tools.javac.code.BoundKind, .Flags, .Kinds, .Kinds.Kind, .Preview, .Symbol, .Symbol.BindingSymbol, .Symbol.ClassSymbol, .Symbol.DynamicMethodSymbol, .Symbol.DynamicVarSymbol, .Symbol.MethodHandleSymbol, .Symbol.VarSymbol, .Symtab, .Type.ClassType, .Type.MethodType, .Type.WildcardType, .Types, .Symbol.MethodSymbol, .Symbol.RecordComponent, .Type, com.sun.tools.javac.tree.JCTree.JCAssign, .JCTree.JCAnyPattern, .JCTree.JCBinary, .JCTree.JCConditional, .JCTree.JCExpression, .JCTree.JCForLoop, .JCTree.JCIdent, .JCTree.JCIf, .JCTree.JCInstanceOf, .JCTree.JCMethodDecl, .JCTree.JCSwitch, .JCTree.JCVariableDecl, .JCTree.JCBindingPattern, .JCTree.JCWhileLoop, .JCTree.Tag, .TreeMaker, .TreeTranslator, .JCTree, .JCTree.JCBlock, .JCTree.JCBlock.PatternMatchingCatch, .JCTree.JCBreak, .JCTree.JCCase, .JCTree.JCCaseLabel, .JCTree.JCCatch, .JCTree.JCClassDecl, .JCTree.JCContinue, .JCTree.JCDoWhileLoop, .JCTree.JCConstantCaseLabel, .JCTree.JCExpressionStatement, .JCTree.JCFieldAccess, .JCTree.JCLambda, .JCTree.JCMethodInvocation, .JCTree.JCNewClass, .JCTree.JCPattern, .JCTree.JCPatternCaseLabel, .JCTree.JCRecordPattern, .JCTree.JCStatement, .JCTree.JCSwitchExpression, .JCTree.JCTry, .JCTree.LetExpr, .TreeInfo, .TreeScanner, com.sun.tools.javac.util.Context, .ListBuffer, .Name, .Names, .Assert, .JCDiagnostic.DiagnosticPosition, .List, java.util.Collections, .Map, .Map.Entry, .HashMap, .IdentityHashMap, .LinkedHashMap, .Set, com.sun.tools.javac.jvm.PoolConstant.LoadableConstant, .Target

This pass translates pattern-matching constructs, such as instanceof <pattern>.

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv class
pack-priv abstract class
private class
private class
private class
pack-priv static record

Field Summary

Modifier and TypeField and Description
private final Attr
pack-priv TransPatterns.BindingContext
private Map<Symbol.RecordComponent, Symbol.MethodSymbol>
private Symbol.ClassSymbol
private JCTree.JCClassDecl
private Symbol.MethodSymbol
private Symbol.VarSymbol
private Set<JCTree.JCMethodInvocation>
private Env<AttrContext>
private TreeMaker
private final Names
private final Operators
private ListBuffer<JCTree>
private final Preview
private final Resolve
private final Symtab
private final Target
protected static final Context.Key<TransPatterns>
private final Types
private int
Inherited from com.sun.tools.javac.tree.TreeTranslator:
result

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
pack-priv void
pack-priv JCTree.JCExpression
private PoolConstant.LoadableConstant
private void
fixupContinue(JCTree switchTree, JCTree.JCCase c, Symbol.VarSymbol indexVariable, int currentCaseIndex)

private void
handleSwitch(JCTree tree, JCTree.JCExpression selector, List<JCTree.JCCase> cases, boolean hasUnconditionalPattern, boolean patternSwitch)

public static TransPatterns
instance(Context context)

private PoolConstant.LoadableConstant
pack-priv JCTree.JCMethodInvocation
pack-priv JCTree.JCBinary
makeBinary(JCTree.Tag
The operators tree tag.
optag
,
JCTree.JCExpression
The operator's left argument.
lhs
,
JCTree.JCExpression
The operator's right argument.
rhs
)

Make an attributed binary expression (copied from Lower).

private Symbol.DynamicVarSymbol
pack-priv JCTree.JCExpression
makeLit(Type
The literal's type.
type
,
Object
The literal's value.
value
)

Make an attributed tree representing a literal.

pack-priv JCTree.JCNewClass
pack-priv JCTree.JCExpression
makeNull()

Make an attributed tree representing null.

private Symbol.DynamicVarSymbol
pack-priv JCTree.JCInstanceOf
makeTypeTest(JCTree.JCExpression
The expression.
lhs
,
JCTree.JCExpression
The type to be tested.
type
)

Make an instanceof expression.

pack-priv JCTree.JCUnary
makeUnary(JCTree.Tag
The operators tree tag.
optag
,
JCTree.JCExpression
The operator's argument.
arg
)

Make an attributed unary expression.

pack-priv JCTree.JCExpression
private static void
private void
private Type
private List<JCTree.JCCase>
processCases(JCTree currentSwitch, List<JCTree.JCCase> inputCases)

Considering a list of cases, find consecutive cases with the same binding pattern as their label, and type tests with binding patterns as the first element in the guard.

private PoolConstant.LoadableConstant
public JCTree
private TransPatterns.UnrolledRecordPattern
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
Inherited from com.sun.tools.javac.tree.TreeTranslator:
translatetranslatetranslateAnnotationstranslateCasestranslateCatcherstranslateTypeParamstranslateVarDefsvisitAnnotatedTypevisitAnnotationvisitApplyvisitAssertvisitAssignvisitAssignopvisitBreakvisitCasevisitCatchvisitConstantCaseLabelvisitContinuevisitDefaultCaseLabelvisitErroneousvisitExecvisitForeachLoopvisitImportvisitIndexedvisitLabelledvisitLetExprvisitLiteralvisitModifiersvisitModuleImportvisitNewArrayvisitNewClassvisitPackageDefvisitParensvisitPatternCaseLabelvisitReferencevisitReturnvisitSelectvisitSkipvisitSynchronizedvisitThrowvisitTopLevelvisitTreevisitTypeApplyvisitTypeArrayvisitTypeBoundKindvisitTypeCastvisitTypeIdentvisitTypeIntersectionvisitTypeParametervisitTypeUnionvisitUnaryvisitWildcardvisitYield