Sample
int-b1e8cad6efc1-I13
Lower every eligible classic and enhanced for loop to a while loop
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0.002 | 0–1; higher is more readable |
| Scalabrino | 0.781 | 0–1; higher is more readable |
| Dorn | 0.551 | 0–1; higher is more readable |
| Mi | 0.259 | 0–1; higher is more readable |
| LLOC | 6 | 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.322 | 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. | 577.677 | −19.063 |
| Source linesThe number of non-empty source lines. | 28 | +11.2 |
| 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.826 | −7.24 |
Intercept 8.87 + feature contributions = -6.233 (log-odds).
Score = sigmoid(-6.233) = 0.002.
| Score | 0.781 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| 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. | 119.931 | −1.415 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 119.931 | +1.131 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.051 | +0.442 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 23 | −0.107 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 23 | +0.058 |
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 28 | +0.045 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 27.785 | −0.021 |
Intercept 0.07 + feature contributions = 0.203 (log-odds).
Score = sigmoid(0.203) = 0.551.
| Score | 0.259 |
|---|
| Score | 6 |
|---|
Run 1
The code is highly readable. Structure is logical: package, imports, class, field, constructor, override, factory method. Nesting is minimal—only one method override and one static factory, both flat. Intent is clear: a performance-optimized exception that skips stacktrace generation, with Javadoc explaining purpose. Length is concise and appropriate for the functionality. Action granularity is one action per line. Reading flow is natural, moving from class definition to constructor to behavior override to factory method. Minor deductions: the suppressed warning comment could be slightly more specific, and the class could be final (already is). Overall, excellent clarity and simplicity.
Run 2
The code demonstrates excellent readability with a clear, single-purpose class. Structure is logical: imports, class declaration, constructor, override, and factory method are all well-organized. Nesting is minimal (no conditional blocks) and the override method is flat. Intent is explicitly documented via class JavaDoc and inherited exception semantics, plus the 'Stackless' name clearly signals behavior. Code length is concise with no unnecessary methods or fields. Action granularity is one action per line, including the empty constructor and the factory method return. Reading flow is natural, moving from class definition to behavioral override to usage API. Minor deductions: the serialVersionUID adds slight noise, and the factory method could benefit from a more explicit parameter name than 'clazz' (though it is idiomatic). Overall, it is a clean, focused utility class.
Run 3
The code is highly readable. It has a clear, single-purpose class with a logical structure and minimal nesting. The class name and method names explicitly convey intent. The implementation is concise, with each action on a separate line and a natural reading flow. The only minor issue is the slightly misleading comment about suppressing a warning, which could be more specific about why synchronization is unnecessary (no mutable state is initialized).
Run 1
Code Structure: The class is logically organized into a constant, private constructor, override, and factory method. Nesting: There is no nested control flow, making it easy to scan. Clarity of intent: The class name, documentation, and fillInStackTrace override clearly communicate the stackless exception purpose; clazz is slightly generic, and origin assignment relies on understanding unknownStackTrace. Code length: The implementation is concise without unnecessary logic. Action granularity: Each statement performs one focused action, with the factory's inline construction remaining easy to understand. Reading flow: The progression from class purpose to construction and behavior is natural. Minor spacing improvements between the package and imports would improve presentation.
Run 2
Code Structure: The class is logically organized into a constant, private constructor, override, and factory method. Nesting: Methods are flat, with no nested control flow. Clarity of intent: The class name, documentation, and fillInStackTrace override clearly explain the stackless exception behavior; clazz is slightly generic, and the factory's stack-trace adjustment requires familiarity with ThrowableUtil. Code length: The implementation is concise without unnecessary boilerplate. Action granularity: Each statement performs a focused action, although the factory combines construction and stack-trace adjustment in one readable expression. Reading flow: The progression from class purpose to implementation and creation is natural. Minor spacing improvements between the package declaration and imports would enhance presentation.
Run 3
Code Structure: The class is logically organized into a constant, private constructor, overridden method, and factory method. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: The class name, documentation, and stack-trace override clearly communicate its purpose; the factory's behavior depends slightly on understanding ThrowableUtil. Code length: The implementation is concise without unnecessary code. Action granularity: Statements generally perform one clear action; the factory combines construction and stack-trace customization in a simple expression. Reading flow: The progression from class definition to behavior and instance creation is natural. Minor formatting improvements, such as separating the package declaration from imports, would improve readability further.