Find Java local variable references
io.moderne.prethink.FindJavaLocalVariableReferencesio.moderne.recipe:rewrite-prethinkUsage
Run this recipe
This recipe has no required configuration options. Users of Moderne can run it via the Moderne CLI.
You will need to have configured the Moderne CLI on your machine before you can run the following command.
mod run . --recipe FindJavaLocalVariableReferences
If the recipe is not available locally, then you can install it using:
RELEASE resolves to the newest release and LATEST to the newest build of any kind, including snapshots. Either one lets mod config recipes upgrade pull in later versions without editing this command; a pinned version stays where you put it.
- RELEASE
- LATEST
- Pinned version
mod config recipes jar install io.moderne.recipe:rewrite-prethink:RELEASE
mod config recipes jar install io.moderne.recipe:rewrite-prethink:LATEST
mod config recipes jar install io.moderne.recipe:rewrite-prethink:0.18.0
Data tables
Java local variable references
io.moderne.prethink.table.JavaLocalVariableReferencesRegular block-local declarations referenced by bare ordinary invocation argument, select or direct return identifiers in their own ordinary method. Retains original node identities, individual declaration and reference ranges, occurrence multiplicity and explicit binding states. Unknown or ambiguous bindings have null declaration cells. No fields, formal parameters, captures, assignment-target context, initializer evaluation, reaching-value, taint or runtime-flow inference.
mod study . --last-recipe-run \
--data-table io.moderne.prethink.table.JavaLocalVariableReferences
| Column | Description |
|---|---|
| Source path | Actual Java compilation-unit source path. |
| Source set | Actual sole JavaSourceSet name; null for missing or ambiguous source-set markers, independently of project markers; empty preserved. |
| Project ID | Actual sole JavaProject marker UUID; null for missing or ambiguous project markers. Never normalized or borrowed from another namespace. |
| Project name | Actual sole JavaProject name; descriptive only. Null and empty values are preserved independently of source-set markers. |
| Source set ID | Actual sole JavaSourceSet marker UUID; null for missing or ambiguous source-set markers. |
| Source file ID | Actual compilation-unit UUID in the exact original VCS, model-input and producer namespace. Equal CU IDs alone never establish nested-node identity. |
| Declaration ID | Actual J.VariableDeclarations UUID only for a unique RESOLVED block-local binding. Null for UNRESOLVED or AMBIGUOUS; no synthetic declaration identity. |
| Variable ID | Actual individual NamedVariable UUID only for a unique RESOLVED binding. Multiple declarators retain distinct IDs sharing their actual declaration wrapper. Never a trait-created UUID or JavaType.Variable object identity. |
| Variable type | Actual declaration JavaType.toString() opaque string for a RESOLVED binding; null for missing or Unknown type and for UNRESOLVED or AMBIGUOUS bindings. Never parsed, evaluated or copied from a reference. |
| Variable start line | Actual full individual NamedVariable node start from unchanged Coordinates, not the wrapper or a synthetic name span. One-based line; null unless binding is RESOLVED. Initializer syntax in a span does not evaluate its value. |
| Variable start column | Actual full individual NamedVariable node start from unchanged Coordinates. One-based UTF-16 column, tab one, CRLF-aware; null unless binding is RESOLVED. |
| Variable end line | Actual exclusive full individual NamedVariable node end from unchanged Coordinates. One-based line; null unless binding is RESOLVED. |
| Variable end column | Actual exclusive full individual NamedVariable node end from unchanged Coordinates. One-based UTF-16 column, tab one, CRLF-aware; null unless binding is RESOLVED. |
| Reference ID | Actual bare J.Identifier UUID. Join whole argumentId, outer selectId or direct return expressionId only within the exact verified input, source scope, CU and all four reference coordinates. |
| Reference role | ARGUMENT for a whole bare ordinary invocation argument, SELECT for a whole bare ordinary invocation select, or RETURN for a whole bare direct ordinary-method returned expression. No wrapper unwrapping, parent-row duplication or target-formal mapping. |
| Reference name | Actual reference Identifier simple name. Spelling alone never establishes declaration binding; reassignment does not change lexical declaration identity. |
| Reference start line | Actual bare Identifier start from unchanged Coordinates. One-based line; no generated coordinate. |
| Reference start column | Actual bare Identifier start from unchanged Coordinates. One-based UTF-16 column, tab one, CRLF-aware. |
| Reference end line | Actual exclusive bare Identifier end from unchanged Coordinates. One-based line. |
| Reference end column | Actual exclusive bare Identifier end from unchanged Coordinates. One-based UTF-16 column, tab one, CRLF-aware. |
| Binding state | RESOLVED for a unique supported actual source-local declaration, UNRESOLVED when safe binding is unavailable, or AMBIGUOUS for multiple surviving distinct declarations. Unresolved and ambiguous rows retain reference facts with null declaration cells. |
| Binding reason | Stable reason code: UNIQUE_LOCAL_DECLARATION, BINDING_UNAVAILABLE, CONFLICTING_ATTRIBUTION, MULTIPLE_LOCAL_CANDIDATES or UNSUPPORTED_BINDING_LAYOUT. Does not establish initializer values, reaching definitions, taint or runtime flow. |
Source files that had results
org.openrewrite.table.SourcesFileResultsSource files that were modified by the recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileResults
| Column | Description |
|---|---|
| Source path before the run | The source path of the file before the run. null when a source file was created during the run. |
| Source path after the run | A recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run. |
| Parent of the recipe that made changes | In a hierarchical recipe, the parent of the recipe that made a change. Empty if this is the root of a hierarchy or if the recipe is not hierarchical at all. |
| Recipe that made changes | The specific recipe that made a change. |
| Estimated time saving | An estimated effort that a developer to fix manually instead of using this recipe, in unit of seconds. |
| Cycle | The recipe cycle in which the change was made. |
Source files that had search results
org.openrewrite.table.SearchResultsSearch results that were found during the recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SearchResults
| Column | Description |
|---|---|
| Source path of search result before the run | The source path of the file with the search result markers present. |
| Source path of search result after run the run | A recipe may modify the source path. This is the path after the run. null when a source file was deleted during the run. |
| Result | The trimmed printed tree of the LST element that the marker is attached to. |
| Description | The content of the description of the marker. |
| Recipe that added the search marker | The specific recipe that added the Search marker. |
Source files that errored on a recipe
org.openrewrite.table.SourcesFileErrorsThe details of all errors produced by a recipe run.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.SourcesFileErrors
| Column | Description |
|---|---|
| Source path | The file that failed to parse. |
| Recipe that made changes | The specific recipe that made a change. |
| Stack trace | The stack trace of the failure. |
Recipe performance
org.openrewrite.table.RecipeRunStatsStatistics used in analyzing the performance of recipes.
mod study . --last-recipe-run \
--data-table org.openrewrite.table.RecipeRunStats
| Column | Description |
|---|---|
| The recipe | The recipe whose stats are being measured both individually and cumulatively. |
| Source file count | The number of source files the recipe ran over. |
| Source file changed count | The number of source files which were changed in the recipe run. Includes files created, deleted, and edited. |
| Cumulative scanning time (ns) | The total time spent across the scanning phase of this recipe. |
| Max scanning time (ns) | The max time scanning any one source file. |
| Cumulative edit time (ns) | The total time spent across the editing phase of this recipe. |
| Max edit time (ns) | The max time editing any one source file. |