Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

[TS] Produce replayable witnesses for unrefined any references selected as strings

Offen
#592 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
25/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
kotlin
Bereich
backend, testing-qa

Rechercherichtung

Start with usvm-ts/src/test/resources/samples/lang/TypeCoercion.ts, method transitiveCoercionNoTypes, and the prepareRefinedStringBackings and TsTestResolver.kt:398 paths mentioned in the issue. Reproduce the missing backing array failure and trace how the final model selects a string for an unrefined any reference. Define a sound witness or explicit unsupported result that preserves path constraints and all listed alternatives; validate every emitted witness by native replay.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

An unconstrained any reference can be selected as a string by the final solver model without a modeled backing array. Witness extraction then raises TsUnsupportedWitnessException instead of producing a replayable input. This is independent of the computed-member frontend update.

Observed evidence:

  • CI at USVM 2679630a854114b3d82740bc16623fc674092b2e, run 38957306345, TypeCoercion.test transitiveCoercionNoTypes: Symbolic string is missing backing array: 0x-2. The stack is resolveParameters -> resolveFakeObject -> resolveExpr -> resolveTsValue -> resolveString (TsTestResolver.kt:398). CI reached 100% method coverage before extraction failed.
  • The same unchanged test reproduced locally on clean main e56cea5018f5f04408083fe44be9a5212ae2600f, using the previous JacoDB pin 4251d2023d: Symbolic string is missing backing array: 0x-1.
  • An isolated run at the CI commit also passed, so the precise model selection is variable. The failure is not established as a computed-member pin regression.

Reproducer source remains in usvm-ts/src/test/resources/samples/lang/TypeCoercion.ts, method transitiveCoercionNoTypes(a, b, c). It compares a == b, c != 0, c != 1, and c && a == c, returning 1, 2, 4, or 3.

prepareRefinedStringBackings only prepares references proven to be non-nullish strings on the current path. The any references in this example may remain unrefined, while the final model's type stream chooses a string. Do not replace missing backing with an invented empty string or suppress extraction failure: that could invalidate the path witness.

Required result: define and implement a sound way to obtain concrete witnesses for these unrefined alternatives (including their original path constraints), or report their unsupported status explicitly at the analysis/witness boundary. Preserve nullish, object, numeric, Boolean, and string alternatives. Validate every emitted concrete witness by native replay. Keep this separate from the bounded numeric/Boolean TypeCoercion regression fixture; that fixture does not establish general any witness support.

Vorherrschende Sprache
Kotlin
Sterne
33
Forks
27
Ø Merge
3 T. 21 Std.
Gemergte PRs (30 T.)
88

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus UnitTestBot/usvm

Alle Issues in UnitTestBot/usvm

Ähnliche Issues

Weitere Issues zu Kotlin

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.