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) ...