The monomorphizer fails when compiling a COMPILE-CANDIDATE that meets the following criteria:
The NAME refers to a method.
The method is underapplied.
The ARGS are only statically known dictionaries and nothing else.
The method is not inline for the argument dictionaries.
Such a COMPILE-CANDIDATE could be found, for example, when COALTON-LIBRARY/LIST:MAXIMUM is applied to a (List Big-Float) because COALTON-LIBRARY/LIST:MAXIMUM implicitly underapplies > to Big-Float's instance of Ord, which does not inline the > method.
This PR fixes this case in the monomorphizer, adds a test for it, and adds the monomorphizer tests to the Coalton test suite.
cl-quil/discrete now builds and passes its tests with this (monomorphize) added back.
The monomorphizer fails when compiling a
COMPILE-CANDIDATE
that meets the following criteria:NAME
refers to a method.ARGS
are only statically known dictionaries and nothing else.Such a
COMPILE-CANDIDATE
could be found, for example, whenCOALTON-LIBRARY/LIST:MAXIMUM
is applied to a(List Big-Float)
becauseCOALTON-LIBRARY/LIST:MAXIMUM
implicitly underapplies>
toBig-Float
's instance ofOrd
, which does not inline the>
method.This PR fixes this case in the monomorphizer, adds a test for it, and adds the monomorphizer tests to the Coalton test suite.
cl-quil/discrete
now builds and passes its tests with this(monomorphize)
added back.