Class CompileTimeConstantExpressionMatcher
java.lang.Object
com.google.errorprone.matchers.CompileTimeConstantExpressionMatcher
- All Implemented Interfaces:
Matcher<ExpressionTree>, Serializable
A matcher for compile-time-constant expressions.
For the purposes of this matcher, a compile-time constant expression is one of the following:
- Any expression for which the Java compiler can determine a constant value at compile time.
- The expression consisting of the literal
null. - An expression consisting of a single identifier, where the identifier has the
CompileTimeConstantannotation and is either:- A class field that is declared
final. - A formal parameter of a method or constructor, which is declared
finalor is effectively final.
- A class field that is declared
- A
Stringwhich is formed from the concatenation of other compile-time-constantStrings. - A switch expression where all case bodies are compile-time constants.
- A conditional expression (a ? b : c) where both branches are compile-time constants.
- The result of an invocation of one of the following immutable collection factory methods,
where all arguments are compile-time constants:
ImmutableList.of(...)ImmutableSet.of(...)ImmutableMap.of(...)ImmutableMultiset.of(...)ImmutableSortedSet.of(...)ImmutableSortedMap.of(...)List.of(...)Set.of(...)Map.of(...)
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanhasCompileTimeConstantAnnotation(VisitorState state, com.sun.tools.javac.code.Symbol symbol) static Matcher<ExpressionTree> instance()booleanmatches(ExpressionTree t, VisitorState state)
-
Constructor Details
-
CompileTimeConstantExpressionMatcher
public CompileTimeConstantExpressionMatcher()
-
-
Method Details
-
instance
-
matches
- Specified by:
matchesin interfaceMatcher<ExpressionTree>
-
hasCompileTimeConstantAnnotation
public static boolean hasCompileTimeConstantAnnotation(VisitorState state, com.sun.tools.javac.code.Symbol symbol)
-