Sample

int-15189b0da9c1-I04

Replace method, parameter, and local names with deterministic ProGuard-style short identifiers

Matched original source

Lines29

Scores

MethodScoreScale
Posnett0.9990–1; higher is more readable
Scalabrino0.8660–1; higher is more readable
Dorn0.7930–1; higher is more readable
Mi0.2970–1; higher is more readable
LLOC2Logical lines; fewer is more readable
DeepSeek V4 Pro60–20; mean of three runs
GPT-6.1 Sol13.670–20; mean of three runs
BTTF0.620–1; higher is more readable

Views

Source code

package io.netty.util.internal; /** * Provides methods for {@link DefaultPriorityQueue} to maintain internal state. These methods should generally not be * used outside the scope of {@link DefaultPriorityQueue}. */ public interface PriorityQueueNode { /** * This should be used to initialize the storage returned by {@link #priorityQueueIndex(DefaultPriorityQueue)}. */ int INDEX_NOT_IN_QUEUE = -1; /** * Get the last value set by {@link #priorityQueueIndex(DefaultPriorityQueue, int)} for the value corresponding to * {@code queue}. * <p> * Throwing exceptions from this method will result in undefined behavior. */ int a(DefaultPriorityQueue<?> a); /** * Used by {@link DefaultPriorityQueue} to maintain state for an element in the queue. * <p> * Throwing exceptions from this method will result in undefined behavior. * @param queue The queue for which the index is being set. * @param i The index as used by {@link DefaultPriorityQueue}. */ void a(DefaultPriorityQueue<?> b, int c); }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(log-odds)
Source linesThe number of non-empty source lines.29+11.6
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.653−6.98
Halstead volumeHow much symbolic information the code contains. It combines the total number of operators and values with the number of distinct ones.206.716−6.822

Intercept 8.87 + feature contributions = 6.668 (log-odds).
Score = sigmoid(6.668) = 0.999.

Score0.866

Feature contributions

FeatureValueContribution
(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.118−1.333
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.114.167+1.038
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.1+1.001
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.021+0.742
Indentation frequencyHow rapidly indentation changes from line to line.13−0.287
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.13+0.123
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.28.706−0.009

Intercept 0.07 + feature contributions = 1.345 (log-odds).
Score = sigmoid(1.345) = 0.793.

Score0.297
Score2
Run 1

The code is severely compromised by obfuscated method and parameter names ('a', 'b', 'c') that make the API impossible to understand without external context. While the overall structure is straightforward and the documentation is thorough, the naming completely destroys clarity of intent and reading flow. The comments reference method names like 'priorityQueueIndex(DefaultPriorityQueue, int)' that don't actually exist in the code, creating confusion. The nesting is non-existent (good), length is minimal (good), and action granularity is fine, but the single worst choice—obfuscated names—undermines every other quality. The interface itself is logically organized, but the reader cannot determine what any method does without guessing. This appears to be deliberately obfuscated or a result of automated renaming, making it effectively unreadable despite good documentation practices.

Run 2

The code is well-structured as an interface with clear Javadoc and logical organization, but several factors reduce readability. The method names 'a' and parameter names 'a', 'b', 'c' are meaningless, forcing readers to rely on documentation rather than self-documenting code. While the Javadoc explains intent, the naming convention contradicts standard Java practices. The nesting is flat and action granularity is fine, but the reading flow suffers from poorly named methods that obscure their purpose. The documentation references methods correctly but the placeholder-style naming suggests either obfuscation or incomplete refactoring, significantly impacting clarity. The code is concise but overly abbreviated, trading expressiveness for brevity.

Run 3

This code is extremely obfuscated, likely intentionally minified. Method names like 'a' and parameters 'a', 'b', 'c' completely obscure intent, making the interface impossible to understand without external documentation. While the structure is logically organized with clear Javadoc comments, the identifiers are meaningless. The code has minimal nesting, is concise, and has one action per line, but reading flow is severely damaged because every reference to 'a' is ambiguous. The comments describe what the methods should do, but the names don't reflect their purpose, creating a major disconnect. The Javadoc references methods like #priorityQueueIndex() that don't match the actual method signatures, further reducing clarity. For these reasons, readability is critically low despite good structural organization.

Run 1

Code Structure: The interface is logically organized, with a constant followed by getter and setter declarations. Nesting: Completely flat and easy to scan. Clarity of intent: Documentation explains the queue-index contract, but method names 'a' and parameters 'a', 'b', and 'c' obscure meaning. Javadoc links reference nonexistent priorityQueueIndex methods, and @param names do not match the setter signature, reducing trust in the documentation. Code length: Short and appropriately scoped, although comments occupy most of the snippet. Action granularity: Each declaration is on its own line, with no combined actions. Reading flow: The constant-to-getter-to-setter sequence is natural, but inconsistent naming between documentation and declarations interrupts understanding.

Run 2

Code Structure: The interface logically groups a sentinel constant and two related methods. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: Documentation explains the queue-index contract, but method names 'a' and parameter names 'a', 'b', and 'c' obscure intent. Javadoc references priorityQueueIndex methods that are not declared, and @param names do not match the actual parameters, undermining documentation reliability. Code length: The implementation is concise; documentation is proportionate to the contract. Action granularity: Each declaration occupies its own line, with no combined actions. Reading flow: The constant followed by getter-like and setter-like methods forms a natural progression, but readers must reconcile meaningful documentation with opaque identifiers.

Run 3

Code Structure: The interface logically groups a sentinel constant and two queue-state operations. Nesting: There is no control-flow nesting, making the declarations easy to scan. Clarity of intent: The class documentation and constant name explain the purpose, but overloaded methods named 'a' and parameters named 'a', 'b', and 'c' obscure the getter/setter roles. Javadoc links reference nonexistent priorityQueueIndex methods, and @param names do not match the declaration, further reducing clarity. Code length: The interface is concise, with mostly useful documentation. Action granularity: Each declaration occupies its own line and represents one operation. Reading flow: Formatting and declaration order are natural, but readers must reconcile descriptive documentation with ambiguous identifiers and stale references.