Acknowledged

StackOverflowError during build for tuple with self-reference

SDK 7.3.1, strict type checking enabled.

Build fails for the following code due to compiler internal error:

import Toybox.Lang;

typedef TupleWithArraySelfReference as [Number, Array<TupleWithArraySelfReference>?];

const ARRAY_INDEX_IN_TUPLE = 1;

function getArrayFromFirstTuple(tuples as Array<TupleWithArraySelfReference>) as Array<TupleWithArraySelfReference>? {
    if (tuples.size() > 0) {
        var firstTuple = tuples[0];

        return firstTuple[ARRAY_INDEX_IN_TUPLE] as Array<TupleWithArraySelfReference>?;
    } else {
        return null;
    }
}

Exception in thread "main" java.lang.StackOverflowError
	at java.base/java.util.TimSort.countRunAndMakeAscending(TimSort.java:355)
	at java.base/java.util.TimSort.sort(TimSort.java:220)
	at java.base/java.util.Arrays.sort(Arrays.java:1234)
	at java.base/java.util.Arrays$ArrayList.sort(Arrays.java:4320)
	at java.base/java.util.Collections.sort(Collections.java:178)
	at com.garmin.monkeybrains.compiler2.ir.types.PolyType.<init>(PolyType.java:130)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getCollectionName(ProjectIrWriter.java:206)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getPolyTypeName(ProjectIrWriter.java:178)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTypeName(ProjectIrWriter.java:105)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTupleTypeName(ProjectIrWriter.java:366)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTypeName(ProjectIrWriter.java:109)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getPolyTypeName(ProjectIrWriter.java:182)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTypeName(ProjectIrWriter.java:105)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getCollectionName(ProjectIrWriter.java:212)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getPolyTypeName(ProjectIrWriter.java:178)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTypeName(ProjectIrWriter.java:105)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTupleTypeName(ProjectIrWriter.java:366)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTypeName(ProjectIrWriter.java:109)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getPolyTypeName(ProjectIrWriter.java:182)
	at com.garmin.monkeybrains.compiler2.project.ProjectIrWriter.getTypeName(ProjectIrWriter.java:105)
	...