Sample
int-709b897f9757-I12
Inline all eligible single-use intermediate local variables
Scores
| Method | Score | Scale |
|---|---|---|
| Posnett | 0 | 0–1; higher is more readable |
| Scalabrino | 0.822 | 0–1; higher is more readable |
| Dorn | 0.747 | 0–1; higher is more readable |
| Mi | 0.195 | 0–1; higher is more readable |
| LLOC | 21 | Logical lines; fewer is more readable |
| DeepSeek V4 Pro | 18.33 | 0–20; mean of three runs |
| GPT-6.1 Sol | 18 | 0–20; mean of three runs |
| BTTF | 0.661 | 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. | 1829.317 | −60.367 |
| Source linesThe number of non-empty source lines. | 115 | +46 |
| 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.834 | −7.251 |
Intercept 8.87 + feature contributions = -12.749 (log-odds).
Score = sigmoid(-12.749) = 0.
| Score | 0.822 |
|---|
Feature contributions
| Feature | Value | Contribution (log-odds) |
|---|---|---|
| Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code. | 109 | −2.823 |
| Indentation frequencyHow rapidly indentation changes from line to line. | 72 | +1.753 |
| Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom. | 114.55 | +1.191 |
| 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. | 109.94 | −0.991 |
| Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right. | 109.966 | +0.97 |
| Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *. | 0.044 | +0.515 |
| Number layout frequencyHow rapidly the number of numeric values per line changes through the code. | 1 | +0.398 |
Intercept 0.07 + feature contributions = 1.083 (log-odds).
Score = sigmoid(1.083) = 0.747.
| Score | 0.195 |
|---|
| Score | 21 |
|---|
Run 1
The code is highly readable, following clear structure and best practices. It uses a logical class organization with grouped fields, multiple well-documented constructors, and clearly named accessor methods. Nesting is minimal; the only conditional logic appears in short, flat helper methods. Each constructor and method has a distinct, single responsibility. Action granularity is excellent—each line performs one clear operation or assignment. Javadoc comments thoroughly explain intent, parameters, and edge cases, making the ambiguity low. The code length is appropriate for the class's purpose, with concise implementation and no redundancy. Reading flow is natural: class documentation, fields, constructors in order of increasing specificity, then getters. Null-safety annotations improve clarity. Minor deductions are only theoretical, such as the slight duplication between Class-based and String-based constructors, but overall this is exemplary readable production code.
Run 2
The code is highly readable. It follows a clear, logical structure with a well-defined class hierarchy and comprehensive Javadoc comments on every constructor and method. Nesting is minimal, limited to simple conditional checks in getters. Intent is clear: this is a specialized exception for object retrieval failures. The code is concise, with no unnecessary duplication (constructor chaining is used effectively). Each action generally has its own line, improving clarity. Reading flow is natural, from fields to constructors to accessors. Minor deductions: the getPersistentClassName method could be slightly clearer, and the @Nullable annotations add some visual noise, but overall the code is exceptionally clean and maintainable.
Run 3
The code is well-structured with clear separation of constructors and getters, follows Java conventions, and shows flat nesting. Javadocs explicitly document each constructor's purpose and parameters. While there are several overloaded constructors, they remain readable due to consistent ordering and delegation. Minor improvements could include reducing repetitive Javadoc or using a builder pattern, but overall clarity is high with single actions per line.
Run 1
Code Structure: Fields, constructor overloads, and accessors are logically grouped, with consistent formatting. Nesting: Almost entirely flat, with only one shallow conditional. Clarity of intent: Descriptive names, Javadocs, and nullability annotations clearly explain the exception's purpose; storing either a Class or String in an Object field slightly obscures its representation. Code length: Methods are concise, though repeated constructor documentation and default-message construction add some verbosity. Action granularity: Each statement performs a single clear action; multiline constructor calls remain easy to follow. Reading flow: The progression from state to initialization to retrieval is natural, and constructor delegation makes relationships clear. Minor friction comes from long message expressions and repetitive overloads.
Run 2
Code Structure: Fields, constructors, and accessors are logically grouped, with constructor delegation reducing duplication. Nesting: Almost entirely flat, with only one simple conditional. Clarity of intent: Descriptive names, Javadoc, and nullability annotations clearly explain the exception's purpose and behavior; storing either a Class or String in an Object field slightly weakens type clarity. Code length: Reasonably concise, though repeated constructor documentation and default-message construction add some verbosity. Action granularity: Each assignment and return occupies its own line; multiline constructor calls remain understandable. Reading flow: Consistent formatting and a natural progression from initialization to accessors make the class easy to follow, with only minor friction from similar overloads and long message expressions.
Run 3
Code Structure: Fields, constructors, and accessors are logically grouped, with constructor delegation reducing duplication. Nesting: Methods are flat, with only one shallow conditional. Clarity of intent: Descriptive names, Javadoc, and nullability annotations clearly communicate the exception's purpose; storing either a Class or String in an Object field slightly obscures the representation. Code length: Implementations are concise, though repeated constructor documentation and similar overloads add some verbosity. Action granularity: Statements generally perform one action per line; wrapped constructor calls remain understandable. Reading flow: Consistent formatting and a natural fields-to-constructors-to-accessors progression make the class easy to follow, with only minor interruptions from long message expressions and repetitive documentation.