On Thu, 5 Dec 2024 14:34:29 GMT, Jan Lahoda <jlah...@openjdk.org> wrote:

> we probably need something that will avoid running the lint's code completely 
> in a (semi-)automatic way. That could be part of a more generic 22088.

Agreed.

Slight comment hijack follows...

The [unnecessary suppression warning 
proposal](https://mail.openjdk.org/pipermail/compiler-dev/2024-November/028573.html)
 would create a natural answer for this, because there would be a new concept 
"active" along with "enabled": A category is active if it's enabled OR we are 
tracking unnecessary suppressions, the category is being suppressed at this 
point in the code, and so far that suppression is unnecessary (i.e., no 
warnings would have fired yet).

So linter code would want to check for "active" status (instead of "enabled" 
status) before doing a non-trivial calculation, which would end up looking like 
this:

if (lint.isActive(LintCategory.FOO) &&
  complicatedCalculationA() &&
  complicatedCalculationB()) {
    lint.logIfEnabled(log, pos, LintWarnings.FooProblem);
}

But perhaps then we should then consider lambda-ification, which would simplify 
this down to:

lint.check(log, pos, LintWarnings.FooProblem,
  () -> complicatedCalculationA() && complicatedCalculationB());

This could be your "(semi-)automatic" option.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22553#discussion_r1871579738

Reply via email to