Sample
int-755da21dc354-I12
Inline all eligible single-use intermediate local variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.001 | 0–1; higher is more readable |
| Scalabrino | 0.746 | 0–1; higher is more readable |
| Dorn | 0.714 | 0–1; higher is more readable |
| Mi | 0.351 | 0–1; higher is more readable |
| LLOC | 5 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18 | 0–20; mean of three runs |
| GPT-6.1 Sol | 19 | 0–20; mean of three runs |
| BTTF | 0.672 | 0–1; higher is more readable |
Views
Loading feature diagnosis…
Source regions
Feature contributions
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones. | 647.078 | −21.354 |
| Source linesThe number of non-empty source lines. | 31 | +12.4 |
| Byte entropyHow varied the bytes in the source text are. Repeated bytes give a lower value; a more even mixture gives a higher value. | 4.756 | −7.134 |
Intercept 8.87 + feature contributions = -7.217 (log-odds).
Score = sigmoid(-7.217) = 0.001.
| Score | 0.746 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 88.25 | +0.619 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
| Identifier layout (horizontal)How rapidly the visual pattern of identifier characters changes from left to right. It measures spatial frequency, not the meaning of the names. | 94 | −0.316 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.07 | +0.266 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 32 | −0.097 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 20 | −0.045 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 30.832 | +0.021 |
Intercept 0.07 + feature contributions = 0.916 (log-odds).
Score = sigmoid(0.916) = 0.714.
| Score | 0.351 |
|---|
| Score | 5 |
|---|
Run 1
The code is highly readable. Structure is logical: package, imports, Javadoc, class definition, single static factory method. Nesting is minimal—only a lambda within a lambda, but both are simple. Clarity of intent is strong due to clear naming ('asynchronous', 'listener', 'executor') and comprehensive Javadoc. Code length is concise and appropriate, with no redundant boilerplate. Action granularity is mostly one action per line; the lambda bodies are compact but still understandable. Reading flow is natural: validation first, then return of the composed listener. Minor deductions: the static import is used correctly, and the inner lambda could arguably be extracted for absolute clarity, but current form is acceptable. Overall, this is exemplary Java library code.
Run 2
The code is highly readable. It uses a clear class-level Javadoc and a private constructor for a utility class. The asynchronous method is concise, with minimal nesting and clear intent: validate inputs, then return a lambda that delegates to the executor. Each action is on its own line, and reading flow follows a natural progression from validation to behavior. The only minor drawbacks are the slightly long generic method signature and the inline lambda, but these are idiomatic for Java and do not harm comprehension.
Run 3
The code is highly readable. It has a clear, logical structure with a single well-named final class and a private constructor preventing instantiation. The asynchronous method is concise, with no unnecessary nesting. The intent is immediately apparent: it wraps a removal listener to execute asynchronously via an executor. Null checks are performed flatly using static imports, and the lambda expressions are brief and perform one logical action per line. The reading flow is natural, moving from validation through construction to behavior. The Javadoc is clear but not excessive. Overall, the code is exemplary in brevity and clarity.
Run 1
Code Structure: The utility class is logically organized, with a private constructor and one focused factory method. Nesting: Minimal nesting; the nested lambdas are compact and easy to follow. Clarity of intent: Descriptive names and Javadoc clearly explain the asynchronous listener wrapper, although the documentation refers to eviction rather than all removal notifications. Code length: Concise, with no unnecessary implementation detail. Action granularity: Each null check occupies its own line, and the return expression cleanly expresses task submission and callback invocation. Reading flow: Documentation, validation, and construction appear in a natural sequence. Minor drawbacks are the lack of spacing between package and import declarations and the small cognitive overhead of nested lambdas.
Run 2
Code Structure: A well-organized utility class with a private constructor and one focused factory method. Nesting: Minimal; the nested lambdas are shallow and easy to follow. Clarity of intent: Descriptive names, documentation, and explicit null checks clearly communicate asynchronous notification delivery. Code length: Concise, with no unnecessary implementation steps. Action granularity: Each validation occupies its own line, and the return expression cleanly represents task submission and callback execution. Reading flow: Naturally progresses from documentation and method signature to validation and listener construction. Minor drawbacks are cramped spacing around package/import declarations and the slight mental overhead of nested lambdas.
Run 3
Code Structure: A well-organized utility class with a private constructor and one focused factory method. Nesting: Minimal; the nested lambdas are shallow and easy to follow. Clarity of intent: Descriptive names, documentation, and explicit null checks clearly convey asynchronous notification delivery. Code length: Concise, with no unnecessary logic or boilerplate. Action granularity: Each validation occupies its own line, and the returned expression cleanly expresses task submission and callback execution. Reading flow: Natural progression from documentation and method signature through validation to listener creation. Minor drawbacks are the lack of spacing between package and imports and the modest cognitive overhead of nested lambdas.