The actual bug was already fixed by enabling multi-valued
sequence syntax in TR `for` loop forms.
Closes PR 13937
original commit: 8d4b3ee396a645a828594b7b9afdcaf7e5676ccd
Modify the forms as needed to accept non-annotated
bindings to match the untyped versions. Also fixes
bugs in syntax classes found along the way.
original commit: 37b09521ac3493ed45963aedacf7a263194aec1a
Two caveats:
* in some positions : is not accepted as a formal
when used in combination with * as a formal
* the quality of parse error messages for rest
argument types is traded for better optional argument
error messages
original commit: a3d818c748b09dd07043460ad412a19d0f94b47c
The new `lambda` form allows all combinations of arguments
with optional type annotations for all cases.
original commit: 8ea32c68f61a0bfad6b162302bc3c0ff28870361
In some cases, TR tried to typecheck the contents of a quote-syntax
form that contains unexpanded syntax.
Closes PR 14355
original commit: 26204cf505f885827854908391d2842476728c8b
Does not cover all of the bindings yet, but it
should just be a SMOP after the last extra-env-lang
feature additions.
original commit: 0c0befac075a137158c568f93397c9bea4a109b2
Instead of parsing the module's body like env-lang,
export a `type-environment` form instead. That way
the module may contain any auxiliary definitions
or expressions that are needed.
Additionally allow #:opaque and #:struct clauses
for opaque and struct types in the base type environment.
Update typed/syntax/stx for the new API.
original commit: db51fdb8fdc943971122fea32a7b593b187bd685
This provides better inference for the case when trying
to infer a ListDots in a negative position against a List
type. For example, when trying to apply `time-apply`.
original commit: 18adcb5b041be12994eb65d86bde5dc1f164cca7
A function like (lambda (x) (lambda (y) y)) would cause TR
to fail in an internal metafunction. The fault was triggered
when the object y is abstracted to (0 0) and then the outer
lambda tries to abstract (0 0) and fails.
The problem was triggered by the new path index changes in
v6.0 because TR did not previously try to abstract objects
that occurs in the target type (now necessary for scope
lifting of path indices), which may contain non-identifier
objects.
This error didn't occur in another nearly identical (except
for one crucial identifier? check) code path, so this commit
also eliminates the duplication by abstracting.
original commit: bf47523ac92f2d3b32e6c97aa83d9d256b449a6f
Also fix a regression that made arrow type
parsing more permissive than desired due to
missing colon^s
original commit: 7dc5143f145c5bbb95f97d9ae7cee751b0f466ef
This allows the typechecker to tell the optimizer or
other downstream analyses what expressions to ignore
because they contain non-typechecked code.
Use it to fix handling of `send`
original commit: 2b9b16b165cecd1285e80545efee84bf340ac36d
Move the provides to the top following the style guide and
add a purpose statement for the module
original commit: c72228dee8602df89373eb5eb4f3547825ebbb64