Sample

int-5369ac84518a-I04

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

Matched original source

Lines38

Scores

MethodScoreScale
Posnett00–1; higher is more readable
Scalabrino0.7640–1; higher is more readable
Dorn0.8110–1; higher is more readable
Mi0.3150–1; higher is more readable
LLOC5Logical lines; fewer is more readable
DeepSeek V4 Pro6.670–20; mean of three runs
GPT-6.1 Sol12.670–20; mean of three runs
BTTF0.6430–1; higher is more readable

Views

Source code

package io.netty.resolver.dns; import io.netty.channel.AddressedEnvelope; import io.netty.channel.Channel; import io.netty.channel.ChannelFuture; import io.netty.handler.codec.dns.DefaultDnsQuery; import io.netty.handler.codec.dns.DnsQuery; import io.netty.handler.codec.dns.DnsQuestion; import io.netty.handler.codec.dns.DnsRecord; import io.netty.handler.codec.dns.DnsResponse; import io.netty.util.concurrent.Future; import io.netty.util.concurrent.Promise; import java.net.InetSocketAddress; final class TcpDnsQueryContext extends DnsQueryContext { TcpDnsQueryContext(Channel a, InetSocketAddress b, DnsQueryContextManager c, DnsQueryLifecycleObserver d, int e, boolean f, long g, DnsQuestion h, DnsRecord[] i, Promise<AddressedEnvelope<DnsResponse, InetSocketAddress>> j) { super(a, b, c, d, e, f, // No retry via TCP. g, h, i, j, null, false); } @Override protected DnsQuery a(int k, InetSocketAddress l) { return new DefaultDnsQuery(k); } @Override protected String b() { return "TCP"; } }

Loading feature diagnosis…

Source regions

Feature contributions

Feature contributions

FeatureValueContribution
(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.1438.566−47.473
Source linesThe number of non-empty source lines.38+15.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.436−6.654

Intercept 8.87 + feature contributions = -30.056 (log-odds).
Score = sigmoid(-30.056) = 0.

Score0.764

Feature contributions

FeatureValueContribution
(log-odds)
Comment layout (horizontal)How rapidly the visual pattern of comment characters changes from left to right.86+0.583
Indentation frequencyHow rapidly indentation changes from line to line.37+0.543
Number layout frequencyHow rapidly the number of numeric values per line changes through the code.1+0.398
Comment layout frequencyHow frequently the layout switches between lines containing only comments or whitespace and lines containing code.39−0.345
Identifier layout (vertical)How rapidly the visual pattern of identifier characters changes from top to bottom.37.966+0.121
Operator visual areaThe share of the code’s visual area occupied by operators such as +, =, and *.0.091+0.061
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.86+0.023

Intercept 0.07 + feature contributions = 1.453 (log-odds).
Score = sigmoid(1.453) = 0.811.

Score0.315
Score5
Run 1

The code has a clear overall structure and follows standard Java patterns, but readability is significantly reduced by poor variable naming (a, b, c, d, e, f, g, h, i, j, k, l) that obscures intent. The constructor parameters are cryptic, requiring readers to infer their meaning from the super call. Nesting is minimal and action granularity is fine, but the lack of self-documenting names forces unnecessary cognitive load. The comments within the constructor are slightly helpful but insufficient. The overridden methods have short, unclear names. Overall, the code is not tangled but fails on clarity of intent due to obfuscated identifiers.

Run 2

The code suffers from poor readability due to extremely abbreviated parameter names (a, b, c, d, e, f, g, h, i, j) that obscure intent, making it difficult to understand what each argument represents without referring to the parent class. The constructor has 11 parameters packed into a single call, reducing clarity and action granularity. Method names a() and b() are meaningless and fail to convey their purpose ('create query' and 'protocol name' respectively). While the structure is logically organized and nesting is flat, the heavy reliance on single-letter identifiers significantly hampers reading flow. The code is concise but at the cost of clarity — the minimal length does not compensate for the loss of self-documenting quality. Import statements are standard, and the class hierarchy is clear, but overall maintainability suffers from these naming choices.

Run 3

The code is structurally sound but severely undermined by non-descriptive identifiers. Parameters named 'a' through 'j' and methods 'a(int k, InetSocketAddress l)' and 'b()' make the intent opaque without external documentation. The constructor accepts 10 positional parameters, requiring line-by-line reference to the parent class to understand what each value represents. While nesting is flat and actions are granular, those strengths are negated by a complete loss of clarity and natural reading flow. The class name and package convey TCP DNS context, and the one-line comment about no retry is helpful, but the method overrides provide zero semantic information. Meaningful names like 'channel', 'nameServerAddress', 'queryTimeoutMillis', or 'newQuery(...)' would dramatically increase readability. As written, every reader must memorize or inspect the parameter list to work with this class.

Run 1

Code Structure: The small class is logically organized into a constructor and two overridden methods, though unused imports add clutter. Nesting: There is no nested control flow, making the code easy to scan. Clarity of intent: The class name, DNS types, TCP string, and comment indicate its purpose, but single-letter parameter and method names obscure individual responsibilities and constructor arguments. Code length: The implementation is concise, although the long constructor signature and positional superclass call require effort to interpret. Action granularity: Each statement performs one action; there are no compressed multi-action lines. Reading flow: Constructor-first organization and short methods provide a natural flow, but understanding the superclass call requires repeatedly mapping anonymous parameters to their types.

Run 2

Code Structure: The small class is logically organized into a constructor and two overrides, though unused imports add clutter. Nesting: There is no deeply nested logic, making the code easy to scan. Clarity of intent: The class name, types, TCP string, and retry comment provide context, but single-letter method and parameter names obscure responsibilities and make the long superclass argument list difficult to interpret. Code length: The implementation is concise, with little unnecessary code beyond the unused imports. Action granularity: Each statement performs one action, although several parameters and arguments share lines. Reading flow: The constructor-to-overrides ordering is natural, but opaque identifiers and positional argument mapping interrupt comprehension.

Run 3

Code Structure: A small, logically organized class with a constructor and two overrides. Nesting: Flat, with no nested control flow. Clarity of intent: The class name, TCP label, and retry comment communicate its role, but single-letter parameter and method names obscure individual responsibilities and the superclass arguments. Code length: Concise, although several imports are unused. Action granularity: Each statement performs one action; grouping multiple parameters on some lines slightly reduces scanability. Reading flow: Constructor-first organization and consistent indentation make navigation straightforward, but interpreting the long superclass call requires external context.