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

Interpolated var access is sometimes -1

Offen
#15 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
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
csharp
Bereich
game-dev

Rechercherichtung

Start in InterpolatedVar.cs, reading WrapRange and the indexer that adds firstElement before wrapping. Trace how an index that passes IsIdxValid can become -1, and identify the caller or input that triggers it. Done means the cause is understood and corrected so valid accesses do not rely on modulo to mask the invalid index.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Bug Help Wanted

In InterpolatedVar.cs, changed by 1348c82ed9ef4d6112115fe5614e8cd01c140a1c:

private int WrapRange(int i) {
	return MathLib.Modulo(i, maxElement); // TODO: Why does -1 get passed here sometimes. We shouldn't have to change this to accomodate.
}

This should actually be

return (i >= maxElement) ? (i - maxElement) : i;

But for some reason, i coming in can sometimes be -1 when coming from here:

	public ref T this[int i] {
		get {
			Assert(IsIdxValid(i));
			i += firstElement;
			i = WrapRange(i);
			return ref elements![i];
		}
	}

There is a check for this (IsIdxValid), but it's just an assert. This must be some bug in my implementation I would imagine, but further research is needed. For now, the modulo works with an occasional hiccup.

Vorherrschende Sprache
C#
Sterne
104
Forks
9
Ø Merge
6 Std. 45 Min.
Gemergte PRs (30 T.)
118

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 SourceDotNET/Source.NET

Alle Issues in SourceDotNET/Source.NET

Ähnliche Issues

Weitere Issues zu C#

Neue Issues direkt in Ihr Postfach

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