Skip to content

Conversation

@PiIsRational
Copy link

Changes

  • Extended the Javac Extension to be able to load annotation processors, while the java code is getting checked
    in KeY. This includes creating settings for the Javac Extension, to be able to set the checkers.
  • Changed the saving behaviour of the ProofIndependentSettings to save settings that are not used by the saving KeY
    version.

Type of pull request

  • New feature (non-breaking change which adds functionality)
  • There are changes to the (Java) code

Ensuring quality

  • I made sure that introduced/changed code is well documented (javadoc and inline comments).
  • I have tested the feature as follows:
    • I used it with multiple annotation processors
    • I loaded KeY with various settings to check if and when they are deleted
  • I have checked that runtime performance has not deteriorated.
  • For new Gradle modules: I added the Gradle module to the test matrix in
    .github/workflows/tests.yml

Additional information and contact(s)

@WolframPfeifer is involved in this pull request.

The contributions within this pull request are licensed under GPLv2 (only) for inclusion in KeY.

// this is needed to be able to load checker framework checkers in the javac
// extension
jvmArgs += [
"--add-exports",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This requirement makes this PR unusable in practice. The normal execution is java -jar key-...-exe.jar.

Using start scripts, it would be possible, but #3638 is not discussed.

* @return future providing the list of diagnostics
*/
public static @NonNull CompletableFuture<List<PositionedIssueString>> check(
ProblemInitializer.ProblemInitializerListener listener,
Path bootClassPath, List<Path> classPath, Path javaPath) {
File bootClassPath, List<File> classPath, File javaPath,
List<String> processors) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it not be JavacSettings instance here for later extensibility?

@codecov
Copy link

codecov bot commented Dec 8, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 47.99%. Comparing base (2aa39bb) to head (7ca2241).
⚠️ Report is 12 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##               main    #3686   +/-   ##
=========================================
  Coverage     47.99%   47.99%           
  Complexity    16046    16046           
=========================================
  Files          1683     1683           
  Lines         96044    96044           
  Branches      15387    15387           
=========================================
+ Hits          46093    46095    +2     
+ Misses        44681    44680    -1     
+ Partials       5270     5269    -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants