Repository Analysis

sorbet/sorbet

A fast, powerful type checker designed for Ruby

3.8 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of sorbet/sorbet, a C++ project with 3,790 GitHub stars. SynthScan v2.0 examined 216,713 lines of code across 5718 source files, recording 599 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 3.8 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

3.8
Adjusted Score
3.8
Raw Score
100%
Time Factor
2026-08-09
Last Push
3.8K
Stars
C++
Language
216.7K
Lines of Code
5.7K
Files
599
Pattern Hits
2026-08-09
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

Longitudinal tracking requires multiple scan runs. Once this repository is re-scanned after new commits land, this chart will visualise how the synthetic code signal evolves over time — enabling you to detect whether AI authorship is growing, stabilising, or being actively corrected by human engineers.

No multi-scan history yet — run the scanner again to build trend data.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 0HIGH 3MEDIUM 113LOW 483

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 599 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Over-Commented Block321 hits · 320 pts
SeverityFileLineSnippetContext
LOWlldbinit.py1# TODO(jez) Figure out what to do about this warning:COMMENT
LOWtools/scripts/lmdb-scratch.py101 wasted_overflow_bytes = 0COMMENT
LOWtools/scripts/import_whitequark.rb1# This script imports test cases from whitequark/parser repoCOMMENT
LOWtools/scripts/import_whitequark.sh1#!/bin/shCOMMENT
LOWtools/scripts/build_compilation_db.sh1#!/bin/bashCOMMENT
LOWtools/scripts/update_testdata_exp.sh201 candidate="$basename.$pass.exp"COMMENT
LOWcore/GlobalState.h1#ifndef SORBET_GLOBAL_STATE_HCOMMENT
LOWcore/GlobalState.h661 // If these options change, it's no longer safe to read things out of the cache.COMMENT
LOWcore/TypeErrorDiagnostics.h1#ifndef SORBET_TYPE_ERROR_DIAGNOSTICS_HCOMMENT
LOWcore/FileHash.h241// structure (one per file in the project), so for these extra properties that we don't need toCOMMENT
LOWcore/FileHash.h261 // Since something could naturally hash to `HASH_STATE_NOT_COMPUTED`, we force these hashCOMMENT
LOWcore/FileHash.h281 uint32_t fieldHash = HASH_STATE_NOT_COMPUTED;COMMENT
LOWcore/FileHash.h341 });COMMENT
LOWcore/core.h1#ifndef SORBET_CORE_HCOMMENT
LOWcore/Symbols.h1#ifndef SORBET_SYMBOLS_HCOMMENT
LOWcore/Symbols.h621COMMENT
LOWcore/Symbols.h641 // The package that this symbol belongs to.COMMENT
LOWcore/Types.h1#ifndef SORBET_TYPES_HCOMMENT
LOWcore/Types.h461COMMENT
LOWcore/Types.h481// takes two `TypePtr` which have had their LambdaParam's or TypeVar's instantiated.COMMENT
LOWcore/Types.h501// res = id1(v)COMMENT
LOWcore/Types.h1121COMMENT
LOWcore/Loc.h101 std::optional<std::string_view> source(const GlobalState &gs) const;COMMENT
LOWcore/Loc.h121 //COMMENT
LOWcore/FoundDefinitions.h41 // When kind != Symbol, `id` stores indices into the assorted vectors on `FoundDefinitions`.COMMENT
LOWcore/ArityHash.h1#ifndef SORBET_ARITY_HASH_HCOMMENT
LOWcore/TrailingObjects.h1#ifndef SORBET_TRAILING_OBJECTS_HCOMMENT
LOWcore/TrailingObjects.h21// much space to allocate and how to access the trailing objects; it does notCOMMENT
LOWcore/TrailingObjects.h41// of that complexity behind a static factory function of some kind, andCOMMENT
LOWcore/TrailingObjects.h61/// numTrailingObjects implementations for each trailing type exceptCOMMENT
LOWcore/TypePtr.h1#ifndef SORBET_TYPEPTR_HCOMMENT
LOWcore/TypePtr.h261 bool hasUntyped() const;COMMENT
LOWcore/serialize/serialize.h41 // intended to be used for loading the payload out of buffers that are compiled in to the binary.COMMENT
LOWcore/lsp/Query.h21COMMENT
LOWcore/lsp/TypecheckEpochManager.h41 static void assertConsistentThread(std::optional<std::thread::id> &expectedThreadId, std::string_view method,COMMENT
LOWcore/lsp/PreemptionTaskManager.h1#ifndef SORBET_LSP_PREEMPTIONTASKMANAGER_HCOMMENT
LOWcore/lsp/PreemptionTaskManager.h21 // Thread ID of the typechecking thread. Lazily set.COMMENT
LOWcore/lsp/PreemptionTaskManager.h41 std::atomic<packages::Stratum> runnableAt;COMMENT
LOWcore/lsp/PreemptionTask.h1#ifndef SORBET_LSP_PREEMPTION_TASK_HCOMMENT
LOWcore/packages/PackageInfo.h181 // ID of the strongly-connected component that this package's tests are in, according to its graph of importCOMMENT
LOWcore/packages/MangledName.h1#ifndef SORBET_CORE_PACKAGES_MANGLEDNAME_HCOMMENT
LOWnamer/namer.h21 //COMMENT
LOWtest/testdata/rewriter/coerce_in_prop.rb1# typed: trueCOMMENT
LOWtest/testdata/rewriter/coerce_in_prop.rb21 # ^^^^^^ error: Method `coerce` does not exist on `T.class_of(T)`COMMENT
LOWtest/testdata/namer/payload_name.rb1# typed: trueCOMMENT
LOWtest/testdata/namer/implicit_module_loc.rb1# typed: trueCOMMENT
LOWtest/testdata/namer/type_member_eager_to_lazy.rb21 B2 = type_member fixed: IntegerCOMMENT
LOWtest/testdata/namer/super.rb1# typed: trueCOMMENT
LOWtest/testdata/lsp/hover_method.rb101 # ^ hover: IntegerCOMMENT
LOWtest/testdata/lsp/hover_constraint.rb1# typed: strictCOMMENT
LOWtest/testdata/lsp/hover_constraint.rb21 #^ hover-line: 16 )COMMENT
LOWtest/testdata/lsp/workspace_symbols_stdlib.rb1# typed: trueCOMMENT
LOWtest/testdata/lsp/hover_constant_kind.rb81 extend T::GenericCOMMENT
LOWtest/testdata/lsp/hover_constant_kind.rb121 # ^ hover: IntegerCOMMENT
LOWtest/testdata/lsp/genericMethods.rb41 # ^ hover: sig { type_parameters(:A).params(a: T.type_parameter(:A)).returns(T.type_parameter(:A)) }COMMENT
LOWtest/testdata/lsp/hover.rb141COMMENT
LOWtest/testdata/lsp/hover.rb161 # ^ hover-line: 2 # Kernel#raise (overload.2):COMMENT
LOW…estdata/lsp/definitions_and_usages_untyped__untyped.rb21 Untyped::Bar.new.batCOMMENT
LOWtest/testdata/lsp/hover_method_includes_defs.rb121 # ^ hover: def block_args(&blk); endCOMMENT
LOWtest/testdata/lsp/hover_method_includes_defs.rb141 # ^ hover: def keyword_args_no_defaults(fname:, lname:); endCOMMENT
261 more matches not shown…
Hyper-Verbose Identifiers144 hits · 162 pts
SeverityFileLineSnippetContext
LOWtools/scripts/import_whitequark.rb82 def replace_to_original_source(node)CODE
LOWtest/testdata/local_vars/z_super_args_strict.rb23 def takes_positional_then_keyword(arg0, arg1:)CODE
LOWtest/testdata/local_vars/z_super_args_strict.rb65 def takes_positional_then_keyword(arg0, arg1:)CODE
LOWtest/testdata/local_vars/z_super_args.rb17 def takes_positional_then_keyword(arg0, arg1:)CODE
LOWtest/testdata/local_vars/z_super_args.rb51 def takes_positional_then_keyword(arg0, arg1:)CODE
LOWtest/testdata/local_vars/z_super_args_splats_blocks.rb129def pos_possplat_pos_kw_kwsplat(x, y, z, *foo, p, q, j:, k:, **bar)CODE
LOWtest/testdata/local_vars/z_super_args_splats_blocks.rb179def pos_possplat_pos_kwsplat_blk(x, y, z, *foo, p, q, **bar, &blk)CODE
LOWtest/testdata/local_vars/z_super_args_splats_blocks.rb194def possplat_pos_kw_kwsplat_blk(*foo, p, q, j:, k:, **bar, &blk)CODE
LOWtest/testdata/local_vars/z_super_args_splats_blocks.rb199def pos_possplat_kw_kwsplat_blk(x, y, z, *foo, j:, k:, **bar, &blk)CODE
LOWtest/testdata/local_vars/z_super_args_splats_blocks.rb204def pos_possplat_pos_kw_kwsplat_blk(x, y, z, *foo, p, q, j:, k:, **bar, &blk)CODE
LOWtest/testdata/lsp/hover_method_includes_defs.rb62 def positional_args_with_defaults(fname='Jane', lname='Doe')CODE
LOWtest/testdata/lsp/hover_method_includes_defs.rb63 # ^ hover: def positional_args_with_defaults(fname=…, lname=…); endCOMMENT
LOWtest/testdata/lsp/hover_method_includes_defs.rb73 def keyword_args_with_defaults(fname: "Jane", lname: "Doe")CODE
LOWtest/testdata/lsp/hover_method_includes_defs.rb74 # ^ hover: def keyword_args_with_defaults(fname: …, lname: …); endCOMMENT
LOWtest/testdata/lsp/hover_method_includes_defs.rb113 # ^ hover: def keyword_args_with_defaults(fname: …, lname: …); endCOMMENT
LOWtest/testdata/lsp/hover_method_includes_defs.rb143 # ^ hover: def keyword_args_with_defaults(fname: …, lname: …); endCOMMENT
LOW…ta/lsp/code_actions/extract_variable_single/invalid.rb21def extract_method_parameters(x, y); endCODE
LOWtest/testdata/lsp/completion/bad_arguments.rb5def various_bad_commas_in_send(a, b, x, y)CODE
LOWtest/testdata/lsp/completion/missing_const_name.rb44def test_constant_completion_before_variable(x)CODE
LOWtest/testdata/lsp/completion/missing_const_name.rb53def test_constant_completion_empty_scope(x)CODE
LOWtest/testdata/lsp/completion/bad_list_elems.rb3def various_bad_commas_in_array(a, b, x, y)CODE
LOWtest/testdata/lsp/completion/missing_assign_rhs.rb12 def test_variable_after_method(x)CODE
LOWtest/testdata/lsp/completion/missing_assign_rhs.rb18 def test_variable_end_same_line(x)CODE
LOWtest/testdata/lsp/completion/missing_assign_rhs.rb23 def test_variable_end_same_line_after(x)CODE
LOWtest/testdata/lsp/completion/missing_fun.rb15def test_completion_after_method(x)CODE
LOWtest/testdata/lsp/completion/missing_fun.rb23def test_completion_between_keywords(x)CODE
LOWtest/testdata/lsp/completion/missing_fun.rb32def test_completion_before_method(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb27def got_all_cases_but_untyped(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb50def missing_case_with_generic(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb60def ok_when_generic_cases_overlap(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb96def cant_alias_local_variables(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb133def enforce_something_is_always_non_nil(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb142def error_when_predicate_always_true(x)CODE
LOWtest/testdata/rbs/assertions_absurd.rb242def absurd_reached_on_local_var(some_local_var)CODE
LOWtest/testdata/parser/error_recovery/missing_fun.rb3def test_method_without_fun_name(x)CODE
LOWtest/testdata/parser/error_recovery/missing_fun.rb7def test_method_without_fun_name_plus_before(x)CODE
LOWtest/testdata/parser/error_recovery/missing_fun.rb12def test_method_without_fun_name_plus_after(x)CODE
LOWtest/testdata/parser/error_recovery/missing_fun.rb17def test_method_without_fun_name_before_and_after(x)CODE
LOWtest/testdata/cfg/rescue_complex.rb43 def multiple_rescue_classes_varuse()CODE
LOWtest/testdata/cfg/rescue_complex.rb93 def parse_bug_rescue_empty_else()CODE
LOWtest/testdata/cfg/rescue_complex.rb125 def parse_rescue_mod_op_assign()CODE
LOWtest/testdata/desugar/block_given.rb22def method_with_anonymous_block_param(&)CODE
LOWtest/testdata/desugar/block_given.rb39def method_with_implicit_block_param()CODE
LOWtest/testdata/infer/singleton_if_exhaustiveness.rb24def commutative_all_cases_handled(x)CODE
LOWtest/testdata/infer/singleton_if_exhaustiveness.rb35def commutative_missing_false(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb28def got_all_cases_but_untyped(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb51def missing_case_with_generic(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb61def ok_when_generic_cases_overlap(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb97def cant_alias_local_variables(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb134def enforce_something_is_always_non_nil(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb143def error_when_predicate_always_true(x)CODE
LOWtest/testdata/infer/exhaustiveness.rb240def absurd_reached_on_local_var(some_local_var)CODE
LOWtest/testdata/infer/exhaustiveness.rb257def too_many_args_with_keyword_arg(x)CODE
LOWtest/testdata/infer/singleton_non_final_enum.rb20def if_over_non_final_singletons(x)CODE
LOWtest/testdata/infer/singleton_non_final_enum.rb35def case_over_non_final_singletons(x)CODE
LOWtest/testdata/infer/no_short_circuit_type_constraint.rb100def refute_nil_opposite_order(x)CODE
LOWtest/testdata/infer/sealed_list_fixed_noreturn.rb41def list_integer_to_list_string(xs)CODE
LOWtest/testdata/infer/case_all.rb29def check_overlapping_all_part(x)CODE
LOWtest/testdata/infer/case_all.rb37def check_non_overlapping_all_part(x)CODE
LOWtest/testdata/infer/arg_matching.rb199 def call_requires_multiple_kwarg(x)CODE
84 more matches not shown…
Self-Referential Comments62 hits · 146 pts
SeverityFileLineSnippetContext
MEDIUM…t/testdata/rewriter/rspec_it_behaves_like_isolation.rb21 # Define a shared example with a let variableCOMMENT
MEDIUM…t/testdata/rewriter/rspec_it_behaves_like_isolation.rb36 # Define a let variable in the outer context with a different typeCOMMENT
MEDIUM…invalid_package_control_flow/package_spec_additions.rb7 # Define the things referenced in __package.rbCOMMENT
MEDIUMtest/testdata/packager/typed_ignore/ignored.rb3# This file is parsed with an EmptyTree and shouldn't be wrapped in a package namespace by Packager.COMMENT
MEDIUMtest/testdata/compiler/keyword_args_singleton_pin__2.rb5# This file is compiled, which means we will create a keywordArgsSingleton forCOMMENT
MEDIUMtest/testdata/resolver/resolution_order.rb3# This file is not valid Ruby since we reference A beforeCOMMENT
MEDIUMtest/testdata/resolver/stubs_typed_untyped__1.rb2# This file is deliberately not typed. We are demonstrating a bugCOMMENT
MEDIUMtest/cli/package-mixed-cache/test.sh14# Create the cache in monolithic modeCOMMENT
MEDIUMtest/cli/package-mixed-cache/test.sh34# Create the cache in package-directed modeCOMMENT
MEDIUMgems/sorbet/lib/t.rb4# This file contains runtime stubs to make `T::Sig::WithoutRuntime.sig` work inCOMMENT
MEDIUMgems/sorbet/lib/serialize.rb27 buffer << "# This file is autogenerated. Do not edit it by hand. Regenerate it with:"CODE
MEDIUMgems/sorbet-runtime/lib/sorbet-runtime.rb4# This file is hand-crafted to encode the dependencies. They load the whole typeCOMMENT
MEDIUMgems/sorbet-runtime/lib/types/props/_props.rb41 # Define a new property. See {file:README.md} for some concreteCOMMENT
MEDIUMgems/sorbet-runtime/lib/types/props/_props.rb44 # Defining a property defines a method with the same name as theCOMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb43 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb80 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb129 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb190 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb263 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb377 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb399 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb433 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb479 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb537 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb636 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb659 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb694 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb741 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb800 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb903 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb940 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb989 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1050 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1123 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1237 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1259 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1293 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1339 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1397 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1496 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1519 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1554 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1601 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1660 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1737 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1811 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1848 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1896 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb1955 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2025 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2167 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2204 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2252 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2300 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2359 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2418 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2477 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2547 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2617 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
MEDIUM…ntime/lib/types/private/methods/call_validation_2_7.rb2687 # This method is a manually sped-up version of more general code in `validate_call`COMMENT
2 more matches not shown…
Decorative Section Separators43 hits · 126 pts
SeverityFileLineSnippetContext
MEDIUMtest/testdata/rewriter/minitest_let.rb26# ---------------------------------------------------------------------COMMENT
MEDIUMtest/testdata/infer/no_short_circuit_type_constraint.rb119# -----------------------------------------------------------------------------COMMENT
MEDIUMtest/testdata/infer/bug_generics_pr3642.rb58# ---------------COMMENT
MEDIUMtest/cli/rspec/rspec6.rb230# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb232# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb242# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb244# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb32# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb34# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb72# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb74# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb88# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb90# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb104# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb106# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb136# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb139# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb180# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb182# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb194# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb196# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb210# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb212# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb258# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb260# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb274# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb276# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb290# =============================================================================COMMENT
MEDIUMtest/cli/rspec/rspec6.rb292# =============================================================================COMMENT
MEDIUMtest/prism_regression/call_forwarding_permutations.rb32# ==============================================================================COMMENT
MEDIUMtest/prism_regression/call_forwarding_permutations.rb34# ==============================================================================COMMENT
MEDIUMtest/prism_regression/call_forwarding_permutations.rb80# ==============================================================================COMMENT
MEDIUMtest/prism_regression/call_forwarding_permutations.rb82# ==============================================================================COMMENT
MEDIUMwebsite/docs/error-reference.md3517# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/error-reference.md3526# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/error-reference.md3540# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/error-reference.md3576# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/error-reference.md3582# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/error-reference.md3600# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/error-reference.md3607# ---------------------------------------------COMMENT
MEDIUMwebsite/docs/runtime.md145 # ┌───────────────┐COMMENT
MEDIUMwebsite/docs/runtime.md180# ┌─────────────────┐COMMENT
MEDIUMgems/sorbet-runtime/lib/types/syntax.rb41 # ===========================================================================COMMENT
AI Slop Vocabulary12 hits · 30 pts
SeverityFileLineSnippetContext
MEDIUMtest/testdata/rbi/lazy_enumerator.rb17## Generics are not sufficiently robust to type this function yetCOMMENT
MEDIUMtest/cli/incremental-resolver/test.sh3# Temporary test harness for tests specific to incremental resolver.COMMENT
MEDIUM.buildkite/build-static-release.sh76# This part tests the actual compiled gem (outside of snapshot harness).COMMENT
MEDIUM.buildkite/build-static-release.sh77# We can't test this inside of the test harness, because we'd want to run itCOMMENT
MEDIUMmain/lsp/LocalVarFinder.h15 // flattened at this point. (LSP code should try to make minimal assumptions to be robust to changes.)COMMENT
LOWgems/sorbet/lib/gem-generator-tracepoint/tracer.rb120 # In this case, it's okay to simply add something to the stack; it will be popped off whenCOMMENT
MEDIUMgems/sorbet-runtime/test/types/method_validation.rb170 # the others come from test harness in this test.COMMENT
LOWgems/sorbet-runtime/lib/types/types/typed_enumerable.rb56 # iterate over a [key, value] array, so we can't just use the type.recursively_valid?(v)COMMENT
LOWgems/sorbet-runtime/lib/types/types/typed_enumerable.rb170 # This is a specialized enumerable type, just return the class.COMMENT
MEDIUM…time/lib/types/props/has_lazily_specialized_methods.rb116 # (more robust than undef_method that would create a small window in which the method doesn't exist)COMMENT
LOW…bet-runtime/lib/types/props/private/serde_transform.rb131 # e.g. if this is `T.all(SomethingWeird, WhoKnows)`, just use theCOMMENT
MEDIUM…s/sorbet-runtime/lib/types/private/abstract/declare.rb45 # (more robust than undef_method that would create a small window in which the method doesn't exist)COMMENT
AI Response Leakage3 hits · 22 pts
SeverityFileLineSnippetContext
HIGH…t/cli/no-valid-instantiation/no-valid-instantiation.rb11# In this example, the constraint fails to solve in the dispatchCall whileCOMMENT
HIGH…t/cli/no-valid-instantiation/no-valid-instantiation.rb44# In this example, the constraint only solves once we reach theCOMMENT
HIGHwebsite/docs/intersection-types.md136 # In this example, A has no subclasses. If we explicitlyCOMMENT
Structural Annotation Overuse7 hits · 10 pts
SeverityFileLineSnippetContext
LOWwebsite/docs/adopting.md7## Step 1: Install dependenciesCOMMENT
LOWwebsite/docs/adopting.md57## Step 2: Initialize Sorbet in our projectCOMMENT
LOWwebsite/docs/adopting.md88## Step 3: Run `srb tc` for the first timeCOMMENT
LOWwebsite/docs/adopting.md101## Step 4: Fix constant resolution errorsCOMMENT
LOWwebsite/docs/adopting.md131## Step 5: Enable type checkingCOMMENT
LOWwebsite/docs/adopting.md147## Step 6: Source ControlCOMMENT
LOWpackager/ComputePackageSCCs.h198 // NOTE: This function must be called every time an import is added or removed from a package.COMMENT
Slop Phrases3 hits · 4 pts
SeverityFileLineSnippetContext
LOWcommon/concurrency/ConcurrentQueue.h42 // rvalue reference so that we don't forget to move the argument.COMMENT
LOW…t-runtime/lib/types/private/methods/call_validation.rb25 # make sure to keep changes in sync.COMMENT
LOW…s/sorbet-runtime/lib/types/private/methods/_methods.rb461 # make sure to keep changes in sync.COMMENT
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOWgems/sorbet-runtime/lib/types/helpers.rb61 # TODO: implement the checks in sorbet-runtime.COMMENT
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…s/sorbet-runtime/lib/types/private/methods/_methods.rb407 # Check if this wrapper's sig_block is still the active one for this keyCOMMENT
Unused Imports1 hit · 1 pts
SeverityFileLineSnippetContext
LOWlldbinit.py25CODE
Deep Nesting1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtools/scripts/lmdb-scratch.py57CODE