Title: Support analysis of Java 14+ `record` classes · Issue #118 · codellm-devkit/codeanalyzer-java · GitHub
Open Graph Title: Support analysis of Java 14+ `record` classes · Issue #118 · codellm-devkit/codeanalyzer-java
X Title: Support analysis of Java 14+ `record` classes · Issue #118 · codellm-devkit/codeanalyzer-java
Description: Is your feature request related to a problem? Please describe. codeanalyzer-java fails to generate a parse tree, symbol table, or call graph when analyzing Java code that includes record declarations. This issue affects the analysis of m...
Open Graph Description: Is your feature request related to a problem? Please describe. codeanalyzer-java fails to generate a parse tree, symbol table, or call graph when analyzing Java code that includes record declaratio...
X Description: Is your feature request related to a problem? Please describe. codeanalyzer-java fails to generate a parse tree, symbol table, or call graph when analyzing Java code that includes record declaratio...
Opengraph URL: https://github.com/codellm-devkit/codeanalyzer-java/issues/118
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Support analysis of Java 14+ `record` classes","articleBody":"**Is your feature request related to a problem? Please describe.** \n`codeanalyzer-java` fails to generate a parse tree, symbol table, or call graph when analyzing Java code that includes `record` declarations. This issue affects the analysis of modern Java applications that make use of `record` types, introduced in Java 14 and finalized in Java 16, for immutable data structures. The missing support leads to incomplete analysis results and may cause downstream issues when performing dependency analysis or refactoring tasks.\n\n**Describe the solution you'd like** \nSupport for `record` declarations should be added to `codeanalyzer-java`. Specifically, the tool should: \n- Properly parse `record` declarations into the internal representation.\n- Consider creating a new entity for the record type. \n- Ensure that `record` fields are properly registered in the symbol table. \n- Integrate `record` types with existing analyses such as type resolution and call site detection. \n\n**Describe alternatives you've considered** \nNone. Record classes were ignored. \n\n**Additional context** \n- Example code that currently fails to generate a parse tree or call graph: \n ```java\n public record Person(String name, int age) {\n public String greet() {\n return \"Hello, \" + name;\n }\n }\n ```\n- Expected behavior: \n - The `Person` record should appear in the symbol table. \n - The `greet` method should be included in the call graph. \n - Implicitly generated methods should be accounted for. ","author":{"url":"https://github.com/dsahu75","@type":"Person","name":"dsahu75"},"datePublished":"2025-02-16T15:35:09.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/118/codeanalyzer-java/issues/118"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:cf602019-b0e3-07d7-f989-c7439dd13eb1 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 893E:1F29E:79F938:A0493A:698EC0F8 |
| html-safe-nonce | e54dc732c59957b62b4e64c5f40dc041b0051bbb6db76c409ec552799d10ddbd |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4OTNFOjFGMjlFOjc5RjkzODpBMDQ5M0E6Njk4RUMwRjgiLCJ2aXNpdG9yX2lkIjoiODE4NzE3MTUyNzMyNzY2MjMyOCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | fd25d9bd1e7b11ca0689554a91a5008c75bd15517fb0d3102f03e95fa919c6c9 |
| hovercard-subject-tag | issue:2856168372 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/codellm-devkit/codeanalyzer-java/118/issue_layout |
| twitter:image | https://opengraph.githubassets.com/39e02a8ab2223c1cc898c9808cf1f38409af3eb6c0c4c15978c32e486f4c3524/codellm-devkit/codeanalyzer-java/issues/118 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/39e02a8ab2223c1cc898c9808cf1f38409af3eb6c0c4c15978c32e486f4c3524/codellm-devkit/codeanalyzer-java/issues/118 |
| og:image:alt | Is your feature request related to a problem? Please describe. codeanalyzer-java fails to generate a parse tree, symbol table, or call graph when analyzing Java code that includes record declaratio... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | dsahu75 |
| hostname | github.com |
| expected-hostname | github.com |
| None | cb2828a801ee6b7be618f3ac76fbf55def35bbc30f053a9c41bf90210b8b72ba |
| turbo-cache-control | no-preview |
| go-import | github.com/codellm-devkit/codeanalyzer-java git https://github.com/codellm-devkit/codeanalyzer-java.git |
| octolytics-dimension-user_id | 197800760 |
| octolytics-dimension-user_login | codellm-devkit |
| octolytics-dimension-repository_id | 731300153 |
| octolytics-dimension-repository_nwo | codellm-devkit/codeanalyzer-java |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 731300153 |
| octolytics-dimension-repository_network_root_nwo | codellm-devkit/codeanalyzer-java |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | e6b91a7e6e46287d26887e3fb7a4161657bab8f7 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width