AI Slop Code Risk Monitor

facebook/litho

SlopCodeMonitor badge for facebook/litho Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

A declarative framework for building efficient UIs on Android.

1.0 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for facebook/litho, a Kotlin project with 7,801 GitHub stars. SynthScan examined 542,402 lines of code across 3058 source files, recording 177 pattern matches distributed across 8 syntactic categories. The legacy adjusted pattern signal is 1.0 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

1.0
Adjusted Signal
1.0
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
7.8K
Stars
Kotlin
Language
542.4K
Lines of Code
3.1K
Files
177
Pattern Hits
2026-10-31
Scan Date
0.01
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 1.6/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 111 finding(s).

Hallucinated Dependency & Supply Chain Risk 2.3/100 · LOW

Are imports declared and package/API names verified? 30 finding(s).

Agent Over-Engineering Ratio 1.1/100 · LOW

Are wrappers, guards, and repeated structures necessary? 36 finding(s).

PR Review Velocity Impact 4.0/100 · LOW

Which changes need focused human review? 177 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 22HIGH 0MEDIUM 36LOW 119

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 177 distinct pattern matches across 8 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators22 hits · 240 pts
SeverityFileLineSnippetContext
CRITICAL…-plugin/src/main/resources/methodTemplates/methods.xml52 <OnCreateChildren method="@com.facebook.litho.sections.annotations.OnCreateChildren static com.facebook.litho.sectionsCODE
CRITICAL…/specmodels/processor/AbstractComponentsProcessor.java129 com.facebook.litho.specmodels.processor.ProcessorUtils.getPackageName(CODE
CRITICAL…c/main/java/com/facebook/litho/FlexboxLegacyAliases.kt25 * `com.facebook.litho.layout.flexbox.Row(...) { ... }` function, any file that also constructs theCOMMENT
CRITICAL…c/main/java/com/facebook/litho/FlexboxLegacyAliases.kt36 "Migration scaffold. Use com.facebook.litho.layout.flexbox.Row(...) for new construction. " +CODE
CRITICAL…c/main/java/com/facebook/litho/FlexboxLegacyAliases.kt47 "Migration scaffold. Use com.facebook.litho.layout.flexbox.Column(...) for new construction. " +CODE
CRITICAL…in/java/com/facebook/samples/litho/errors/ListRow.java32 return com.facebook.samples.litho.java.errors.ErrorBoundary.create(c)CODE
CRITICAL…in/java/com/facebook/samples/litho/errors/ListRow.java33 .child(com.facebook.samples.litho.java.errors.ListRowComponent.create(c).row(this).build())CODE
CRITICALlitho-it/src/test/resources/processor/TestLayout.java911 if (!com.facebook.rendercore.utils.EquivalenceUtils.equals(CODE
CRITICALlitho-it/src/test/resources/processor/TestMount.java996 if (!com.facebook.rendercore.utils.EquivalenceUtils.equals(CODE
CRITICAL…est/resources/processor/sections/FullGroupSection.java642 if (!com.facebook.rendercore.utils.EquivalenceUtils.equals(CODE
CRITICAL…m/facebook/litho/StateUpdatesWithReconciliationTest.kt277 com.facebook.litho.widget.LayoutSpecLifecycleTester.create(context)CODE
CRITICAL…m/facebook/litho/StateUpdatesWithReconciliationTest.kt319 com.facebook.litho.widget.LayoutSpecLifecycleTester.create(context)CODE
CRITICAL…c/test/com/facebook/litho/NestedLithoTreeParityTest.kt457 return com.facebook.litho.widget.Text.create(cc)CODE
CRITICAL⚡…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1358 com.facebook.litho.stats.LithoStats.resetAllCounters()CODE
CRITICAL⚡…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1362 assertThat(com.facebook.litho.stats.LithoStats.customLayoutFunctionRunCount.get())CODE
CRITICAL⚡…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1365 assertThat(com.facebook.litho.stats.LithoStats.customLayoutChildLayoutCount.get())CODE
CRITICAL…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1393 com.facebook.litho.stats.LithoStats.resetAllCounters()CODE
CRITICAL…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1402 assertThat(com.facebook.litho.stats.LithoStats.customLayoutFunctionRunCount.get())CODE
CRITICAL…rc/test/com/facebook/litho/LithoYogaLayoutCacheTest.kt618 com.facebook.litho.state.DirtyScopeIndex.of(scopesToUpdate),CODE
CRITICAL…ho-it/src/test/com/facebook/litho/LithoTestRuleTest.kt282 child(com.facebook.litho.widget.Text.create(context).text(treeProp.name).build())CODE
CRITICAL…est/com/facebook/litho/utils/StacktraceHelperTest.java41 "at com.facebook.litho.utils.StacktraceHelperTest.testFormatStackTrace(StacktraceHelperTest.java:");CODE
CRITICAL…s/processor/DiffSectionSpecModelFactoryTestHelper.java30 .isEqualTo("@com.facebook.litho.sections.annotations.OnDiff()");CODE
Decorative Section Separators36 hits · 117 pts
SeverityFileLineSnippetContext
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt89 // ─────────────────────────────────────────────── measuring more than onceCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt122 // ─────────────────────────────────────────────── a child's own boxCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt164 // ─────────────────────────────────────────────── place() on PlaceableCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt190 // ─────────────────────────────────────────────── placeRelativeCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt265 // ─────────────────────────────────────────────── padding and borderCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt533 // ─────────────────────────────────────────────── measurement is a commitmentCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt581 // ─────────────────────────────────────────────── container intrinsicsCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt762 // ─────────────────────────────────────────────── how often a layout function runsCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1093 // ─────────────────────────────────────────────── the layout cacheCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1162 // ─────────────────────────────────────────────── dp inside a layout functionCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1164 // ─────────────────────────────────────────────── arityCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1182 // ─────────────────────────────────────────────── a child that is measured but not placedCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1522 // ─────────────────────────────────────────────── paint orderCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1554 // ─────────────────────────────────────────────── helpersCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1668 // ─────────────────────────────────────────────── what every scope readsCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1698 // ─────────────────────────────────────────────── intrinsic defaultsCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1771 // ─────────────────────────────────────────────── placement re-enters layoutCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1926 // ─────────────────────────────────────────────── view flatteningCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt1980 // ─────────────────────────────────────────────── paddingCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt2007 // ─────────────────────────────────────────────── threadsCOMMENT
MEDIUM…-it/src/test/com/facebook/litho/CustomLayoutApiTest.kt2048 // ─────────────────────────────────────────────── errorsCOMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt120 // ┌─────────────┬────────┐COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt122 // ├─────────────┘ │COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt123 // │ ┌────────────┬─────┐ │COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt125 // │ ├────────────┘ │ │COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt127 // │ └──────────────────┘ │COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt128 // └──────────────────────┘COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt129 // ┌────────────┬─────┐COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt131 // ├────────────┘ │COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt133 // └──────────────────┘COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt134 // ┌────────────┬─────┐COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt136 // ├────────────┘ │COMMENT
MEDIUM⚡…t/com/facebook/litho/MountStateIncrementalMountTest.kt138 // └──────────────────┘COMMENT
MEDIUM…t/com/facebook/litho/CustomLayoutBoxConstraintsTest.kt258 // ─────────────────────────────────────────────── against YogaCOMMENT
MEDIUM…c/test/com/facebook/litho/layout/BoxConstraintsTest.kt551 // ───────────────────────── properties every child meets, over generated children and constraintsCOMMENT
MEDIUM…c/test/com/facebook/litho/layout/BoxConstraintsTest.kt620 // ───────────────────────── relationships between two resolutionsCOMMENT
Verbosity Indicators30 hits · 61 pts
SeverityFileLineSnippetContext
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt263 // Step 1: Create layout state V1 without a viewCOMMENT
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt267 // Step 2: Bind a viewCOMMENT
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt271 // Step 3: Create newer layout state V2 with view boundCOMMENT
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt281 // Step 4: Try to rebind with old layout state using reflectionCOMMENT
LOW⚡litho-it/src/test/com/facebook/litho/TreeStateTests.kt534 // Step 1: prior render committed hookKey1 = "value1".COMMENT
LOW⚡litho-it/src/test/com/facebook/litho/TreeStateTests.kt544 // Step 2: InitialState was drained after the prior commit (post-commit unregister).COMMENT
LOW⚡litho-it/src/test/com/facebook/litho/TreeStateTests.kt547 // Step 3: a new resolve encounters hookKey2 for the first time. Replicates theCOMMENT
LOWlitho-it/src/test/com/facebook/litho/TreeStateTests.kt567 // Step 4: both entries must be present.COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt996 // Step 1: R1 and L1 committed in render().COMMENT
LOW⚡…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1022 // Step 2: R2 resolves and commits on the layout thread, then L2 is held before it runs.COMMENT
LOW⚡…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1027 // Step 3: R3 and L3 commit on this thread while L2 is held. The update is sync so that R3COMMENT
LOW⚡…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1032 // Step 4: L2 finishes against R2, which is no longer the committed resolve, and is dropped.COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1070 // Step 1: R1 and L1 committed in render().COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1107 // Step 2: R2 resolves and commits on the layout thread, then L2 is held before it runs.COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1155 // Step 1: R1 and L1 committed in render().COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt128 // Step 1: Bind to View ACOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt131 // Step 2: Bind to View B (simulates change animation)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt141 // Step 3: Recycle View A (animation completed)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt148 // Step 4: Now recycle View B (current view) - should work normallyCOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt196 // Step 1: Bind View ACOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt199 // Step 2: Recycle View A (should set currentBoundView = null internally)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt206 // Step 3: Rebind to same View A - should behave like first binding (no cleanup)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt269 // Step 1: Bind to View ACOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt272 // Step 2: Bind to View B (View A cleaned here)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt278 // Step 3: Bind to View C (View B cleaned here)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt290 // Step 4: Recycle View A and B (should be no-ops)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt298 // Step 5: Now recycle View C (current view) - should work normallyCOMMENT
LOW⚡…in/com/meta/rangemanager/SynchronousRangeWorkerTest.kt192 // Step 1: Schedule range 0-4, completes successfullyCOMMENT
LOW⚡…in/com/meta/rangemanager/SynchronousRangeWorkerTest.kt201 // Step 2: Schedule range 8-12, but CANCEL at item 10COMMENT
LOW…in/com/meta/rangemanager/SynchronousRangeWorkerTest.kt224 // Step 3: Schedule range 0-4 againCOMMENT
Structural Annotation Overuse30 hits · 61 pts
SeverityFileLineSnippetContext
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt263 // Step 1: Create layout state V1 without a viewCOMMENT
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt267 // Step 2: Bind a viewCOMMENT
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt271 // Step 3: Create newer layout state V2 with view boundCOMMENT
LOW⚡…ho-it/src/test/com/facebook/litho/LithoRendererTest.kt281 // Step 4: Try to rebind with old layout state using reflectionCOMMENT
LOW⚡litho-it/src/test/com/facebook/litho/TreeStateTests.kt534 // Step 1: prior render committed hookKey1 = "value1".COMMENT
LOW⚡litho-it/src/test/com/facebook/litho/TreeStateTests.kt544 // Step 2: InitialState was drained after the prior commit (post-commit unregister).COMMENT
LOW⚡litho-it/src/test/com/facebook/litho/TreeStateTests.kt547 // Step 3: a new resolve encounters hookKey2 for the first time. Replicates theCOMMENT
LOWlitho-it/src/test/com/facebook/litho/TreeStateTests.kt567 // Step 4: both entries must be present.COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt996 // Step 1: R1 and L1 committed in render().COMMENT
LOW⚡…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1022 // Step 2: R2 resolves and commits on the layout thread, then L2 is held before it runs.COMMENT
LOW⚡…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1027 // Step 3: R3 and L3 commit on this thread while L2 is held. The update is sync so that R3COMMENT
LOW⚡…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1032 // Step 4: L2 finishes against R2, which is no longer the committed resolve, and is dropped.COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1070 // Step 1: R1 and L1 committed in render().COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1107 // Step 2: R2 resolves and commits on the layout thread, then L2 is held before it runs.COMMENT
LOW…tho-it/src/test/com/facebook/litho/SplitFuturesTest.kt1155 // Step 1: R1 and L1 committed in render().COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt128 // Step 1: Bind to View ACOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt131 // Step 2: Bind to View B (simulates change animation)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt141 // Step 3: Recycle View A (animation completed)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt148 // Step 4: Now recycle View B (current view) - should work normallyCOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt196 // Step 1: Bind View ACOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt199 // Step 2: Recycle View A (should set currentBoundView = null internally)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt206 // Step 3: Rebind to same View A - should behave like first binding (no cleanup)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt269 // Step 1: Bind to View ACOMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt272 // Step 2: Bind to View B (View A cleaned here)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt278 // Step 3: Bind to View C (View B cleaned here)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt290 // Step 4: Recycle View A and B (should be no-ops)COMMENT
LOW⚡…get/collection/LithoCollectionItemViewRecyclingTest.kt298 // Step 5: Now recycle View C (current view) - should work normallyCOMMENT
LOW⚡…in/com/meta/rangemanager/SynchronousRangeWorkerTest.kt192 // Step 1: Schedule range 0-4, completes successfullyCOMMENT
LOW⚡…in/com/meta/rangemanager/SynchronousRangeWorkerTest.kt201 // Step 2: Schedule range 8-12, but CANCEL at item 10COMMENT
LOW…in/com/meta/rangemanager/SynchronousRangeWorkerTest.kt224 // Step 3: Schedule range 0-4 againCOMMENT
Over-Commented Block49 hits · 49 pts
SeverityFileLineSnippetContext
LOW…m/facebook/rendercore/text/selection/RCTextEditor.java901 // Ported from AOSP TextUtils.packRangeInLong() — packs two int offsets into a single long.COMMENT
LOWlitho-intellij-plugin/buildPlugin.sh1#!/bin/bashCOMMENT
LOWlitho-intellij-plugin/testPlugin.sh1#!/bin/bashCOMMENT
LOW…itho/intellij/actions/templates/LithoTemplateAction.kt81COMMENT
LOW…-core/src/main/java/com/facebook/litho/LithoReducer.kt1321 // unreachable from user `Transition.create(<key>)` DSL — TransitionManager skips them onCOMMENT
LOW…tho-core/src/main/java/com/facebook/litho/LithoNode.kt1481COMMENT
LOWlitho-core/src/main/java/com/facebook/litho/Edges.kt61 edgesToValuesIndex = edgesToValuesIndex or (newIndex.toLong() shl edgeIntValue * 4)COMMENT
LOW…re/src/main/java/com/facebook/litho/SubtreeSnapshot.kt61 // All five arrays have length [childCount]. [childRangeStart] partitions `mountableOutputs`COMMENT
LOW…re/src/main/java/com/facebook/litho/SubtreeSnapshot.kt81 val externalParentAbsoluteY: Int = 0,COMMENT
LOW…re/src/main/java/com/facebook/litho/NestedLithoTree.kt61 // 1. Resolve: component P created → InitialState caches valueA for keyPCOMMENT
LOW…re/src/main/java/com/facebook/litho/TestLayoutState.kt101 }COMMENT
LOW…/main/java/com/facebook/litho/widget/RecyclerBinder.kt1281COMMENT
LOW…a/com/facebook/litho/widget/StaggeredGridLayoutInfo.kt321COMMENT
LOW…/src/test/com/facebook/litho/SubtreeCacheParityTest.kt221 // transitionKey / etc.) on a wrapper marks that wrapper's scope dirty; `getReconciliationMode`COMMENT
LOW…/src/test/com/facebook/litho/SubtreeCacheParityTest.kt541 // External-parent-change rejection scenarios are covered higher in the file (position-shiftCOMMENT
LOW…/src/test/com/facebook/litho/SubtreeCacheParityTest.kt1721 // render trees (e.g. Lazy collections, HSCROLL). A missing id means MountState skipsCOMMENT
LOW…rc/test/com/facebook/litho/LayoutStateCalculateTest.kt401 // Mountable Output Breakdown:COMMENT
LOWlitho-it/src/test/com/facebook/litho/TreeStateTests.kt501 // Cycle 3: NEW component at position P — cache returns stale valueACOMMENT
LOW…t/com/facebook/litho/MountStateIncrementalMountTest.kt121 // │Visible Rect │ │COMMENT
LOW…tho/widget/collection/CollectionLayoutFunctionsTest.kt441COMMENT
LOW…tho/widget/collection/CollectionLayoutFunctionsTest.kt481 assertThat(result.height).isEqualTo(400)COMMENT
LOW…tho/widget/collection/CollectionLayoutFunctionsTest.kt641 assertThat(result.width).isEqualTo(400)COMMENT
LOW…om/facebook/litho/state/StateReadTrackingUpdateTest.kt41 val lithoTestRule =COMMENT
LOWscripts/local-deploy.sh1#!/usr/bin/env bashCOMMENT
LOWscripts/codemod-state-update-methods.sh1#!/bin/bashCOMMENT
LOWscripts/android-setup.sh1#!/usr/bin/bashCOMMENT
LOW.github/workflows/release.yml1# Copyright (c) Meta Platforms, Inc. and affiliates.COMMENT
LOWlib/yoga/yoga/YGMacros.h1/*COMMENT
LOWlib/yoga/yoga/YGMacros.h21COMMENT
LOWlib/yoga/yoga/YGMacros.h41#if __has_include(<Foundation/Foundation.h>)COMMENT
LOWlib/yoga/yoga/style/Style.h21#include <yoga/enums/Direction.h>COMMENT
LOWlib/yoga/yoga/algorithm/FlexLine.h41 // List of children which are part of the line flow. This means they are notCOMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp1/*COMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp21#include <yoga/algorithm/BoundAxis.h>COMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp821 (child->getLayout().computedFlexBasis.unwrap() +COMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp841// respond with longest-word width; image/collection-like measuresCOMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp1401 // By excluding this item's size and flex factor from remaining, thisCOMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp1421// remaining space amongst the items whose min/max constraints didn't trigger inCOMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp1701 }COMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp1721//COMMENT
LOWlib/yoga/yoga/algorithm/CalculateLayout.cpp1741// - heightSizingMode: indicates the sizing rules for the height (see belowCOMMENT
LOWlib/yoga/yoga/algorithm/PixelGrid.cpp21 const double pointScaleFactor,COMMENT
LOWlib/yoga/yoga/algorithm/PixelGrid.cpp41 // - x = -2.2: floor(-2.2) = -3, ceil(-2.2) = -2COMMENT
LOWlib/yoga/yoga/algorithm/FlexLine.cpp81COMMENT
LOWlib/yoga/yoga/node/LayoutResults.h21COMMENT
LOWlib/yoga/java/jni/YGJNIVanilla.cpp1/*COMMENT
LOW…in/compiler/src/test/resources/test-data/Hooks.good.kt1// @nolintCOMMENT
LOW…mpiler/src/test/resources/test-data/AutoDeps.misuse.kt1// @nolintCOMMENT
LOW…main/kotlin/com/facebook/litho/surface/LithoSurface.kt41// Fragment.bindLithoViewTo(view) // caller-built LithoViewCOMMENT
Fake / Example Data8 hits · 8 pts
SeverityFileLineSnippetContext
LOW…n/java/com/facebook/litho/annotations/PropDefault.java33 * static final String name = "John Doe"; // default value for nameCOMMENT
LOW…st/com/facebook/litho/widget/TextCustomEllipsisTest.kt239 "Text that extends over many lines like lorem ipsum dolor so I'll just keep typing for a " +CODE
LOW…t/com/facebook/litho/widget/TextTruncationCacheTest.kt318 "Text that extends over many lines like lorem ipsum dolor so I'll just keep typing for a " +CODE
LOW…t/com/facebook/litho/widget/TextPrimitiveParityTest.kt253 "Text that extends over many lines like lorem ipsum dolor so I'll just keep typing for a " +CODE
LOW…itho/documentation/props/PropDefaultComponentSpec.java31 @PropDefault static final String name = "John Doe"; // default value for nameCODE
LOW…les/litho/documentation/props/PropDefaultKComponent.kt25class PropDefaultKComponent(private val name: String = "John Doe") : KComponent() {CODE
LOW…ok/samples/litho/kotlin/animations/messages/Message.kt65 Message(false, "qui dolorem ipsum quia dolor sit amet", true, "DEC 25 AT 10:01"),CODE
LOW…ok/samples/litho/kotlin/animations/messages/Message.kt65 Message(false, "qui dolorem ipsum quia dolor sit amet", true, "DEC 25 AT 10:01"),CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…/java/com/facebook/litho/testing/TimeOutSemaphore.java25 * Semaphore wrapper that automatically times out in 5 seconds so that we don't forget to do it andCOMMENT
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…/src/main/kotlin/com/meta/rangemanager/RangeManager.kt131 * ## Why not just call [recalculateRange]?COMMENT