A fast, powerful type checker designed for Ruby
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).
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.
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.
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.
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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lldbinit.py | 1 | # TODO(jez) Figure out what to do about this warning: | COMMENT |
| LOW | tools/scripts/lmdb-scratch.py | 101 | wasted_overflow_bytes = 0 | COMMENT |
| LOW | tools/scripts/import_whitequark.rb | 1 | # This script imports test cases from whitequark/parser repo | COMMENT |
| LOW | tools/scripts/import_whitequark.sh | 1 | #!/bin/sh | COMMENT |
| LOW | tools/scripts/build_compilation_db.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tools/scripts/update_testdata_exp.sh | 201 | candidate="$basename.$pass.exp" | COMMENT |
| LOW | core/GlobalState.h | 1 | #ifndef SORBET_GLOBAL_STATE_H | COMMENT |
| LOW | core/GlobalState.h | 661 | // If these options change, it's no longer safe to read things out of the cache. | COMMENT |
| LOW | core/TypeErrorDiagnostics.h | 1 | #ifndef SORBET_TYPE_ERROR_DIAGNOSTICS_H | COMMENT |
| LOW | core/FileHash.h | 241 | // structure (one per file in the project), so for these extra properties that we don't need to | COMMENT |
| LOW | core/FileHash.h | 261 | // Since something could naturally hash to `HASH_STATE_NOT_COMPUTED`, we force these hash | COMMENT |
| LOW | core/FileHash.h | 281 | uint32_t fieldHash = HASH_STATE_NOT_COMPUTED; | COMMENT |
| LOW | core/FileHash.h | 341 | }); | COMMENT |
| LOW | core/core.h | 1 | #ifndef SORBET_CORE_H | COMMENT |
| LOW | core/Symbols.h | 1 | #ifndef SORBET_SYMBOLS_H | COMMENT |
| LOW | core/Symbols.h | 621 | COMMENT | |
| LOW | core/Symbols.h | 641 | // The package that this symbol belongs to. | COMMENT |
| LOW | core/Types.h | 1 | #ifndef SORBET_TYPES_H | COMMENT |
| LOW | core/Types.h | 461 | COMMENT | |
| LOW | core/Types.h | 481 | // takes two `TypePtr` which have had their LambdaParam's or TypeVar's instantiated. | COMMENT |
| LOW | core/Types.h | 501 | // res = id1(v) | COMMENT |
| LOW | core/Types.h | 1121 | COMMENT | |
| LOW | core/Loc.h | 101 | std::optional<std::string_view> source(const GlobalState &gs) const; | COMMENT |
| LOW | core/Loc.h | 121 | // | COMMENT |
| LOW | core/FoundDefinitions.h | 41 | // When kind != Symbol, `id` stores indices into the assorted vectors on `FoundDefinitions`. | COMMENT |
| LOW | core/ArityHash.h | 1 | #ifndef SORBET_ARITY_HASH_H | COMMENT |
| LOW | core/TrailingObjects.h | 1 | #ifndef SORBET_TRAILING_OBJECTS_H | COMMENT |
| LOW | core/TrailingObjects.h | 21 | // much space to allocate and how to access the trailing objects; it does not | COMMENT |
| LOW | core/TrailingObjects.h | 41 | // of that complexity behind a static factory function of some kind, and | COMMENT |
| LOW | core/TrailingObjects.h | 61 | /// numTrailingObjects implementations for each trailing type except | COMMENT |
| LOW | core/TypePtr.h | 1 | #ifndef SORBET_TYPEPTR_H | COMMENT |
| LOW | core/TypePtr.h | 261 | bool hasUntyped() const; | COMMENT |
| LOW | core/serialize/serialize.h | 41 | // intended to be used for loading the payload out of buffers that are compiled in to the binary. | COMMENT |
| LOW | core/lsp/Query.h | 21 | COMMENT | |
| LOW | core/lsp/TypecheckEpochManager.h | 41 | static void assertConsistentThread(std::optional<std::thread::id> &expectedThreadId, std::string_view method, | COMMENT |
| LOW | core/lsp/PreemptionTaskManager.h | 1 | #ifndef SORBET_LSP_PREEMPTIONTASKMANAGER_H | COMMENT |
| LOW | core/lsp/PreemptionTaskManager.h | 21 | // Thread ID of the typechecking thread. Lazily set. | COMMENT |
| LOW | core/lsp/PreemptionTaskManager.h | 41 | std::atomic<packages::Stratum> runnableAt; | COMMENT |
| LOW | core/lsp/PreemptionTask.h | 1 | #ifndef SORBET_LSP_PREEMPTION_TASK_H | COMMENT |
| LOW | core/packages/PackageInfo.h | 181 | // ID of the strongly-connected component that this package's tests are in, according to its graph of import | COMMENT |
| LOW | core/packages/MangledName.h | 1 | #ifndef SORBET_CORE_PACKAGES_MANGLEDNAME_H | COMMENT |
| LOW | namer/namer.h | 21 | // | COMMENT |
| LOW | test/testdata/rewriter/coerce_in_prop.rb | 1 | # typed: true | COMMENT |
| LOW | test/testdata/rewriter/coerce_in_prop.rb | 21 | # ^^^^^^ error: Method `coerce` does not exist on `T.class_of(T)` | COMMENT |
| LOW | test/testdata/namer/payload_name.rb | 1 | # typed: true | COMMENT |
| LOW | test/testdata/namer/implicit_module_loc.rb | 1 | # typed: true | COMMENT |
| LOW | test/testdata/namer/type_member_eager_to_lazy.rb | 21 | B2 = type_member fixed: Integer | COMMENT |
| LOW | test/testdata/namer/super.rb | 1 | # typed: true | COMMENT |
| LOW | test/testdata/lsp/hover_method.rb | 101 | # ^ hover: Integer | COMMENT |
| LOW | test/testdata/lsp/hover_constraint.rb | 1 | # typed: strict | COMMENT |
| LOW | test/testdata/lsp/hover_constraint.rb | 21 | #^ hover-line: 16 ) | COMMENT |
| LOW | test/testdata/lsp/workspace_symbols_stdlib.rb | 1 | # typed: true | COMMENT |
| LOW | test/testdata/lsp/hover_constant_kind.rb | 81 | extend T::Generic | COMMENT |
| LOW | test/testdata/lsp/hover_constant_kind.rb | 121 | # ^ hover: Integer | COMMENT |
| LOW | test/testdata/lsp/genericMethods.rb | 41 | # ^ hover: sig { type_parameters(:A).params(a: T.type_parameter(:A)).returns(T.type_parameter(:A)) } | COMMENT |
| LOW | test/testdata/lsp/hover.rb | 141 | COMMENT | |
| LOW | test/testdata/lsp/hover.rb | 161 | # ^ hover-line: 2 # Kernel#raise (overload.2): | COMMENT |
| LOW | …estdata/lsp/definitions_and_usages_untyped__untyped.rb | 21 | Untyped::Bar.new.bat | COMMENT |
| LOW | test/testdata/lsp/hover_method_includes_defs.rb | 121 | # ^ hover: def block_args(&blk); end | COMMENT |
| LOW | test/testdata/lsp/hover_method_includes_defs.rb | 141 | # ^ hover: def keyword_args_no_defaults(fname:, lname:); end | COMMENT |
| 261 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/scripts/import_whitequark.rb | 82 | def replace_to_original_source(node) | CODE |
| LOW | test/testdata/local_vars/z_super_args_strict.rb | 23 | def takes_positional_then_keyword(arg0, arg1:) | CODE |
| LOW | test/testdata/local_vars/z_super_args_strict.rb | 65 | def takes_positional_then_keyword(arg0, arg1:) | CODE |
| LOW | test/testdata/local_vars/z_super_args.rb | 17 | def takes_positional_then_keyword(arg0, arg1:) | CODE |
| LOW | test/testdata/local_vars/z_super_args.rb | 51 | def takes_positional_then_keyword(arg0, arg1:) | CODE |
| LOW | test/testdata/local_vars/z_super_args_splats_blocks.rb | 129 | def pos_possplat_pos_kw_kwsplat(x, y, z, *foo, p, q, j:, k:, **bar) | CODE |
| LOW | test/testdata/local_vars/z_super_args_splats_blocks.rb | 179 | def pos_possplat_pos_kwsplat_blk(x, y, z, *foo, p, q, **bar, &blk) | CODE |
| LOW⚡ | test/testdata/local_vars/z_super_args_splats_blocks.rb | 194 | def possplat_pos_kw_kwsplat_blk(*foo, p, q, j:, k:, **bar, &blk) | CODE |
| LOW⚡ | test/testdata/local_vars/z_super_args_splats_blocks.rb | 199 | def pos_possplat_kw_kwsplat_blk(x, y, z, *foo, j:, k:, **bar, &blk) | CODE |
| LOW⚡ | test/testdata/local_vars/z_super_args_splats_blocks.rb | 204 | def pos_possplat_pos_kw_kwsplat_blk(x, y, z, *foo, p, q, j:, k:, **bar, &blk) | CODE |
| LOW⚡ | test/testdata/lsp/hover_method_includes_defs.rb | 62 | def positional_args_with_defaults(fname='Jane', lname='Doe') | CODE |
| LOW⚡ | test/testdata/lsp/hover_method_includes_defs.rb | 63 | # ^ hover: def positional_args_with_defaults(fname=…, lname=…); end | COMMENT |
| LOW⚡ | test/testdata/lsp/hover_method_includes_defs.rb | 73 | def keyword_args_with_defaults(fname: "Jane", lname: "Doe") | CODE |
| LOW⚡ | test/testdata/lsp/hover_method_includes_defs.rb | 74 | # ^ hover: def keyword_args_with_defaults(fname: …, lname: …); end | COMMENT |
| LOW | test/testdata/lsp/hover_method_includes_defs.rb | 113 | # ^ hover: def keyword_args_with_defaults(fname: …, lname: …); end | COMMENT |
| LOW | test/testdata/lsp/hover_method_includes_defs.rb | 143 | # ^ hover: def keyword_args_with_defaults(fname: …, lname: …); end | COMMENT |
| LOW | …ta/lsp/code_actions/extract_variable_single/invalid.rb | 21 | def extract_method_parameters(x, y); end | CODE |
| LOW | test/testdata/lsp/completion/bad_arguments.rb | 5 | def various_bad_commas_in_send(a, b, x, y) | CODE |
| LOW | test/testdata/lsp/completion/missing_const_name.rb | 44 | def test_constant_completion_before_variable(x) | CODE |
| LOW | test/testdata/lsp/completion/missing_const_name.rb | 53 | def test_constant_completion_empty_scope(x) | CODE |
| LOW | test/testdata/lsp/completion/bad_list_elems.rb | 3 | def various_bad_commas_in_array(a, b, x, y) | CODE |
| LOW⚡ | test/testdata/lsp/completion/missing_assign_rhs.rb | 12 | def test_variable_after_method(x) | CODE |
| LOW⚡ | test/testdata/lsp/completion/missing_assign_rhs.rb | 18 | def test_variable_end_same_line(x) | CODE |
| LOW⚡ | test/testdata/lsp/completion/missing_assign_rhs.rb | 23 | def test_variable_end_same_line_after(x) | CODE |
| LOW⚡ | test/testdata/lsp/completion/missing_fun.rb | 15 | def test_completion_after_method(x) | CODE |
| LOW⚡ | test/testdata/lsp/completion/missing_fun.rb | 23 | def test_completion_between_keywords(x) | CODE |
| LOW⚡ | test/testdata/lsp/completion/missing_fun.rb | 32 | def test_completion_before_method(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 27 | def got_all_cases_but_untyped(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 50 | def missing_case_with_generic(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 60 | def ok_when_generic_cases_overlap(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 96 | def cant_alias_local_variables(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 133 | def enforce_something_is_always_non_nil(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 142 | def error_when_predicate_always_true(x) | CODE |
| LOW | test/testdata/rbs/assertions_absurd.rb | 242 | def absurd_reached_on_local_var(some_local_var) | CODE |
| LOW⚡ | test/testdata/parser/error_recovery/missing_fun.rb | 3 | def test_method_without_fun_name(x) | CODE |
| LOW⚡ | test/testdata/parser/error_recovery/missing_fun.rb | 7 | def test_method_without_fun_name_plus_before(x) | CODE |
| LOW⚡ | test/testdata/parser/error_recovery/missing_fun.rb | 12 | def test_method_without_fun_name_plus_after(x) | CODE |
| LOW⚡ | test/testdata/parser/error_recovery/missing_fun.rb | 17 | def test_method_without_fun_name_before_and_after(x) | CODE |
| LOW | test/testdata/cfg/rescue_complex.rb | 43 | def multiple_rescue_classes_varuse() | CODE |
| LOW | test/testdata/cfg/rescue_complex.rb | 93 | def parse_bug_rescue_empty_else() | CODE |
| LOW | test/testdata/cfg/rescue_complex.rb | 125 | def parse_rescue_mod_op_assign() | CODE |
| LOW | test/testdata/desugar/block_given.rb | 22 | def method_with_anonymous_block_param(&) | CODE |
| LOW | test/testdata/desugar/block_given.rb | 39 | def method_with_implicit_block_param() | CODE |
| LOW | test/testdata/infer/singleton_if_exhaustiveness.rb | 24 | def commutative_all_cases_handled(x) | CODE |
| LOW | test/testdata/infer/singleton_if_exhaustiveness.rb | 35 | def commutative_missing_false(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 28 | def got_all_cases_but_untyped(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 51 | def missing_case_with_generic(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 61 | def ok_when_generic_cases_overlap(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 97 | def cant_alias_local_variables(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 134 | def enforce_something_is_always_non_nil(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 143 | def error_when_predicate_always_true(x) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 240 | def absurd_reached_on_local_var(some_local_var) | CODE |
| LOW | test/testdata/infer/exhaustiveness.rb | 257 | def too_many_args_with_keyword_arg(x) | CODE |
| LOW | test/testdata/infer/singleton_non_final_enum.rb | 20 | def if_over_non_final_singletons(x) | CODE |
| LOW | test/testdata/infer/singleton_non_final_enum.rb | 35 | def case_over_non_final_singletons(x) | CODE |
| LOW | test/testdata/infer/no_short_circuit_type_constraint.rb | 100 | def refute_nil_opposite_order(x) | CODE |
| LOW | test/testdata/infer/sealed_list_fixed_noreturn.rb | 41 | def list_integer_to_list_string(xs) | CODE |
| LOW | test/testdata/infer/case_all.rb | 29 | def check_overlapping_all_part(x) | CODE |
| LOW | test/testdata/infer/case_all.rb | 37 | def check_non_overlapping_all_part(x) | CODE |
| LOW | test/testdata/infer/arg_matching.rb | 199 | def call_requires_multiple_kwarg(x) | CODE |
| 84 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …t/testdata/rewriter/rspec_it_behaves_like_isolation.rb | 21 | # Define a shared example with a let variable | COMMENT |
| MEDIUM | …t/testdata/rewriter/rspec_it_behaves_like_isolation.rb | 36 | # Define a let variable in the outer context with a different type | COMMENT |
| MEDIUM | …invalid_package_control_flow/package_spec_additions.rb | 7 | # Define the things referenced in __package.rb | COMMENT |
| MEDIUM | test/testdata/packager/typed_ignore/ignored.rb | 3 | # This file is parsed with an EmptyTree and shouldn't be wrapped in a package namespace by Packager. | COMMENT |
| MEDIUM | test/testdata/compiler/keyword_args_singleton_pin__2.rb | 5 | # This file is compiled, which means we will create a keywordArgsSingleton for | COMMENT |
| MEDIUM | test/testdata/resolver/resolution_order.rb | 3 | # This file is not valid Ruby since we reference A before | COMMENT |
| MEDIUM | test/testdata/resolver/stubs_typed_untyped__1.rb | 2 | # This file is deliberately not typed. We are demonstrating a bug | COMMENT |
| MEDIUM | test/cli/package-mixed-cache/test.sh | 14 | # Create the cache in monolithic mode | COMMENT |
| MEDIUM | test/cli/package-mixed-cache/test.sh | 34 | # Create the cache in package-directed mode | COMMENT |
| MEDIUM | gems/sorbet/lib/t.rb | 4 | # This file contains runtime stubs to make `T::Sig::WithoutRuntime.sig` work in | COMMENT |
| MEDIUM | gems/sorbet/lib/serialize.rb | 27 | buffer << "# This file is autogenerated. Do not edit it by hand. Regenerate it with:" | CODE |
| MEDIUM | gems/sorbet-runtime/lib/sorbet-runtime.rb | 4 | # This file is hand-crafted to encode the dependencies. They load the whole type | COMMENT |
| MEDIUM | gems/sorbet-runtime/lib/types/props/_props.rb | 41 | # Define a new property. See {file:README.md} for some concrete | COMMENT |
| MEDIUM | gems/sorbet-runtime/lib/types/props/_props.rb | 44 | # Defining a property defines a method with the same name as the | COMMENT |
| MEDIUM | …ntime/lib/types/private/methods/call_validation_2_7.rb | 43 | # 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.rb | 80 | # 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.rb | 129 | # 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.rb | 190 | # 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.rb | 263 | # 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.rb | 377 | # 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.rb | 399 | # 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.rb | 433 | # 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.rb | 479 | # 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.rb | 537 | # 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.rb | 636 | # 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.rb | 659 | # 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.rb | 694 | # 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.rb | 741 | # 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.rb | 800 | # 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.rb | 903 | # 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.rb | 940 | # 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.rb | 989 | # 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.rb | 1050 | # 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.rb | 1123 | # 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.rb | 1237 | # 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.rb | 1259 | # 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.rb | 1293 | # 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.rb | 1339 | # 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.rb | 1397 | # 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.rb | 1496 | # 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.rb | 1519 | # 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.rb | 1554 | # 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.rb | 1601 | # 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.rb | 1660 | # 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.rb | 1737 | # 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.rb | 1811 | # 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.rb | 1848 | # 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.rb | 1896 | # 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.rb | 1955 | # 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.rb | 2025 | # 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.rb | 2167 | # 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.rb | 2204 | # 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.rb | 2252 | # 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.rb | 2300 | # 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.rb | 2359 | # 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.rb | 2418 | # 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.rb | 2477 | # 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.rb | 2547 | # 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.rb | 2617 | # 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.rb | 2687 | # This method is a manually sped-up version of more general code in `validate_call` | COMMENT |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/testdata/rewriter/minitest_let.rb | 26 | # --------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/testdata/infer/no_short_circuit_type_constraint.rb | 119 | # ----------------------------------------------------------------------------- | COMMENT |
| MEDIUM | test/testdata/infer/bug_generics_pr3642.rb | 58 | # --------------- | COMMENT |
| MEDIUM⚡ | test/cli/rspec/rspec6.rb | 230 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | test/cli/rspec/rspec6.rb | 232 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | test/cli/rspec/rspec6.rb | 242 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | test/cli/rspec/rspec6.rb | 244 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 32 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 34 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 72 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 74 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 88 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 90 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 104 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 106 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 136 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 139 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 180 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 182 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 194 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 196 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 210 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 212 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 258 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 260 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 274 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 276 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 290 | # ============================================================================= | COMMENT |
| MEDIUM | test/cli/rspec/rspec6.rb | 292 | # ============================================================================= | COMMENT |
| MEDIUM | test/prism_regression/call_forwarding_permutations.rb | 32 | # ============================================================================== | COMMENT |
| MEDIUM | test/prism_regression/call_forwarding_permutations.rb | 34 | # ============================================================================== | COMMENT |
| MEDIUM | test/prism_regression/call_forwarding_permutations.rb | 80 | # ============================================================================== | COMMENT |
| MEDIUM | test/prism_regression/call_forwarding_permutations.rb | 82 | # ============================================================================== | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3517 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3526 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3540 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3576 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3582 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3600 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/error-reference.md | 3607 | # --------------------------------------------- | COMMENT |
| MEDIUM | website/docs/runtime.md | 145 | # ┌───────────────┐ | COMMENT |
| MEDIUM | website/docs/runtime.md | 180 | # ┌─────────────────┐ | COMMENT |
| MEDIUM | gems/sorbet-runtime/lib/types/syntax.rb | 41 | # =========================================================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/testdata/rbi/lazy_enumerator.rb | 17 | ## Generics are not sufficiently robust to type this function yet | COMMENT |
| MEDIUM | test/cli/incremental-resolver/test.sh | 3 | # Temporary test harness for tests specific to incremental resolver. | COMMENT |
| MEDIUM | .buildkite/build-static-release.sh | 76 | # This part tests the actual compiled gem (outside of snapshot harness). | COMMENT |
| MEDIUM | .buildkite/build-static-release.sh | 77 | # We can't test this inside of the test harness, because we'd want to run it | COMMENT |
| MEDIUM | main/lsp/LocalVarFinder.h | 15 | // flattened at this point. (LSP code should try to make minimal assumptions to be robust to changes.) | COMMENT |
| LOW | gems/sorbet/lib/gem-generator-tracepoint/tracer.rb | 120 | # In this case, it's okay to simply add something to the stack; it will be popped off when | COMMENT |
| MEDIUM | gems/sorbet-runtime/test/types/method_validation.rb | 170 | # the others come from test harness in this test. | COMMENT |
| LOW | gems/sorbet-runtime/lib/types/types/typed_enumerable.rb | 56 | # iterate over a [key, value] array, so we can't just use the type.recursively_valid?(v) | COMMENT |
| LOW | gems/sorbet-runtime/lib/types/types/typed_enumerable.rb | 170 | # This is a specialized enumerable type, just return the class. | COMMENT |
| MEDIUM | …time/lib/types/props/has_lazily_specialized_methods.rb | 116 | # (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.rb | 131 | # e.g. if this is `T.all(SomethingWeird, WhoKnows)`, just use the | COMMENT |
| MEDIUM | …s/sorbet-runtime/lib/types/private/abstract/declare.rb | 45 | # (more robust than undef_method that would create a small window in which the method doesn't exist) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …t/cli/no-valid-instantiation/no-valid-instantiation.rb | 11 | # In this example, the constraint fails to solve in the dispatchCall while | COMMENT |
| HIGH | …t/cli/no-valid-instantiation/no-valid-instantiation.rb | 44 | # In this example, the constraint only solves once we reach the | COMMENT |
| HIGH | website/docs/intersection-types.md | 136 | # In this example, A has no subclasses. If we explicitly | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/docs/adopting.md | 7 | ## Step 1: Install dependencies | COMMENT |
| LOW | website/docs/adopting.md | 57 | ## Step 2: Initialize Sorbet in our project | COMMENT |
| LOW | website/docs/adopting.md | 88 | ## Step 3: Run `srb tc` for the first time | COMMENT |
| LOW | website/docs/adopting.md | 101 | ## Step 4: Fix constant resolution errors | COMMENT |
| LOW | website/docs/adopting.md | 131 | ## Step 5: Enable type checking | COMMENT |
| LOW | website/docs/adopting.md | 147 | ## Step 6: Source Control | COMMENT |
| LOW | packager/ComputePackageSCCs.h | 198 | // NOTE: This function must be called every time an import is added or removed from a package. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | common/concurrency/ConcurrentQueue.h | 42 | // rvalue reference so that we don't forget to move the argument. | COMMENT |
| LOW | …t-runtime/lib/types/private/methods/call_validation.rb | 25 | # make sure to keep changes in sync. | COMMENT |
| LOW | …s/sorbet-runtime/lib/types/private/methods/_methods.rb | 461 | # make sure to keep changes in sync. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gems/sorbet-runtime/lib/types/helpers.rb | 61 | # TODO: implement the checks in sorbet-runtime. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s/sorbet-runtime/lib/types/private/methods/_methods.rb | 407 | # Check if this wrapper's sig_block is still the active one for this key | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lldbinit.py | 25 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tools/scripts/lmdb-scratch.py | 57 | CODE |