add comment about what code is triggering a compiler error

This commit is contained in:
2024-12-17 23:49:40 +00:00
parent 3ce2a974ba
commit 1501f5f556

View File

@@ -74,28 +74,30 @@ struct
helpCheckPlatforms
(yAxis, xAxis, x, y, health, jumpPressed, tl, wallList, game)
| _ =>
let
val {platforms, ...} = game
val {y = platY, ...} = Vector.sub (platforms, platID - 1)
let
(***
*** cause of compiler error is here
*** The specific error is an error with optimising record representations.
***
*** TO make the problem go away (at the cost of incorrectness),
*** one can:
*** 1. Delete the call to Vector.sub below
*** 2. Change the `platY` value below (in `platY - size`)
*** to any constant integer (like 300 or 555).
***)
val newY = platY - size
in
helpCheckPlatforms
(ON_GROUND, xAxis, x, newY, health, jumpPressed, tl, wallList, game)
end)
val {platforms, ...} = game
val {y = platY, ...} = Vector.sub (platforms, platID - 1)
val newY = platY - size
in
helpCheckPlatforms
(ON_GROUND, xAxis, x, newY, health, jumpPressed, tl, wallList, game)
end)
| [] =>
checkWalls (yAxis, xAxis, x, y, health, jumpPressed, wallList, game)
end
(*** MLTON STRANGE TYPES ERROR:
*** Trigger by deleting the longer `checkPlatforms` function
*** and uncommenting the function of the same name that raises Match.
fun checkPlatforms (yAxis, xAxis, x, y, health, jumpPressed, game) =
raise Match
*** *)
fun checkPlatforms (yAxis, xAxis, x, y, health, jumpPressed, game) =
let
val {wallTree, platformTree, ...} = game