├── .github ├── dependabot.yml └── workflows │ ├── ci.yml │ ├── resyntax-analyze.yml │ ├── resyntax-autofixer.yml │ └── resyntax-submit-review.yml ├── .gitignore ├── LICENSE ├── README.md ├── issue_template.md ├── rfcs ├── 0000-template.md ├── README.md └── text │ ├── 0000-ignore-type-info.md │ ├── 0001-prefab-structs.md │ ├── 0002-typechecking-struct-proper-values.md │ ├── 0003-kind-system.md │ └── 0004-shallow-optional-semantics.md ├── source-syntax ├── info.rkt └── source-syntax.rkt ├── typed-racket-compatibility ├── LICENSE ├── info.rkt ├── typed-scheme │ ├── lang │ │ └── reader.rkt │ ├── main.rkt │ ├── no-check.rkt │ └── no-check │ │ └── lang │ │ └── reader.rkt └── typed │ ├── scheme.rkt │ └── scheme │ ├── base.rkt │ ├── base │ ├── lang │ │ └── reader.rkt │ ├── no-check.rkt │ └── no-check │ │ └── lang │ │ └── reader.rkt │ ├── lang │ └── reader.rkt │ ├── no-check.rkt │ ├── no-check │ └── lang │ │ └── reader.rkt │ └── system.rkt ├── typed-racket-doc ├── LICENSE ├── info.rkt ├── source-syntax │ ├── info.rkt │ └── scribblings │ │ └── source-syntax.scrbl └── typed-racket │ ├── info.rkt │ └── scribblings │ ├── guide │ ├── begin.scrbl │ ├── caveats.scrbl │ ├── more.scrbl │ ├── occurrence.scrbl │ ├── optimization.scrbl │ ├── quick.scrbl │ ├── typed-untyped-interaction.scrbl │ ├── types.scrbl │ └── varargs.scrbl │ ├── internals.txt │ ├── reference │ ├── behavior-of-types.scrbl │ ├── compatibility-languages.scrbl │ ├── experimental.scrbl │ ├── exploring-types.scrbl │ ├── legacy.scrbl │ ├── libraries.scrbl │ ├── no-check.scrbl │ ├── numeric-tower-pict.rkt │ ├── optimization.scrbl │ ├── special-forms.scrbl │ ├── typed-classes.scrbl │ ├── typed-regions.scrbl │ ├── typed-units.scrbl │ ├── types.scrbl │ ├── unsafe.scrbl │ └── utilities.scrbl │ ├── ts-guide.scrbl │ ├── ts-reference.scrbl │ └── utils.rkt ├── typed-racket-lib ├── LICENSE ├── info.rkt ├── typed-racket │ ├── HISTORY.txt │ ├── base-env │ │ ├── ann-inst.rkt │ │ ├── annotate-classes.rkt │ │ ├── base-contracted.rkt │ │ ├── base-env-indexing-abs.rkt │ │ ├── base-env-indexing.rkt │ │ ├── base-env-numeric.rkt │ │ ├── base-env-uncontracted.rkt │ │ ├── base-env.rkt │ │ ├── base-special-env.rkt │ │ ├── base-structs.rkt │ │ ├── base-types-extra.rkt │ │ ├── base-types.rkt │ │ ├── class-clauses.rkt │ │ ├── class-prims.rkt │ │ ├── colon.rkt │ │ ├── env-lang.rkt │ │ ├── extra-env-lang.rkt │ │ ├── extra-procs.rkt │ │ ├── for-clauses.rkt │ │ ├── prims-contract.rkt │ │ ├── prims-lambda.rkt │ │ ├── prims-struct.rkt │ │ ├── prims.rkt │ │ ├── signature-prims.rkt │ │ ├── top-interaction.rkt │ │ ├── type-env-lang.rkt │ │ ├── type-name-error.rkt │ │ └── unit-prims.rkt │ ├── core.rkt │ ├── env │ │ ├── env-req.rkt │ │ ├── env-utils.rkt │ │ ├── global-env.rkt │ │ ├── index-env.rkt │ │ ├── init-envs.rkt │ │ ├── lexical-env.rkt │ │ ├── mvar-env.rkt │ │ ├── row-constraint-env.rkt │ │ ├── scoped-tvar-env.rkt │ │ ├── signature-env.rkt │ │ ├── signature-helper.rkt │ │ ├── struct-name-env.rkt │ │ ├── tvar-env.rkt │ │ ├── type-alias-env.rkt │ │ ├── type-alias-helper.rkt │ │ ├── type-constr-env.rkt │ │ ├── type-env-structs.rkt │ │ └── type-name-env.rkt │ ├── infer │ │ ├── constraint-structs.rkt │ │ ├── constraints.rkt │ │ ├── dmap.rkt │ │ ├── fail.rkt │ │ ├── infer-unit.rkt │ │ ├── infer.rkt │ │ ├── intersect.rkt │ │ ├── promote-demote.rkt │ │ └── signatures.rkt │ ├── info.rkt │ ├── language-info.rkt │ ├── logic │ │ ├── ineq.rkt │ │ └── proves.rkt │ ├── minimal.rkt │ ├── minimal │ │ └── lang │ │ │ └── reader.rkt │ ├── optimizer │ │ ├── apply.rkt │ │ ├── box.rkt │ │ ├── dead-code.rkt │ │ ├── extflonum.rkt │ │ ├── fixnum.rkt │ │ ├── float-complex.rkt │ │ ├── float.rkt │ │ ├── hidden-costs.rkt │ │ ├── list.rkt │ │ ├── logging.rkt │ │ ├── number.rkt │ │ ├── numeric-utils.rkt │ │ ├── optimizer.rkt │ │ ├── pair.rkt │ │ ├── sequence.rkt │ │ ├── string.rkt │ │ ├── struct.rkt │ │ ├── unboxed-let.rkt │ │ ├── unboxed-tables.rkt │ │ ├── utils.rkt │ │ └── vector.rkt │ ├── private │ │ ├── cast-table.rkt │ │ ├── class-literals.rkt │ │ ├── parse-classes.rkt │ │ ├── parse-type.rkt │ │ ├── shallow-rewrite.rkt │ │ ├── syntax-properties.rkt │ │ ├── type-annotation.rkt │ │ ├── type-contract.rkt │ │ ├── user-defined-type-constr.rkt │ │ └── with-types.rkt │ ├── rep │ │ ├── base-type-rep.rkt │ │ ├── base-types.rkt │ │ ├── base-union.rkt │ │ ├── core-rep.rkt │ │ ├── filter-rep.rkt │ │ ├── fme-utils.rkt │ │ ├── free-ids.rkt │ │ ├── free-variance.rkt │ │ ├── numeric-base-types.rkt │ │ ├── object-rep.rkt │ │ ├── prop-rep.rkt │ │ ├── rep-switch.rkt │ │ ├── rep-utils.rkt │ │ ├── type-constr.rkt │ │ ├── type-mask.rkt │ │ ├── type-rep.rkt │ │ └── values-rep.rkt │ ├── standard-inits.rkt │ ├── static-contracts │ │ ├── README │ │ ├── combinators.rkt │ │ ├── combinators │ │ │ ├── any.rkt │ │ │ ├── case-lambda.rkt │ │ │ ├── control.rkt │ │ │ ├── dep-function.rkt │ │ │ ├── derived.rkt │ │ │ ├── exist.rkt │ │ │ ├── function.rkt │ │ │ ├── lengths.rkt │ │ │ ├── name.rkt │ │ │ ├── none.rkt │ │ │ ├── object.rkt │ │ │ ├── parametric.rkt │ │ │ ├── prefab.rkt │ │ │ ├── proposition.rkt │ │ │ ├── simple.rkt │ │ │ ├── struct.rkt │ │ │ ├── structural.rkt │ │ │ ├── symbolic-object.rkt │ │ │ └── unit.rkt │ │ ├── constraints.rkt │ │ ├── equations.rkt │ │ ├── instantiate.rkt │ │ ├── kinds.rkt │ │ ├── optimize.rkt │ │ ├── parametric-check.rkt │ │ ├── structures.rkt │ │ └── terminal.rkt │ ├── tc-setup.rkt │ ├── typecheck │ │ ├── check-below.rkt │ │ ├── check-class-unit.rkt │ │ ├── check-subforms-unit.rkt │ │ ├── check-unit-unit.rkt │ │ ├── def-binding.rkt │ │ ├── error-message.rkt │ │ ├── find-annotation.rkt │ │ ├── integer-refinements.rkt │ │ ├── internal-forms.rkt │ │ ├── possible-domains.rkt │ │ ├── provide-handling.rkt │ │ ├── renamer.rkt │ │ ├── signatures.rkt │ │ ├── tc-app-combined.rkt │ │ ├── tc-app-helper.rkt │ │ ├── tc-app │ │ │ ├── signatures.rkt │ │ │ ├── tc-app-apply.rkt │ │ │ ├── tc-app-contracts.rkt │ │ │ ├── tc-app-eq.rkt │ │ │ ├── tc-app-hetero.rkt │ │ │ ├── tc-app-keywords.rkt │ │ │ ├── tc-app-lambda.rkt │ │ │ ├── tc-app-list.rkt │ │ │ ├── tc-app-main.rkt │ │ │ ├── tc-app-objects.rkt │ │ │ ├── tc-app-special.rkt │ │ │ ├── tc-app-values.rkt │ │ │ └── utils.rkt │ │ ├── tc-apply.rkt │ │ ├── tc-envops.rkt │ │ ├── tc-expr-unit.rkt │ │ ├── tc-expression.rkt │ │ ├── tc-funapp.rkt │ │ ├── tc-if.rkt │ │ ├── tc-lambda-unit.rkt │ │ ├── tc-let-unit.rkt │ │ ├── tc-literal.rkt │ │ ├── tc-metafunctions.rkt │ │ ├── tc-send.rkt │ │ ├── tc-structs.rkt │ │ ├── tc-subst.rkt │ │ ├── tc-toplevel.rkt │ │ ├── toplevel-trampoline.rkt │ │ └── typechecker.rkt │ ├── typed-racket.rkt │ ├── typed-reader.rkt │ ├── types │ │ ├── abbrev.rkt │ │ ├── base-abbrev.rkt │ │ ├── classes.rkt │ │ ├── current-seen.rkt │ │ ├── generalize.rkt │ │ ├── kw-types.rkt │ │ ├── match-expanders.rkt │ │ ├── numeric-predicates.rkt │ │ ├── numeric-tower.rkt │ │ ├── overlap.rkt │ │ ├── path-type.rkt │ │ ├── printer.rkt │ │ ├── prop-ops.rkt │ │ ├── resolve.rkt │ │ ├── signatures.rkt │ │ ├── struct-table.rkt │ │ ├── substitute.rkt │ │ ├── subtract.rkt │ │ ├── subtype.rkt │ │ ├── tc-error.rkt │ │ ├── tc-result.rkt │ │ ├── type-table.rkt │ │ ├── union.rkt │ │ ├── update.rkt │ │ └── utils.rkt │ └── utils │ │ ├── any-wrap.rkt │ │ ├── arm.rkt │ │ ├── class-utils.rkt │ │ ├── disappeared-use.rkt │ │ ├── disarm.rkt │ │ ├── early-return.rkt │ │ ├── eq-contract.rkt │ │ ├── evt-contract.rkt │ │ ├── hash-contract.rkt │ │ ├── identifier.rkt │ │ ├── inspector.rkt │ │ ├── lift.rkt │ │ ├── literal-syntax-class.rkt │ │ ├── mutated-vars.rkt │ │ ├── opaque-object.rkt │ │ ├── plambda-utils.rkt │ │ ├── prefab-c.rkt │ │ ├── prefab.rkt │ │ ├── print-struct.rkt │ │ ├── promise-not-name-contract.rkt │ │ ├── redirect-contract.rkt │ │ ├── require-contract.rkt │ │ ├── sealing-contract.rkt │ │ ├── shallow-contract.rkt │ │ ├── shallow-utils.rkt │ │ ├── simple-result-arrow.rkt │ │ ├── struct-info.rkt │ │ ├── struct-type-c.rkt │ │ ├── stxclass-util.rkt │ │ ├── tarjan.rkt │ │ ├── tc-utils.rkt │ │ ├── timing.rkt │ │ ├── typed-method-property.rkt │ │ ├── unit-utils.rkt │ │ ├── utils.rkt │ │ └── vector-contract.rkt └── typed │ ├── file │ ├── md5.rkt │ ├── sha1.rkt │ └── tar.rkt │ ├── private │ ├── no-check-helper.rkt │ ├── rewriter.rkt │ ├── utils.rkt │ └── wrap.rkt │ ├── racket.rkt │ ├── racket │ ├── base.rkt │ ├── base │ │ ├── deep.rkt │ │ ├── deep │ │ │ └── lang │ │ │ │ └── reader.rkt │ │ ├── lang │ │ │ └── reader.rkt │ │ ├── no-check.rkt │ │ ├── no-check │ │ │ └── lang │ │ │ │ └── reader.rkt │ │ ├── optional.rkt │ │ ├── optional │ │ │ └── lang │ │ │ │ └── reader.rkt │ │ ├── shallow.rkt │ │ └── shallow │ │ │ └── lang │ │ │ └── reader.rkt │ ├── class.rkt │ ├── date.rkt │ ├── deep.rkt │ ├── deep │ │ └── lang │ │ │ └── reader.rkt │ ├── lang │ │ └── reader.rkt │ ├── no-check.rkt │ ├── no-check │ │ └── lang │ │ │ └── reader.rkt │ ├── optional.rkt │ ├── optional │ │ └── lang │ │ │ └── reader.rkt │ ├── shallow.rkt │ ├── shallow │ │ └── lang │ │ │ └── reader.rkt │ ├── system.rkt │ ├── unit.rkt │ └── unsafe.rkt │ └── untyped-utils.rkt ├── typed-racket-more ├── LICENSE ├── info.rkt └── typed │ ├── db.rkt │ ├── db │ ├── base.rkt │ └── sqlite3.rkt │ ├── file │ ├── convertible.rkt │ ├── gif.rkt │ └── glob.rkt │ ├── framework.rkt │ ├── framework │ ├── framework.rkt │ └── prefs-contract.rkt │ ├── images │ ├── compile-time.rkt │ ├── icons.rkt │ └── logos.rkt │ ├── json.rkt │ ├── mred │ └── mred.rkt │ ├── mrlib │ ├── bitmap-label.rkt │ ├── gif.rkt │ └── panel-wob.rkt │ ├── mzlib │ └── pconvert-prop.rkt │ ├── net │ ├── base64.rkt │ ├── cgi.rkt │ ├── cookie.rkt │ ├── cookies.rkt │ ├── cookies │ │ ├── common.rkt │ │ └── server.rkt │ ├── dns.rkt │ ├── ftp.rkt │ ├── gifwrite.rkt │ ├── git-checkout.rkt │ ├── head.rkt │ ├── http-client.rkt │ ├── imap.rkt │ ├── mime.rkt │ ├── nntp.rkt │ ├── pop3.rkt │ ├── qp.rkt │ ├── sendmail.rkt │ ├── sendurl.rkt │ ├── smtp.rkt │ ├── uri-codec.rkt │ ├── url-connect.rkt │ ├── url-structs.rkt │ └── url.rkt │ ├── openssl.rkt │ ├── openssl │ ├── md5.rkt │ ├── sha1.rkt │ └── types.rkt │ ├── pict.rkt │ ├── private │ ├── framework-types.rkt │ └── require-batch.rkt │ ├── racket │ ├── async-channel.rkt │ ├── draw.rkt │ ├── extflonum.rkt │ ├── fasl.rkt │ ├── flonum.rkt │ ├── gui.rkt │ ├── gui │ │ ├── base.rkt │ │ ├── no-check.rkt │ │ └── no-check │ │ │ └── lang │ │ │ └── reader.rkt │ ├── os.rkt │ ├── private │ │ └── gui-types.rkt │ ├── random.rkt │ ├── sandbox.rkt │ └── snip.rkt │ ├── setup │ └── getinfo.rkt │ ├── srfi │ ├── 14.rkt │ └── 19.rkt │ ├── syntax │ ├── modread.rkt │ ├── readerr.rkt │ ├── srcloc.rkt │ └── stx.rkt │ ├── web-server │ ├── configuration │ │ └── responders.rkt │ └── http.rkt │ ├── xml.rkt │ └── xml │ ├── path.rkt │ └── plist.rkt ├── typed-racket-test ├── LICENSE ├── external │ ├── counterexamples.rktd │ ├── fail │ │ ├── define-new-subtype.rkt │ │ └── dummy.rkt │ ├── historical-counterexamples.rkt │ ├── math-typecheck-tests.rkt │ ├── random-real.rkt │ ├── succeed │ │ ├── check-within.rkt │ │ ├── define-new-subtype.rkt │ │ ├── for-last.rkt │ │ ├── new-metrics.rkt │ │ ├── optional-math-untyped-id.rkt │ │ ├── optional-plot-pict.rkt │ │ ├── pr11425.rkt │ │ ├── shallow-for-array.rkt │ │ ├── shallow-in-array.rkt │ │ ├── shallow-math-untyped-id.rkt │ │ └── shallow-plot-pict.rkt │ └── tr-random-testing.rkt ├── fail │ ├── all-bad-syntax.rkt │ ├── ann-map-funcs.rkt │ ├── apply-dots.rkt │ ├── arity-mismatch-struct.rkt │ ├── assert-typecheck-fail.rkt │ ├── assoc-with-is-equal-argument.rkt │ ├── async-channel-contract.rkt │ ├── back-and-forth.rkt │ ├── bad-ann-from-macro-in-unit.rkt │ ├── bad-ann.rkt │ ├── bad-any.rkt │ ├── bad-first.rkt │ ├── bad-hash-ref.rkt │ ├── bad-immutable-hash-ref.rkt │ ├── bad-map-poly.rkt │ ├── bad-prop-procedure1.rkt │ ├── bad-prop-procedure2.rkt │ ├── bad-prop-procedure3.rkt │ ├── bad-prop-procedure4.rkt │ ├── bad-prop-procedure5.rkt │ ├── bad-prop-procedure6.rkt │ ├── bad-prop-procedure7.rkt │ ├── bad-prop-procedure8.rkt │ ├── bad-prop-procedure9.rkt │ ├── bad-struct-prop.rkt │ ├── bad-struct-prop1.rkt │ ├── bad-struct-prop2.rkt │ ├── bad-struct-prop3.rkt │ ├── bad-struct-prop4.rkt │ ├── bad-struct-prop5.rkt │ ├── bad-struct-top.rkt │ ├── bad-type-app.rkt │ ├── bad-variance.rkt │ ├── bind-anyvalues.rkt │ ├── box-fail.rkt │ ├── case-lambda1.rkt │ ├── case-lambda2.rkt │ ├── case-lambda3.rkt │ ├── case-lambda4.rkt │ ├── case-union-subtype.rkt │ ├── cast-mod1.rkt │ ├── cast-mod2.rkt │ ├── cast-mod3.rkt │ ├── cast-top-level1.rkt │ ├── cast-top-level2.rkt │ ├── cast-tyvar.rkt │ ├── channel-contract.rkt │ ├── check-expect-fail.rkt │ ├── cl-bug.rkt │ ├── class-contract-1.rkt │ ├── class-define-srcloc.rkt │ ├── cnt-err1.rkt │ ├── cnt-struct-err.rkt │ ├── contract-conversion-error.rkt │ ├── contract-for-self.rkt │ ├── contract-for-self2.rkt │ ├── control-test-1.rkt │ ├── control-test-2.rkt │ ├── control-test-3.rkt │ ├── control-test-4.rkt │ ├── control-test-5.rkt │ ├── control-test-6.rkt │ ├── cross-module-type-constructor.rkt │ ├── dead-substruct.rkt │ ├── def-val-inv-unit-sig-mismatch.rkt │ ├── define-values-bottom.rkt │ ├── define-zero-values.rkt │ ├── div-0-complex.rkt │ ├── div-0-complex2.rkt │ ├── dup-ann.rkt │ ├── duplicate-ann.rkt │ ├── dviu-has-imports.rkt │ ├── dviu-infer-deps-bad.rkt │ ├── dviu-infer-fact-no-link.rkt │ ├── dviu-not-a-unit.rkt │ ├── dviu-not-subtype.rkt │ ├── error-pruning1.rkt │ ├── error-pruning2.rkt │ ├── error-pruning3.rkt │ ├── even-odd-recursive-contract.rkt │ ├── explicit-fail.rkt │ ├── exported-struct-id-not-type.rkt │ ├── extend-untyped-signature.rkt │ ├── extract-sp-apply-not-self.rkt │ ├── flat-contract-name.rkt │ ├── for-multiple-annotations.rkt │ ├── for-result-bad-ann-1.rkt │ ├── for-result-bad-ann-2.rkt │ ├── for-result-bad-ann-3.rkt │ ├── for-result-bad-ann-4.rkt │ ├── for-vector-bad-ann.rkt │ ├── formal-len-mismatches.rkt │ ├── gadt.rkt │ ├── gh-issue-1007.rkt │ ├── gh-issue-1011.rkt │ ├── gh-issue-1014.rkt │ ├── gh-issue-1041.rkt │ ├── gh-issue-1050.rkt │ ├── gh-issue-165.rkt │ ├── gh-issue-271.rkt │ ├── gh-issue-293.rkt │ ├── gh-issue-342.rkt │ ├── gh-issue-601.rkt │ ├── gh-issue-862.rkt │ ├── gh-issue-944.rkt │ ├── gh-issue-965.rkt │ ├── gh112.rkt │ ├── gh56.rkt │ ├── hash-union.rkt │ ├── heterogeneous-immutable-vector-bad-ann.rkt │ ├── heterogeneous-mutable-vector-bad-ann.rkt │ ├── heterogeneous-vector-bad-ann.rkt │ ├── ht-infer.rkt │ ├── immutable-vector-bad-ann.rkt │ ├── immutable-vectorof-bad-ann.rkt │ ├── inexact-complex.rkt │ ├── infer-dots.rkt │ ├── internal-ann.rkt │ ├── internal-vector-error.rkt │ ├── issue-169-1.rkt │ ├── issue-169-2.rkt │ ├── issue-215-2.rkt │ ├── issue-215.rkt │ ├── let-internal-nameleak.rkt │ ├── log-not-complex.rkt │ ├── make-predicate-mod1.rkt │ ├── make-predicate-mod2.rkt │ ├── make-predicate-top-level1.rkt │ ├── make-predicate-top-level2.rkt │ ├── mandatory-kw.rkt │ ├── many-arity-int-comp.rkt │ ├── match-hash-pattern.rkt │ ├── member-with-is-equal-argument.rkt │ ├── missing-rest-arguments.rkt │ ├── multiple-annotations-define.rkt │ ├── mutable-vector-bad-ann.rkt │ ├── mutable-vectorof-bad-ann.rkt │ ├── nested-tvars.rkt │ ├── new-subtype-overlap.rkt │ ├── no-setters-for-built-in-structs.rkt │ ├── non-portable-fixnum-singleton.rkt │ ├── non-productive-rec.rkt │ ├── non-productive-rec2.rkt │ ├── nonnegative-float.rkt │ ├── opaque-object-contract-2.rkt │ ├── opaque-object-contract.rkt │ ├── opaque-overlap.rkt │ ├── optional │ │ ├── cast-top-level2.rkt │ │ ├── filter.rkt │ │ ├── for.rkt │ │ ├── occurrence-type.rkt │ │ ├── opaque-object-contract-2.rkt │ │ ├── opaque-object-contract.rkt │ │ ├── optional-deep-id-2.rkt │ │ ├── optional-shallow-id-0.rkt │ │ ├── optional-shallow-id-1.rkt │ │ ├── parameter-class.rkt │ │ ├── poly-bad-0.rkt │ │ ├── poly-bad-1.rkt │ │ ├── poly-bad-2.rkt │ │ ├── pr10594.rkt │ │ ├── pr11686.rkt │ │ ├── pr13274.rkt │ │ ├── predicate.rkt │ │ ├── sandboxed-unsafe-ops.rkt │ │ ├── sealing-contract-2.rkt │ │ ├── sealing-contract-3.rkt │ │ ├── values.rkt │ │ ├── with-type1.rkt │ │ └── with-type2.rkt │ ├── other-module-mutation.rkt │ ├── plambda-dup-tvar.rkt │ ├── poly-dup-name.rkt │ ├── poly-expect-error.rkt │ ├── poly-struct-mutable-parent.rkt │ ├── poly-struct-parent.rkt │ ├── poly-struct-parent2.rkt │ ├── poly-struct-parent3.rkt │ ├── polydots-dup-name.rkt │ ├── polymorphic-recursion-2.rkt │ ├── polymorphic-recursion-3.rkt │ ├── polymorphic-recursion-4.rkt │ ├── polymorphic-recursion.rkt │ ├── port-to-list.rkt │ ├── pr10350.rkt │ ├── pr10594.rkt │ ├── pr10936.rkt │ ├── pr10937.rkt │ ├── pr11560.rkt │ ├── pr11686.rkt │ ├── pr11772.rkt │ ├── pr11901.rkt │ ├── pr11998.rkt │ ├── pr12706.rkt │ ├── pr12985.rkt │ ├── pr13123.rkt │ ├── pr13209.rkt │ ├── pr13218.rkt │ ├── pr13233-2.rkt │ ├── pr13233-3.rkt │ ├── pr13233-4.rkt │ ├── pr13233.rkt │ ├── pr13274.rkt │ ├── pr13289.rkt │ ├── pr13365-variation-1.rkt │ ├── pr13365-variation-2.rkt │ ├── pr13365-variation-3.rkt │ ├── pr13365.rkt │ ├── pr13446.rkt │ ├── pr13526.rkt │ ├── pr13562.rkt │ ├── pr13577.rkt │ ├── pr13581.rkt │ ├── pr13588.rkt │ ├── pr13662.rkt │ ├── pr13663.rkt │ ├── pr13664.rkt │ ├── pr13665.rkt │ ├── pr13746.rkt │ ├── pr13815.rkt │ ├── pr13893.rkt │ ├── pr13962.rkt │ ├── pr14121.rkt │ ├── pr14144.rkt │ ├── pr14173.rkt │ ├── pr14246-2.rkt │ ├── pr14246.rkt │ ├── pr14389.rkt │ ├── pr14508.rkt │ ├── pr14544.rkt │ ├── pr14568.rkt │ ├── pr14615.rkt │ ├── pr14973.rkt │ ├── predicate-box.rkt │ ├── procedure-top.rkt │ ├── promise-any.rkt │ ├── promise-delay-name.rkt │ ├── recursive-type-application.rkt │ ├── reexported-require-typed-struct-has-contracts.rkt │ ├── regexp-match-pos-star.rkt │ ├── require-typed-missing.rkt │ ├── require-typed-struct-extra-field.rkt │ ├── require-typed-struct-missing-colon.rkt │ ├── require-typed-struct-missing-field-0.rkt │ ├── require-typed-struct-missing-field-1.rkt │ ├── require-typed-struct-renamed-field.rkt │ ├── require-typed-wrong.rkt │ ├── require-untyped-signature.rkt │ ├── reverse-special.rkt │ ├── rts-prov.rkt │ ├── safe-letrec.rkt │ ├── same-name-struct-type.rkt │ ├── same-type-variable-error-msg.rkt │ ├── sandbox.rkt │ ├── sandboxed-unsafe-ops.rkt │ ├── sealing-contract-1.rkt │ ├── sealing-contract-2.rkt │ ├── sealing-contract-3.rkt │ ├── sealing-contract-4.rkt │ ├── self-outside-sp.rkt │ ├── set-struct.rkt │ ├── set-tests.rkt │ ├── shallow │ │ ├── apply.rkt │ │ ├── cast-mod2.rkt │ │ ├── cast-top-level2.rkt │ │ ├── cast.rkt │ │ ├── class-contract-1.rkt │ │ ├── control-test-3.rkt │ │ ├── define-predicate-all.rkt │ │ ├── filter.rkt │ │ ├── find.rkt │ │ ├── fold.rkt │ │ ├── for.rkt │ │ ├── keyword-mand-opt.rkt │ │ ├── make-predicate-mod1.rkt │ │ ├── nothing.rkt │ │ ├── occurrence-type.rkt │ │ ├── opaque-object-contract-2.rkt │ │ ├── opaque-object-contract.rkt │ │ ├── parameter-class.rkt │ │ ├── poly-bad-0.rkt │ │ ├── poly-bad-1.rkt │ │ ├── poly-bad-2.rkt │ │ ├── poly-bad-3.rkt │ │ ├── pr10350.rkt │ │ ├── pr10594.rkt │ │ ├── pr11686.rkt │ │ ├── pr13274.rkt │ │ ├── pr13446.rkt │ │ ├── pr13662.rkt │ │ ├── pr13664.rkt │ │ ├── pr13665.rkt │ │ ├── pr13815.rkt │ │ ├── pr14173.rkt │ │ ├── predicate-box.rkt │ │ ├── refinements-quicksort.rkt │ │ ├── sandbox.rkt │ │ ├── sandboxed-unsafe-ops.rkt │ │ ├── sealing-contract-1.rkt │ │ ├── sealing-contract-2.rkt │ │ ├── sealing-contract-3.rkt │ │ ├── sealing-contract-4.rkt │ │ ├── shallow-deep-id-2.rkt │ │ ├── struct.rkt │ │ ├── submodule-list-0.rkt │ │ ├── submodule-list-1.rkt │ │ ├── submodule-opaque-0.rkt │ │ ├── submodule-struct-0.rkt │ │ ├── submodule-struct-1.rkt │ │ ├── values.rkt │ │ ├── with-type1.rkt │ │ └── with-type2.rkt │ ├── signature-escape.rkt │ ├── single-letrec.rkt │ ├── spt-untyped-typed-contract.rkt │ ├── spt-untyped-typed-wrong-predicate.rkt │ ├── struct-extra-constructor.rkt │ ├── struct-id-not-type.rkt │ ├── struct-provide.rkt │ ├── struct-type-name-not-constr.rkt │ ├── submod-req-cnt.rkt │ ├── subtype-int-err.rkt │ ├── support-test-submodule.rkt │ ├── tc-error-format.rkt │ ├── too-many-errors.rkt │ ├── top-level-srcloc.rkt │ ├── top-level-unit-and-class.rkt │ ├── type-environment-missing-field.rkt │ ├── type-environment-renamed-field.rkt │ ├── type-variable-scope-1.rkt │ ├── type-variable-scope-2.rkt │ ├── type-variable-scope-3.rkt │ ├── unbound-non-reg.rkt │ ├── unbound-type.rkt │ ├── undefined.rkt │ ├── union-or-exclusive.rkt │ ├── unit-contract-missing-init-depends.rkt │ ├── unit-ctc-init-depends.rkt │ ├── unit-import-wrong-type.rkt │ ├── unit-typed-untyped-1.rkt │ ├── unit-typed-untyped-2.rkt │ ├── unsafe-struct-parent.rkt │ ├── unsafe-struct.rkt │ ├── untyped-srfi1.rkt │ ├── user-filter-with-bad-index-object.rkt │ ├── values-dots.rkt │ ├── values-int-err.rkt │ ├── vector-set-immutable.rkt │ ├── with-asserts.rkt │ ├── with-asserts2.rkt │ ├── with-asserts3.rkt │ ├── with-type-bug.rkt │ ├── with-type-unregister.rkt │ ├── with-type1.rkt │ ├── with-type2.rkt │ ├── with-type3.rkt │ ├── wrong-arity.rkt │ └── wrong-arity2.rkt ├── gui │ └── succeed │ │ ├── gui-contract.rkt │ │ ├── gui-lang.rkt │ │ ├── pr15003.rkt │ │ ├── pr390.rkt │ │ ├── racket-esquire.rkt │ │ ├── require-typed-gui-class.rkt │ │ └── test-tab-augments.rkt ├── info.rkt ├── main.rkt ├── nightly-run.rkt ├── optimizer │ ├── known-bugs.rkt │ ├── missed-optimizations │ │ ├── all-real.rkt │ │ ├── fixnum-no-bound.rkt │ │ ├── fixnum.rkt │ │ ├── float-vector.rkt │ │ ├── mandelbrot.rkt │ │ ├── marketplace-struct.rkt │ │ ├── multi-file1.rkt │ │ ├── multi-file2.rkt │ │ ├── multiple-irritants.rkt │ │ ├── nested-same-kind.rkt │ │ ├── pair.rkt │ │ ├── precision-loss.rkt │ │ ├── real-in-float-expr.rkt │ │ ├── regexp.rkt │ │ ├── sequence.rkt │ │ ├── unary-float.rkt │ │ └── unexpected-complex.rkt │ ├── reset-port.rkt │ ├── run.rkt │ ├── tests │ │ ├── add1.rkt │ │ ├── annotations.rkt │ │ ├── apply-plus.rkt │ │ ├── begin-float.rkt │ │ ├── binary-fixnum.rkt │ │ ├── binary-nonzero-fixnum.rkt │ │ ├── both-if-branches-dead.rkt │ │ ├── bounds-check.rkt │ │ ├── box.rkt │ │ ├── case-arrow.rkt │ │ ├── case-lambda-dead-branch.rkt │ │ ├── complex-exp.rkt │ │ ├── cross-module-struct.rkt │ │ ├── cross-module-struct2.rkt │ │ ├── dead-case-lambda.rkt │ │ ├── dead-else.rkt │ │ ├── dead-inf-comp.rkt │ │ ├── dead-substructs.rkt │ │ ├── dead-then.rkt │ │ ├── define-begin-float.rkt │ │ ├── define-call-float.rkt │ │ ├── define-float.rkt │ │ ├── define-pair.rkt │ │ ├── derived-pair-open-terms.rkt │ │ ├── derived-pair.rkt │ │ ├── derived-pair2.rkt │ │ ├── derived-pair3.rkt │ │ ├── different-langs.rkt │ │ ├── double-float.rkt │ │ ├── drop-pure-pred.rkt │ │ ├── exact-inexact.rkt │ │ ├── expt.rkt │ │ ├── extfl-bounds-check-cs-skip-all.rkt │ │ ├── extflonums-cs-skip-all.rkt │ │ ├── false-huh-dead-code.rkt │ │ ├── fixnum-bounded-expr.rkt │ │ ├── fixnum-comparison.rkt │ │ ├── float-comp.rkt │ │ ├── float-complex-conjugate-top.rkt │ │ ├── float-complex-conjugate.rkt │ │ ├── float-complex-div.rkt │ │ ├── float-complex-fixnum.rkt │ │ ├── float-complex-float-cs-skip.rkt │ │ ├── float-complex-float-div.rkt │ │ ├── float-complex-float-mul.rkt │ │ ├── float-complex-float-small.rkt │ │ ├── float-complex-i-cs-skip.rkt │ │ ├── float-complex-integer.rkt │ │ ├── float-complex-mult.rkt │ │ ├── float-complex-number-mul.rkt │ │ ├── float-complex-parts.rkt │ │ ├── float-complex-parts2.rkt │ │ ├── float-complex-parts3.rkt │ │ ├── float-complex-sin.rkt │ │ ├── float-complex-unary.rkt │ │ ├── float-complex.rkt │ │ ├── float-fun.rkt │ │ ├── float-promotion.rkt │ │ ├── float-real.rkt │ │ ├── flrandom.rkt │ │ ├── flvector-length.rkt │ │ ├── fx-fl.rkt │ │ ├── fx2fl.rkt │ │ ├── gh60.rkt │ │ ├── in-bytes.rkt │ │ ├── in-list.rkt │ │ ├── in-range.rkt │ │ ├── in-string.rkt │ │ ├── in-vector.rkt │ │ ├── in-vector2.rkt │ │ ├── invalid-binary-nonzero-fixnum.rkt │ │ ├── invalid-derived-pair.rkt │ │ ├── invalid-exact-inexact.rkt │ │ ├── invalid-float-comp.rkt │ │ ├── invalid-float-promotion.rkt │ │ ├── invalid-fxquotient.rkt │ │ ├── invalid-inexact-complex-parts.rkt │ │ ├── invalid-log-complex.rkt │ │ ├── invalid-make-flrectangular.rkt │ │ ├── invalid-make-polar.rkt │ │ ├── invalid-mpair.rkt │ │ ├── invalid-sqrt.rkt │ │ ├── invalid-unboxed-let.rkt │ │ ├── invalid-unboxed-let2.rkt │ │ ├── invalid-vector-ref.rkt │ │ ├── invalid-vector-set.rkt │ │ ├── issue-577.rkt │ │ ├── known-length-lists.rkt │ │ ├── known-length-vector-op.rkt │ │ ├── known-vector-length.rkt │ │ ├── let-float.rkt │ │ ├── let-loop-effects.rkt │ │ ├── let-rhs.rkt │ │ ├── list.rkt │ │ ├── literal-int.rkt │ │ ├── magnitude.rkt │ │ ├── make-flrectangular.rkt │ │ ├── make-polar.rkt │ │ ├── maybe-exact-complex.rkt │ │ ├── module-path.rkt │ │ ├── mpair.rkt │ │ ├── multi-flcomp.rkt │ │ ├── n-ary-float-complex.rkt │ │ ├── n-ary-float.rkt │ │ ├── nested-float-complex.rkt │ │ ├── nested-float.rkt │ │ ├── nested-float2.rkt │ │ ├── nested-let-loop.rkt │ │ ├── nested-pair1.rkt │ │ ├── nested-pair2.rkt │ │ ├── nested-unboxed-let.rkt │ │ ├── one-arg-arith.rkt │ │ ├── opt-arg.rkt │ │ ├── pair-fun.rkt │ │ ├── pair-known-length-list.rkt │ │ ├── pr12475.rkt │ │ ├── pr13468.rkt │ │ ├── pr13788.rkt │ │ ├── pr14284.rkt │ │ ├── pr14380.rkt │ │ ├── projections.rkt │ │ ├── quote.rkt │ │ ├── rational-literal.rkt │ │ ├── real-part-loop.rkt │ │ ├── silent-dead-branch.rkt │ │ ├── simple-float.rkt │ │ ├── simple-pair.rkt │ │ ├── sqrt-segfault.rkt │ │ ├── sqrt.rkt │ │ ├── string-length.rkt │ │ ├── structs.rkt │ │ ├── ternary-equality.rkt │ │ ├── unary-fixnum-nested.rkt │ │ ├── unary-fixnum.rkt │ │ ├── unary-float.rkt │ │ ├── unary-minus-float-complex.rkt │ │ ├── unboxed-exp.rkt │ │ ├── unboxed-for.rkt │ │ ├── unboxed-let-constants-fail1.rkt │ │ ├── unboxed-let-constants.rkt │ │ ├── unboxed-let-functions1.rkt │ │ ├── unboxed-let-functions2.rkt │ │ ├── unboxed-let-functions3.rkt │ │ ├── unboxed-let-functions4.rkt │ │ ├── unboxed-let-functions5.rkt │ │ ├── unboxed-let-functions6.rkt │ │ ├── unboxed-let-functions7.rkt │ │ ├── unboxed-let-functions8.rkt │ │ ├── unboxed-let.rkt │ │ ├── unboxed-let2.rkt │ │ ├── unboxed-let3.rkt │ │ ├── unboxed-letrec-syntaxes+values.rkt │ │ ├── unboxed-letrec.rkt │ │ ├── unboxed-make-rectangular.rkt │ │ ├── vector-bounds-check.rkt │ │ ├── vector-chaperone1.rkt │ │ ├── vector-chaperone2.rkt │ │ ├── vector-length-impersonator.rkt │ │ ├── vector-length-nested.rkt │ │ ├── vector-length.rkt │ │ ├── vector-ref-set-ref.rkt │ │ ├── vector-ref.rkt │ │ ├── vector-ref2.rkt │ │ ├── vector-set-quote.rkt │ │ ├── vector-set.rkt │ │ ├── vector-set2.rkt │ │ ├── vector-sum.rkt │ │ ├── with-type.rkt │ │ └── zero.rkt │ └── transform.rkt ├── performance │ ├── function-contract.rkt │ ├── infer-timing.rkt │ ├── module-loading-memory.rkt │ └── module-loading.rkt ├── places.rkt ├── racket-eval-server.rkt ├── run.rkt ├── send-places.rkt ├── succeed │ ├── 2d-typed.rkt │ ├── aliasing-tests.rkt │ ├── andmap.rkt │ ├── annotation-syntax-override.rkt │ ├── annotation-test.rkt │ ├── any-hash.rkt │ ├── any-wrap-list.rkt │ ├── any-wrap.rkt │ ├── apply-append.rkt │ ├── apply-dots-list.rkt │ ├── apply-dots.rkt │ ├── area.rkt │ ├── arrow-star-contracts.rkt │ ├── assoc-with-is-equal-argument.rkt │ ├── at-exp.rkt │ ├── bad-map-infer.rkt │ ├── barland.rkt │ ├── basic-tests.rkt │ ├── batched-queue.scm │ ├── begin0-error.rkt │ ├── binding-alias.rkt │ ├── both-recursive-types.rkt │ ├── box-num.rkt │ ├── broken-let-syntax.rkt │ ├── builtin-type-constr-cross-module.rkt │ ├── call-comp.rkt │ ├── callcc.rkt │ ├── case-arrow-cast-contract.rkt │ ├── case-lambda-rest.rkt │ ├── case-lambda1.rkt │ ├── cast-mod.rkt │ ├── cast-no-check.rkt │ ├── cast-top-level.rkt │ ├── check-env-lang-based-env.rkt │ ├── check-expect.rkt │ ├── cl-bug.rkt │ ├── cl-tests.rkt │ ├── cl.rkt │ ├── class-contract.rkt │ ├── cmdline.rkt │ ├── command-line-ps.rkt │ ├── continuation-mark.rkt │ ├── contract-opt+kw.rkt │ ├── contract-struct-equality.rkt │ ├── cps.rkt │ ├── curry.rkt │ ├── custodian.rkt │ ├── custom-printer.rkt │ ├── cyclic-list.rkt │ ├── datum-to-syntax.rkt │ ├── def-pred.rkt │ ├── define-forward-reference.rkt │ ├── define-new-subtype-function.rkt │ ├── define-new-subtype-infer.rkt │ ├── define-new-subtype-mu-rec.rkt │ ├── define-poly-value.rkt │ ├── define-type-omit-define.rkt │ ├── define-typed-untyped-identifier-syntax-properties.rkt │ ├── define-values-invoke-unit-subtyping.rkt │ ├── dependent-function-type-thunk-prop.rkt │ ├── discrete-dist.rkt │ ├── do.rkt │ ├── dot-intro.rkt │ ├── dotted-identity.rkt │ ├── dotted-identity2.rkt │ ├── dviu-infer-deps-ok.rkt │ ├── dviu-infer-fact.rkt │ ├── dviu-unit-from-context.rkt │ ├── empty-case-arrow.rkt │ ├── empty-or.rkt │ ├── ephemerons.rkt │ ├── even-odd-recursive-type.rkt │ ├── even-odd.rkt │ ├── events-with-async-channel.rkt │ ├── events.rkt │ ├── exceptions.rkt │ ├── exn-any-mutation.rkt │ ├── extract-sp-apply-self.rkt │ ├── fix.rkt │ ├── fixnum.rkt │ ├── float-internal-err.rkt │ ├── flonum.rkt │ ├── flvector.rkt │ ├── fold-left-inst.rkt │ ├── fold-left.rkt │ ├── foldo.rkt │ ├── foo.scm │ ├── for-ann.rkt │ ├── for-hash.rkt │ ├── for-in-range.rkt │ ├── for-list-expansion.rkt │ ├── for-list.rkt │ ├── for-lists.rkt │ ├── for-no-anns.rkt │ ├── for-no-body-anns.rkt │ ├── for-over-hash.rkt │ ├── for-result.rkt │ ├── for-seq.rkt │ ├── for-set.rkt │ ├── for-vector.rkt │ ├── for.rkt │ ├── force-delay.rkt │ ├── format.rkt │ ├── function.rkt │ ├── fx-filter.rkt │ ├── generalize-vectors.rkt │ ├── gh-issue-1020.rkt │ ├── gh-issue-1039.rkt │ ├── gh-issue-1045.rkt │ ├── gh-issue-1079.rkt │ ├── gh-issue-1088.rkt │ ├── gh-issue-1196.rkt │ ├── gh-issue-1201.rkt │ ├── gh-issue-1234.rkt │ ├── gh-issue-1298.rkt │ ├── gh-issue-1320.rkt │ ├── gh-issue-144.rkt │ ├── gh-issue-157.rkt │ ├── gh-issue-163-1.rkt │ ├── gh-issue-163-2.rkt │ ├── gh-issue-164.rkt │ ├── gh-issue-181.rkt │ ├── gh-issue-205.rkt │ ├── gh-issue-214.rkt │ ├── gh-issue-26.rkt │ ├── gh-issue-291.rkt │ ├── gh-issue-304.rkt │ ├── gh-issue-336.rkt │ ├── gh-issue-343.rkt │ ├── gh-issue-366.rkt │ ├── gh-issue-38.rkt │ ├── gh-issue-426.rkt │ ├── gh-issue-43.rkt │ ├── gh-issue-506.rkt │ ├── gh-issue-542.rkt │ ├── gh-issue-691.rkt │ ├── gh-issue-764.rkt │ ├── gh-issue-782.rkt │ ├── gh-issue-829.rkt │ ├── gh-issue-837.rkt │ ├── gh-issue-906.rkt │ ├── gh-issue-930.rkt │ ├── gh-issue-940.rkt │ ├── gh-issue-957.rkt │ ├── gh-issue-973.rkt │ ├── gh-issue-974.rkt │ ├── gh-issue-987.rkt │ ├── hari-vector-bug.rkt │ ├── has-sp-cons.rkt │ ├── hash-contract.rkt │ ├── hash-literal.rkt │ ├── hash-map-try-order.rkt │ ├── hash-ref.rkt │ ├── hash-union.rkt │ ├── hashtabletop-flat-contract.rkt │ ├── het-vec.rkt │ ├── het-vec2.rkt │ ├── ho-box.rkt │ ├── hw01.scm │ ├── icfp-examples.rkt │ ├── if-splitting-test.rkt │ ├── immutable-string-safe.rkt │ ├── in-hash-in-vector-subtype.rkt │ ├── in-vector-range.rkt │ ├── index-of.rkt │ ├── inexact-complex.rkt │ ├── inf-nested-bot.rkt │ ├── infer-dots.rkt │ ├── infer-funargs.rkt │ ├── inst-dots.rkt │ ├── inst-expected.rkt │ ├── int-def-colon.rkt │ ├── integer-contracts.rkt │ ├── internal-contract-check1.rkt │ ├── internal-contract-check2.rkt │ ├── internal-scoped-tvar.rkt │ ├── intersect-no-intersections.rkt │ ├── intersection1.rkt │ ├── issue-166.rkt │ ├── issue-33.rkt │ ├── issue-447.rkt │ ├── issue-598.rkt │ ├── issue-625.rkt │ ├── issue-628.rkt │ ├── issue-807.rkt │ ├── issue-823.rkt │ ├── json-hash.rkt │ ├── keyword-function-order.rkt │ ├── kw-def.rkt │ ├── kw.rkt │ ├── leftist-heap.rkt │ ├── let-no-anns.rkt │ ├── let-partial-annotations.rkt │ ├── let-values-tests.rkt │ ├── lifting-top-level.rkt │ ├── linear-integer-simple.rkt │ ├── list-dots.rkt │ ├── list-ref-vec.rkt │ ├── list-struct-sum.rkt │ ├── literal-char-gh-issue-434.rkt │ ├── literal-regexp-gh-issue-539.rkt │ ├── little-schemer.rkt │ ├── log.rkt │ ├── logic.rkt │ ├── lots-o-bugs.rkt │ ├── macro-in-unit.rkt │ ├── make-font.rkt │ ├── make-predicate-mod.rkt │ ├── make-predicate-top-level.rkt │ ├── make-readtable.rkt │ ├── make-top-predicate.rkt │ ├── mandelbrot.rkt │ ├── manual-examples.rkt │ ├── map-nonempty.rkt │ ├── map1.rkt │ ├── map2.rkt │ ├── match-dots.rkt │ ├── match-dots2.rkt │ ├── match-expander-problem.rkt │ ├── match-hash-pattern.rkt │ ├── match-or.rkt │ ├── match-overlap-unsafe-struct-ref.rkt │ ├── match-tests.rkt │ ├── match.rkt │ ├── member-pred.rkt │ ├── member-with-is-equal-argument.rkt │ ├── memory.rkt │ ├── metrics.rkt │ ├── module-lang.rkt │ ├── module-plus.rkt │ ├── module-repl.rkt │ ├── mpair.rkt │ ├── mu-rec.rkt │ ├── multi-arr-parse.rkt │ ├── mutable-poly-struct.rkt │ ├── mutable-struct-pred.rkt │ ├── namespace-anchor.rkt │ ├── nested-poly.rkt │ ├── no-bound-fl.rkt │ ├── non-recursive-and-recursive-type-aliases.rkt │ ├── nonnegative-float.rkt │ ├── null-program.rkt │ ├── num-equal-filter.rkt │ ├── opaque-non-opaque-contracts-together.rkt │ ├── opaque-object-contract.rkt │ ├── opaque-object-name.rkt │ ├── opaque-object-stronger.rkt │ ├── opt-arg-test.rkt │ ├── opt-lambda.rkt │ ├── optimize-simple.rkt │ ├── optional │ │ ├── accessors.rkt │ │ ├── app-hetero.rkt │ │ ├── async-channel-contract.rkt │ │ ├── bad-vector-ref.rkt │ │ ├── cast-mod.rkt │ │ ├── cast-mod2.rkt │ │ ├── cast.rkt │ │ ├── check-expect.rkt │ │ ├── check-within.rkt │ │ ├── contract-conversion-error.rkt │ │ ├── control-test-3.rkt │ │ ├── control-test-6.rkt │ │ ├── deep-optional-id.rkt │ │ ├── define-syntax.rkt │ │ ├── define-typed-untyped-identifier-syntax-properties.rkt │ │ ├── dotted-identity2.rkt │ │ ├── empty-fun.rkt │ │ ├── ephemerons.rkt │ │ ├── even-odd-recursive-type.rkt │ │ ├── exn-any-mutation.rkt │ │ ├── find.rkt │ │ ├── flonum.rkt │ │ ├── fold.rkt │ │ ├── in-cycle.rkt │ │ ├── keyword-mand-opt.rkt │ │ ├── ll-lambda.rkt │ │ ├── macro.rkt │ │ ├── make-predicate-top-level.rkt │ │ ├── module-client.rkt │ │ ├── module-plus.rkt │ │ ├── module-server.rkt │ │ ├── module-star.rkt │ │ ├── no-bound-fl.rkt │ │ ├── nothing.rkt │ │ ├── object-typed.rkt │ │ ├── object-untyped.rkt │ │ ├── opaque-object.rkt │ │ ├── optional-deep-id-0.rkt │ │ ├── optional-deep-id-1.rkt │ │ ├── optional-provide.rkt │ │ ├── optional-shallow-id-0.rkt │ │ ├── optional-shallow-id-1.rkt │ │ ├── optional-shallow-id-2.rkt │ │ ├── optional-shallow-id-3.rkt │ │ ├── optional-syntax.rkt │ │ ├── poly-bad-3.rkt │ │ ├── poly-ref.rkt │ │ ├── poly-require-typed.rkt │ │ ├── pr10350.rkt │ │ ├── pr12913.rkt │ │ ├── pr13747.rkt │ │ ├── pr226-variation-2.rkt │ │ ├── pr226-variation-3.rkt │ │ ├── prefab-field-provide.rkt │ │ ├── prefab.rkt │ │ ├── procedure-top.rkt │ │ ├── promise-any.rkt │ │ ├── prompt-tag.rkt │ │ ├── provide-struct.rkt │ │ ├── sequenceof-integer.rkt │ │ ├── shallow-optional-id.rkt │ │ ├── struct-match-0.rkt │ │ ├── struct-match-1.rkt │ │ ├── submodule-list-0.rkt │ │ ├── submodule-list-1.rkt │ │ ├── submodule-opaque-0.rkt │ │ ├── submodule-optional.rkt │ │ ├── submodule-struct-0.rkt │ │ ├── submodule-struct-1.rkt │ │ ├── submodule.rkt │ │ ├── subst-poly-dots.rkt │ │ ├── toplevel-redefinition.rkt │ │ ├── typed-provide.rkt │ │ ├── typed-untyped-id.rkt │ │ ├── untyped-struct-properties-with-self.rkt │ │ ├── val-ctc-test.rkt │ │ └── with-type.rkt │ ├── or-sym.rkt │ ├── overloading.rkt │ ├── pair-test.rkt │ ├── pair-test2.rkt │ ├── pair-test3.rkt │ ├── param.rkt │ ├── parameter-c.rkt │ ├── parameter-proc.rkt │ ├── parametric-require-tr-base.rkt │ ├── parse-path.rkt │ ├── patch.rkt │ ├── path-order.rkt │ ├── paths.rkt │ ├── pathstrings.rkt │ ├── pict.rkt │ ├── places-helper.rkt │ ├── places.rkt │ ├── poly-apply.rkt │ ├── poly-dots.rkt │ ├── poly-lists.rkt │ ├── poly-ret-ann.rkt │ ├── poly-same-annotation.rkt │ ├── poly-simple-contract.rkt │ ├── poly-struct-parent.rkt │ ├── poly-struct-pred.rkt │ ├── poly-struct-union.rkt │ ├── poly-struct.rkt │ ├── poly-subtype.rkt │ ├── poly-tests.rkt │ ├── ports.rkt │ ├── pr10057.rkt │ ├── pr10318.rkt │ ├── pr10319.rkt │ ├── pr10342.rkt │ ├── pr10470.rkt │ ├── pr10552.rkt │ ├── pr10562.rkt │ ├── pr10718+10755.rkt │ ├── pr10729.rkt │ ├── pr10765.rkt │ ├── pr10939.rkt │ ├── pr11099.rkt │ ├── pr11171.rkt │ ├── pr11172.rkt │ ├── pr11193.rkt │ ├── pr11194.rkt │ ├── pr11314.rkt │ ├── pr11390.rkt │ ├── pr11392.rkt │ ├── pr11504.rkt │ ├── pr11509.rkt │ ├── pr11532.rkt │ ├── pr11545+11776.rkt │ ├── pr11560.rkt │ ├── pr11578.rkt │ ├── pr11617.rkt │ ├── pr11669.rkt │ ├── pr11686.rkt │ ├── pr11709.rkt │ ├── pr11728.rkt │ ├── pr11747.rkt │ ├── pr11756.rkt │ ├── pr11859.rkt │ ├── pr11866.rkt │ ├── pr11887.rkt │ ├── pr11897.rkt │ ├── pr11912.rkt │ ├── pr11971.rkt │ ├── pr12224.rkt │ ├── pr12644.rkt │ ├── pr12678.rkt │ ├── pr12806.rkt │ ├── pr12807.rkt │ ├── pr12905.rkt │ ├── pr12913.rkt │ ├── pr1294.rkt │ ├── pr12970.rkt │ ├── pr12974.rkt │ ├── pr13094.rkt │ ├── pr13124.rkt │ ├── pr13155.rkt │ ├── pr13160.rkt │ ├── pr13161.rkt │ ├── pr13185.rkt │ ├── pr13326.rkt │ ├── pr13339.rkt │ ├── pr13412.rkt │ ├── pr13464.rkt │ ├── pr13464.rktl │ ├── pr13490.rkt │ ├── pr13503.rkt │ ├── pr13576.rkt │ ├── pr13584.rkt │ ├── pr13646.rkt │ ├── pr13691.rkt │ ├── pr13710.rkt │ ├── pr13747.rkt │ ├── pr13821.rkt │ ├── pr13870.rkt │ ├── pr13901.rkt │ ├── pr13937.rkt │ ├── pr14138.rkt │ ├── pr14217.rkt │ ├── pr14355.rkt │ ├── pr14364.rkt │ ├── pr14374.rkt │ ├── pr14458.rkt │ ├── pr14463.rkt │ ├── pr14521.rkt │ ├── pr14567.rkt │ ├── pr14568.rkt │ ├── pr14582.rkt │ ├── pr14587.rkt │ ├── pr14702.rkt │ ├── pr14823.rkt │ ├── pr14828.rkt │ ├── pr14829.rkt │ ├── pr14896.rkt │ ├── pr14997.rkt │ ├── pr15026-a.rkt │ ├── pr15026-b.rkt │ ├── pr15144.rkt │ ├── pr15330.rkt │ ├── pr226-variation-1.rkt │ ├── pr226-variation-2.rkt │ ├── pr226-variation-3.rkt │ ├── pr241-variation-0.rkt │ ├── pr241-variation-1.rkt │ ├── pr241-variation-2.rkt │ ├── pr241-variation-3.rkt │ ├── pr241-variation-5.rkt │ ├── pr267-variation-0.rkt │ ├── pr390-variation-1.rkt │ ├── pr390-variation-2.rkt │ ├── pr390-variation-3.rkt │ ├── pr390-variation-4.rkt │ ├── pr390-variation-5.rkt │ ├── pr390-variation-6.rkt │ ├── pr390-variation-7.rkt │ ├── pr403.rkt │ ├── pr468-in-query.rkt │ ├── pr476-compile-time-images.rkt │ ├── pr575-variation-0.rkt │ ├── pr575-variation-1.rkt │ ├── pr575-variation-2.rkt │ ├── pr575-variation-3.rkt │ ├── pr575-variation-4.rkt │ ├── pr575-variation-5.rkt │ ├── pr9043.rkt │ ├── pr9046.rkt │ ├── pr9048.rkt │ ├── pr9053-2.rkt │ ├── pr9053.rkt │ ├── pr9054.rkt │ ├── pr907-non-relative.rkt │ ├── pr907.rkt │ ├── pr950-magnitude.rkt │ ├── pr953-in-xvector.rkt │ ├── prefab-field-provide.rkt │ ├── prefab.rkt │ ├── priority-queue.scm │ ├── procedure-top.rkt │ ├── promise-provide-generate-contract.rkt │ ├── promise.rkt │ ├── prompt-tag-contract.rkt │ ├── prompt-tag.rkt │ ├── prop-procedure.rkt │ ├── provide-alias-omit-define.rkt │ ├── provide-case-rest.rkt │ ├── provide-for-meta.rkt │ ├── provide-poly-struct.rkt │ ├── provide-sexp.rkt │ ├── provide-struct-untyped.rkt │ ├── provide-struct.rkt │ ├── provide-syntax.rkt │ ├── racket-struct.rkt │ ├── rackunit-suite.rkt │ ├── rackunit.rkt │ ├── random-bits.rkt │ ├── rec-het-vec-infer.rkt │ ├── rec-type-alias-variance.rkt │ ├── rec-types.rkt │ ├── recursive-type-alias-terminates.rkt │ ├── recursive-type-alias-top-level.rkt │ ├── recursive-type-constr-contract.rkt │ ├── refinement-even.rkt │ ├── refinements-and-aliases.rkt │ ├── refinements-expected-type1.rkt │ ├── refinements-quicksort.rkt │ ├── regexp-match-kw.rkt │ ├── req-type-sub.rkt │ ├── require-poly.rkt │ ├── require-procedure.rkt │ ├── require-signature-all-typed.rkt │ ├── require-struct.rkt │ ├── require-substruct.rkt │ ├── require-tests.rkt │ ├── require-typed-contravariant-filter.rkt │ ├── require-typed-no-check.rkt │ ├── require-typed-on-typed-module.rkt │ ├── require-typed-parse.rkt │ ├── require-typed-rename.rkt │ ├── require-typed-struct-contract.rkt │ ├── require-typed-struct-custom-type.rkt │ ├── require-typed-struct-info.rkt │ ├── require-typed-struct-regexp.rkt │ ├── rest-star-hash-examples.rkt │ ├── richard-bugs.rkt │ ├── runtime-path.rkt │ ├── safe-letrec.rkt │ ├── safe-vector-base.rkt │ ├── safe-vector-untyped.rkt │ ├── safe-vector.rkt │ ├── scoped-type-vars.rkt │ ├── scratch.rkt │ ├── sealing-contract-1.rkt │ ├── sealing-contract-2.rkt │ ├── sealing-contract-3.rkt │ ├── seasoned-schemer.rkt │ ├── send.rkt │ ├── sequence-cnt.rkt │ ├── sequenceof-integer.rkt │ ├── sequences.rkt │ ├── set-contract.rkt │ ├── set.rkt │ ├── shallow │ │ ├── accessors.rkt │ │ ├── alias.rkt │ │ ├── ann-inst.rkt │ │ ├── app-hetero.rkt │ │ ├── apply-append.rkt │ │ ├── apply-dots-list.rkt │ │ ├── apply.rkt │ │ ├── async-channel-contract.rkt │ │ ├── bad-typed-identifier.rkt │ │ ├── bad-vector-ref.rkt │ │ ├── caar.rkt │ │ ├── call-comp.rkt │ │ ├── case-lambda-rest.rkt │ │ ├── case-lambda.rkt │ │ ├── cast-mod.rkt │ │ ├── cast-top-level.rkt │ │ ├── channel-contract.rkt │ │ ├── check-expect.rkt │ │ ├── check-within.rkt │ │ ├── cl-bug.rkt │ │ ├── contract-conversion-error.rkt │ │ ├── control-test-3.rkt │ │ ├── control-test-6.rkt │ │ ├── dead-code-values.rkt │ │ ├── deep-shallow-id-0.rkt │ │ ├── deep-shallow-id-1.rkt │ │ ├── deep-with-type.rkt │ │ ├── define-syntax.rkt │ │ ├── define-typed-untyped-identifier-syntax-properties.rkt │ │ ├── distinguish-source.rkt │ │ ├── do.rkt │ │ ├── dotted-identity.rkt │ │ ├── dotted-identity2.rkt │ │ ├── dungeon-main.rkt │ │ ├── empty-case-arrow.rkt │ │ ├── empty-fun.rkt │ │ ├── empty-or.rkt │ │ ├── ephemerons.rkt │ │ ├── even-odd-recursive-contract.rkt │ │ ├── even-odd-recursive-type.rkt │ │ ├── exn-any-mutation.rkt │ │ ├── factorial.rkt │ │ ├── flonum.rkt │ │ ├── fold-left-inst.rkt │ │ ├── fold-left.rkt │ │ ├── gh-issue-336.rkt │ │ ├── hello.rkt │ │ ├── in-cycle.rkt │ │ ├── intersection1.rkt │ │ ├── issue-598.rkt │ │ ├── issue-625.rkt │ │ ├── keyword-opt-mand.rkt │ │ ├── lambda-allvar.rkt │ │ ├── lambda-subtype.rkt │ │ ├── lambda.rkt │ │ ├── lifting-top-level.rkt │ │ ├── list-dots.rkt │ │ ├── list-ref.rkt │ │ ├── literal-regexp-gh-issue-539.rkt │ │ ├── ll-lambda.rkt │ │ ├── lots-o-bugs.rkt │ │ ├── make-hasheq.rkt │ │ ├── make-predicate-top-level.rkt │ │ ├── mandelbrot.rkt │ │ ├── match-define.rkt │ │ ├── method-default.rkt │ │ ├── module-client.rkt │ │ ├── module-lang.rkt │ │ ├── module-plus.rkt │ │ ├── module-server.rkt │ │ ├── module-star.rkt │ │ ├── nested-poly.rkt │ │ ├── new-metrics.rkt │ │ ├── no-bound-fl.rkt │ │ ├── object-typed.rkt │ │ ├── object-untyped.rkt │ │ ├── opaque-object.rkt │ │ ├── pict.rkt │ │ ├── poly-apply.rkt │ │ ├── poly-dots.rkt │ │ ├── poly-ref.rkt │ │ ├── poly-require-typed.rkt │ │ ├── poly-union.rkt │ │ ├── pr11545+11776.rkt │ │ ├── pr11669.rkt │ │ ├── pr12913.rkt │ │ ├── pr13503.rkt │ │ ├── pr13576.rkt │ │ ├── pr13747.rkt │ │ ├── pr14138.rkt │ │ ├── pr226-variation-2.rkt │ │ ├── pr226-variation-3.rkt │ │ ├── pr241-variation-1.rkt │ │ ├── pr241-variation-5.rkt │ │ ├── pr390-variation-4.rkt │ │ ├── pr476-compile-time-images.rkt │ │ ├── prefab-field-provide.rkt │ │ ├── prefab.rkt │ │ ├── primitives.rkt │ │ ├── procedure-top.rkt │ │ ├── promise-any.rkt │ │ ├── prompt-tag.rkt │ │ ├── provide-struct.rkt │ │ ├── qmap.rkt │ │ ├── rackunit-suite.rkt │ │ ├── rec-factorial.rkt │ │ ├── recursive-type-alias-top-level.rkt │ │ ├── rest-star-hash-examples.rkt │ │ ├── scoped-type-vars.rkt │ │ ├── scribble-example.rkt │ │ ├── send-no-type.rkt │ │ ├── sequence.rkt │ │ ├── sequenceof-integer.rkt │ │ ├── sequences.rkt │ │ ├── shallow-contract.rkt │ │ ├── shallow-deep-id-0.rkt │ │ ├── shallow-deep-id-1.rkt │ │ ├── shallow-deep-id-2.rkt │ │ ├── shallow-deep-id-3.rkt │ │ ├── shallow-provide.rkt │ │ ├── shallow-syntax.rkt │ │ ├── simple-object.rkt │ │ ├── struct-match-0.rkt │ │ ├── struct-match-1.rkt │ │ ├── struct.rkt │ │ ├── stx-cdr.rkt │ │ ├── stx.rkt │ │ ├── submodule-list-0.rkt │ │ ├── submodule-list-1.rkt │ │ ├── submodule-opaque-0.rkt │ │ ├── submodule-opaque-1.rkt │ │ ├── submodule-shallow.rkt │ │ ├── submodule-struct-0.rkt │ │ ├── submodule-struct-1.rkt │ │ ├── submodule.rkt │ │ ├── subst-poly-dots.rkt │ │ ├── tc-app-list.rkt │ │ ├── tc-app-special.rkt │ │ ├── test-case.rkt │ │ ├── test2.rkt │ │ ├── top-level-begin-for-syntax.rkt │ │ ├── top-level-begin.rkt │ │ ├── top-level-make-predicate.rkt │ │ ├── toplevel-redefinition.rkt │ │ ├── type-printer-single-level.rkt │ │ ├── typed-provide.rkt │ │ ├── typed-untyped-id.rkt │ │ ├── untyped-contract-aux │ │ │ ├── lib.rkt │ │ │ └── untyped.rkt │ │ ├── untyped-contract-deep.rkt │ │ ├── untyped-contract-optional.rkt │ │ ├── untyped-contract-shallow.rkt │ │ ├── untyped-struct-properties-with-self.rkt │ │ ├── val-ctc-test.rkt │ │ ├── values-dots-result.rkt │ │ ├── values-dots.rkt │ │ ├── vector-ref.rkt │ │ ├── with-input-from-file.rkt │ │ ├── with-syntax.rkt │ │ ├── with-type-bug.rkt │ │ ├── with-type-lift.rkt │ │ ├── with-type-typed-context-flag.rkt │ │ ├── with-type.rkt │ │ ├── with-type3.rkt │ │ └── zordoz-opt.rkt │ ├── simple-fake-or.rkt │ ├── simple-implies.rkt │ ├── simple-kw-app.rkt │ ├── simple-occurr.rkt │ ├── simple-or.rkt │ ├── simple-poly.rkt │ ├── simple-unit-scope.rkt │ ├── single-flonum.rkt │ ├── slow-check.rkt │ ├── slow-parser.rkt │ ├── somesystempath.rkt │ ├── sort-infer.rkt │ ├── standard-features-base.rkt │ ├── standard-features-no-check-base.rkt │ ├── standard-features-no-check-gui.rkt │ ├── standard-features-no-check-scheme-base.rkt │ ├── standard-features-no-check-scheme.rkt │ ├── standard-features-no-check-ts.rkt │ ├── standard-features-no-check.rkt │ ├── standard-features-scheme-base.rkt │ ├── standard-features-scheme.rkt │ ├── standard-features-ts.rkt │ ├── standard-features.rkt │ ├── star-sizes.rkt │ ├── static-contract-equality-tests.rkt │ ├── stream.rkt │ ├── string-const.rkt │ ├── struct-cert.rkt │ ├── struct-constructors.rkt │ ├── struct-custom-type.rkt │ ├── struct-exec.rkt │ ├── struct-inheritance-through-exported-macro.rkt │ ├── struct-mutable-contract.rkt │ ├── struct-mutable.rkt │ ├── struct-no-colon.rkt │ ├── struct-options.rkt │ ├── struct-out-with-exported-type-name.rkt │ ├── struct-out.rkt │ ├── struct-path-update.rkt │ ├── struct-procedure-kw.rkt │ ├── struct-props.rkt │ ├── struct-struct-out.rkt │ ├── struct-top-recursive.rkt │ ├── struct-type-contract.rkt │ ├── struct-update.rkt │ ├── structs-across-modules.rkt │ ├── structs-has-subtype.rkt │ ├── structs-variance.rkt │ ├── structs-variance2.rkt │ ├── structs-variance3.rkt │ ├── stx.rkt │ ├── submod-vector.rkt │ ├── submodules.rkt │ ├── subst-poly-dots.rkt │ ├── take5-typecheck.rkt │ ├── test-child-field.rkt │ ├── test-spt-typed-untyped.rkt │ ├── test-struct-info.rkt │ ├── test.rkt │ ├── test2.rkt │ ├── threads-and-async-channels.rkt │ ├── threads-and-channels.rkt │ ├── time.rkt │ ├── top-level-begin-for-syntax.rkt │ ├── top-level-begin.rkt │ ├── top-level-make-predicate.rkt │ ├── toplevel-redefinition.rkt │ ├── tr-evt.rkt │ ├── treelist-contract.rkt │ ├── treelist.rkt │ ├── type-alias-omit-define-syntaxes.rkt │ ├── type-alias-rec-struct.rkt │ ├── type-constr-contract.rkt │ ├── type-environment.rkt │ ├── type-name-struct-c.rkt │ ├── type-printer-single-level.rkt │ ├── type-variable-scope.rkt │ ├── typeann-letrec.rkt │ ├── typed-list.rkt │ ├── typed-scheme-no-check-arrow.rkt │ ├── unicode-aliases.rkt │ ├── unit-3x-2.rkt │ ├── unit-3x.rkt │ ├── unit-non-prefix-annotation.rkt │ ├── unit-syntax-rule-with-annotation.rkt │ ├── unit-typed-untyped-compound-1.rkt │ ├── unit-typed-untyped-compound-2.rkt │ ├── unit-typed-untyped-values.rkt │ ├── units-no-sigs.rkt │ ├── unquoted-printing-string.rkt │ ├── unsafe-provide-struct.rkt │ ├── unsafe-provide.rkt │ ├── unsafe-reprovide.rkt │ ├── unsafe-require-poly-struct.rkt │ ├── unsafe-require-top-level.rkt │ ├── unsafe-require.rkt │ ├── unsafe-struct-parent.rkt │ ├── unsafe-struct.rkt │ ├── untyped-submod.rkt │ ├── user-defined-sp.rkt │ ├── values-dots-result.rkt │ ├── values-dots.rkt │ ├── values-dots2.rkt │ ├── values-object.rkt │ ├── varargs-tests.rkt │ ├── variance-test.rkt │ ├── vec-len-in-struct-fld.rkt │ ├── vec-tests.rkt │ ├── vector-chap.rkt │ ├── vector-contract.rkt │ ├── vector-sort.rkt │ ├── vector-union.rkt │ ├── vectortop-flat-contract.rkt │ ├── with-asserts.rkt │ ├── with-handlers-rest-arg.rkt │ ├── with-handlers-star.rkt │ ├── with-handlers.rkt │ ├── with-linear-integer-arith.rkt │ ├── with-linear-integer-arith2.rkt │ ├── with-syntax.rkt │ ├── with-type-lift.rkt │ ├── with-type-typed-context-flag.rkt │ ├── with-type.rkt │ └── zero-arg-poly.rkt ├── test-docs-complete.rkt ├── unit-tests │ ├── all-tests.rkt │ ├── check-below-tests.rkt │ ├── class-tests.rkt │ ├── class-util-tests.rkt │ ├── contract-tests.rkt │ ├── evaluator.rkt │ ├── generalize-tests.rkt │ ├── inequalities.rkt │ ├── infer-tests.rkt │ ├── init-env-tests.rkt │ ├── interactive-tests.rkt │ ├── json-tests.rkt │ ├── keyword-expansion-test.rkt │ ├── metafunction-tests.rkt │ ├── parse-type-tests.rkt │ ├── prefab-tests.rkt │ ├── prims-tests.rkt │ ├── prop-tests.rkt │ ├── remove-intersect-tests.rkt │ ├── shallow-rewrite-expansion │ │ ├── base-env-numeric.rkt │ │ ├── call-with-values.rkt │ │ ├── case-lambda.rkt │ │ ├── cdr.rkt │ │ ├── default-continuation-prompt-tag.rkt │ │ ├── for.rkt │ │ ├── list.rkt │ │ ├── main.rkt │ │ ├── object-private.rkt │ │ ├── parameter.rkt │ │ ├── predicate.rkt │ │ ├── struct-predicate.rkt │ │ ├── type-annotation.rkt │ │ ├── typed-framework.rkt │ │ ├── typed-gui-base.rkt │ │ ├── typed-pict.rkt │ │ └── typed-stx.rkt │ ├── special-env-typecheck-tests.rkt │ ├── static-contract-conversion-tests.rkt │ ├── static-contract-instantiate-tests.rkt │ ├── static-contract-optimizer-tests.rkt │ ├── subst-tests.rkt │ ├── subtype-tests.rkt │ ├── test-utils.rkt │ ├── tooltip-tests.rkt │ ├── type-alias-helper.rkt │ ├── type-constr-tests.rkt │ ├── type-equal-tests.rkt │ ├── type-printer-tests.rkt │ ├── typecheck-tests.rkt │ ├── typed-units-tests.rkt │ └── xml-tests.rkt ├── with-tr-contracts.rkt └── xfail │ ├── ann-map-funcs.rkt │ ├── applicative.rkt │ ├── apply-map-bug.rkt │ ├── cl-expected.rkt │ ├── exn-any.rkt │ ├── expectations.rkt │ ├── fact-unit.rkt │ ├── for-inference.rkt │ ├── inst+special-case.rkt │ ├── internal-typed-submod.rkt │ ├── opt-lambda.rkt │ ├── pr10618.rkt │ ├── pr241-variation-4.rkt │ ├── priority-queue.scm │ ├── rec-contract.rkt │ ├── typed-language-require.rkt │ ├── unholy-terror.rkt │ └── xmodule-mutation.rkt └── typed-racket ├── LICENSE └── info.rkt /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "github-actions" 4 | directory: "/" 5 | schedule: 6 | interval: "weekly" 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Racket compiled files 2 | compiled/ 3 | 4 | # common backups, autosaves, lock files, OS meta-files 5 | *~ 6 | \#* 7 | .#* 8 | .DS_Store 9 | *.bak 10 | TAGS 11 | *.swn 12 | *.swo 13 | *.swp 14 | # generated by pycket 15 | *.rkt.json -------------------------------------------------------------------------------- /issue_template.md: -------------------------------------------------------------------------------- 1 | ### What version of Racket are you using? 2 | 3 | ### What program did you run? 4 | 5 | ### What should have happened? 6 | 7 | ### If you got an error message, please include it here. 8 | -------------------------------------------------------------------------------- /source-syntax/info.rkt: -------------------------------------------------------------------------------- 1 | #lang info 2 | 3 | (define collection "syntax") 4 | 5 | (define deps '("base")) 6 | 7 | (define pkg-desc "find mappings from expanded to source syntax") 8 | 9 | (define pkg-authors '(samth stamourv eli)) 10 | 11 | (define version "1.1") 12 | 13 | (define license 14 | '(Apache-2.0 OR MIT)) 15 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed-scheme/main.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require typed/scheme/base) 4 | (provide (all-from-out typed/scheme/base)) 5 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed-scheme/no-check.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require racket/require typed/private/no-check-helper 4 | (subtract-in typed-scheme typed/private/no-check-helper)) 5 | (provide (all-from-out typed-scheme typed/private/no-check-helper)) 6 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed-scheme/no-check/lang/reader.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp syntax/module-reader 2 | 3 | typed-scheme/no-check 4 | 5 | #:read r:read 6 | #:read-syntax r:read-syntax 7 | 8 | (require (prefix-in r: typed-racket/typed-reader)) 9 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed/scheme.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require typed/scheme/base scheme/require (subtract-in scheme typed/scheme/base scheme/contract) 4 | (for-syntax scheme/base)) 5 | (provide (all-from-out typed/scheme/base scheme) 6 | (for-syntax (all-from-out scheme/base))) 7 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed/scheme/base/no-check.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require racket/require typed/private/no-check-helper 4 | (subtract-in typed/scheme/base typed/private/no-check-helper)) 5 | (provide (all-from-out typed/scheme/base typed/private/no-check-helper)) 6 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed/scheme/base/no-check/lang/reader.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp syntax/module-reader 2 | 3 | typed/scheme/base/no-check 4 | 5 | #:read r:read 6 | #:read-syntax r:read-syntax 7 | 8 | (require (prefix-in r: typed-racket/typed-reader)) 9 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed/scheme/no-check/lang/reader.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp syntax/module-reader 2 | 3 | typed/scheme/no-check 4 | 5 | #:read r:read 6 | #:read-syntax r:read-syntax 7 | 8 | (require (prefix-in r: typed-racket/typed-reader)) 9 | -------------------------------------------------------------------------------- /typed-racket-compatibility/typed/scheme/system.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp typed/private/wrap scheme/system 2 | -------------------------------------------------------------------------------- /typed-racket-doc/source-syntax/info.rkt: -------------------------------------------------------------------------------- 1 | #lang info 2 | 3 | (define scribblings '(("scribblings/source-syntax.scrbl" () (tool-library)))) 4 | -------------------------------------------------------------------------------- /typed-racket-doc/typed-racket/info.rkt: -------------------------------------------------------------------------------- 1 | #lang info 2 | 3 | (define scribblings '(("scribblings/ts-reference.scrbl" (multi-page) (language 4)) 4 | ("scribblings/ts-guide.scrbl" (multi-page) (language 5)))) 5 | -------------------------------------------------------------------------------- /typed-racket-lib/typed-racket/info.rkt: -------------------------------------------------------------------------------- 1 | #lang info 2 | 3 | (define release-note-files '(("Typed Racket" "HISTORY.txt"))) 4 | -------------------------------------------------------------------------------- /typed-racket-lib/typed-racket/rep/filter-rep.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/base 2 | 3 | (require "prop-rep.rkt") 4 | (provide (all-from-out "prop-rep.rkt")) 5 | -------------------------------------------------------------------------------- /typed-racket-lib/typed-racket/utils/promise-not-name-contract.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/base 2 | 3 | (require racket/contract 4 | racket/promise) 5 | (provide promise-not-name/c) 6 | (define (promise-not-name/c x) (and/c (promise/c x) (not/c promise/name?))) 7 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/file/md5.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | (require/typed file/md5 3 | [md5 (case-> [(U Input-Port Bytes String) -> Bytes] 4 | [(U Input-Port Bytes String) Boolean -> Bytes])]) 5 | (provide md5) 6 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/private/utils.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (define-syntax-rule (dt nm t) 4 | (begin (define-type-alias nm t) (provide nm))) 5 | 6 | (provide dt) 7 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/private/wrap.rkt: -------------------------------------------------------------------------------- 1 | #lang racket 2 | 3 | (define-syntax (mb stx) 4 | (syntax-case stx () 5 | [(_ id) 6 | #'(#%plain-module-begin 7 | (require id) 8 | (provide (all-from-out id)))])) 9 | 10 | (provide (rename-out [mb #%module-begin])) 11 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/racket/base/no-check.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require racket/require typed/private/no-check-helper typed/racket/no-check 4 | (subtract-in typed/racket/base typed/private/no-check-helper)) 5 | (provide (all-from-out typed/racket/base typed/racket/no-check typed/private/no-check-helper)) 6 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/racket/base/no-check/lang/reader.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp syntax/module-reader 2 | 3 | typed/racket/base/no-check 4 | 5 | #:read r:read 6 | #:read-syntax r:read-syntax 7 | 8 | (require (prefix-in r: typed-racket/typed-reader)) 9 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/racket/class.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/base 2 | 3 | (require racket/require 4 | (subtract-in racket/class 5 | typed-racket/base-env/class-prims) 6 | typed-racket/base-env/class-prims) 7 | 8 | (provide (all-from-out typed-racket/base-env/class-prims) 9 | (all-from-out racket/class)) 10 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/racket/no-check.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require racket/require typed/private/no-check-helper 4 | (subtract-in typed/racket typed/private/no-check-helper) 5 | (for-syntax racket/base)) 6 | (provide (all-from-out typed/racket typed/private/no-check-helper) 7 | (for-syntax (all-from-out racket/base))) 8 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/racket/no-check/lang/reader.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp syntax/module-reader 2 | 3 | typed/racket/no-check 4 | 5 | #:read r:read 6 | #:read-syntax r:read-syntax 7 | 8 | (require (prefix-in r: typed-racket/typed-reader)) 9 | -------------------------------------------------------------------------------- /typed-racket-lib/typed/racket/system.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp typed/private/wrap racket/system 2 | -------------------------------------------------------------------------------- /typed-racket-more/typed/db.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (define-syntax (require/provide stx) 4 | (syntax-case stx [] 5 | [(_ db.rkt ...) 6 | #'(begin (provide (all-from-out db.rkt)) ... 7 | (require db.rkt) ...)])) 8 | 9 | (require/provide "db/base.rkt" 10 | "db/sqlite3.rkt") 11 | -------------------------------------------------------------------------------- /typed-racket-more/typed/file/convertible.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require (only-in file/convertible 4 | prop:convertible)) 5 | (provide prop:convertible) 6 | -------------------------------------------------------------------------------- /typed-racket-more/typed/framework/framework.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require typed/framework) 4 | (provide (all-from-out typed/framework)) 5 | -------------------------------------------------------------------------------- /typed-racket-more/typed/mred/mred.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require typed/racket/gui/base) 4 | (provide (all-from-out typed/racket/gui/base)) 5 | -------------------------------------------------------------------------------- /typed-racket-more/typed/mrlib/panel-wob.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require/typed mrlib/panel-wob 4 | [white-on-black-panel-scheme? 5 | (-> Boolean)]) 6 | 7 | (provide white-on-black-panel-scheme?) 8 | -------------------------------------------------------------------------------- /typed-racket-more/typed/mzlib/pconvert-prop.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | (require mzlib/pconvert-prop) 3 | 4 | (provide prop:print-converter) 5 | (provide prop:print-convert-constructor-name) 6 | -------------------------------------------------------------------------------- /typed-racket-more/typed/net/cookies.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require "cookies/server.rkt" 4 | "cookies/common.rkt") 5 | 6 | (provide (all-from-out "cookies/server.rkt") 7 | (all-from-out "cookies/common.rkt")) 8 | -------------------------------------------------------------------------------- /typed-racket-more/typed/net/gifwrite.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require typed/file/gif) 4 | (provide (all-from-out typed/file/gif)) 5 | -------------------------------------------------------------------------------- /typed-racket-more/typed/net/url-connect.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require typed/openssl 4 | typed/openssl/types) 5 | 6 | (require/typed/provide 7 | net/url-connect 8 | [current-https-protocol (Parameterof (U SSL-Client-Context SSL-Protocol))]) 9 | -------------------------------------------------------------------------------- /typed-racket-more/typed/openssl/md5.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require/typed/provide openssl/md5 4 | [md5 (-> Input-Port String)] 5 | [md5-bytes (-> Input-Port Bytes)] 6 | ) 7 | -------------------------------------------------------------------------------- /typed-racket-more/typed/openssl/sha1.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require/typed/provide openssl/sha1 4 | [sha1 (-> Input-Port String)] 5 | [sha1-bytes (-> Input-Port Bytes)] 6 | [bytes->hex-string (-> Bytes String)] 7 | [hex-string->bytes (-> String Bytes)] 8 | ) 9 | -------------------------------------------------------------------------------- /typed-racket-more/typed/racket/extflonum.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (provide (all-from-out racket/extflonum) 4 | (rename-out [for/extflvector: for/extflvector] 5 | [for*/extflvector: for*/extflvector])) 6 | 7 | (require (except-in racket/extflonum for/extflvector for*/extflvector)) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-more/typed/racket/fasl.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require/typed/provide 4 | racket/fasl 5 | [s-exp->fasl (case-> [-> Any Bytes] 6 | [-> Any Output-Port Void])] 7 | [fasl->s-exp (-> (U Input-Port Bytes) Any)]) 8 | -------------------------------------------------------------------------------- /typed-racket-more/typed/racket/flonum.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (provide (all-from-out racket/flonum) 4 | (rename-out [for/flvector: for/flvector] 5 | [for*/flvector: for*/flvector])) 6 | 7 | (require (except-in racket/flonum for/flvector for*/flvector)) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-more/typed/racket/gui/no-check.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-racket/minimal 2 | 3 | (require racket/require typed/private/no-check-helper 4 | (subtract-in typed/racket/gui typed/private/no-check-helper)) 5 | (provide (all-from-out typed/racket/gui typed/private/no-check-helper)) 6 | -------------------------------------------------------------------------------- /typed-racket-more/typed/racket/gui/no-check/lang/reader.rkt: -------------------------------------------------------------------------------- 1 | #lang s-exp syntax/module-reader 2 | 3 | typed/racket/gui/no-check 4 | 5 | #:read r:read 6 | #:read-syntax r:read-syntax 7 | 8 | (require (prefix-in r: typed-racket/typed-reader)) 9 | -------------------------------------------------------------------------------- /typed-racket-more/typed/racket/os.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require/typed/provide 4 | racket/os 5 | [gethostname (-> String)] 6 | [getpid (-> Integer)]) 7 | -------------------------------------------------------------------------------- /typed-racket-test/external/fail/define-new-subtype.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: Radians.*given: Degrees") 3 | #lang typed/racket/base 4 | 5 | (require "../succeed/define-new-subtype.rkt") 6 | 7 | (sin (degrees 0)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/external/fail/dummy.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | (ann 42 String) 3 | -------------------------------------------------------------------------------- /typed-racket-test/external/succeed/pr11425.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/load 2 | 3 | (module sgn-exporter typed/racket/base 4 | (require/typed 5 | racket/math 6 | [sgn (Integer -> Fixnum)]) 7 | (provide (all-defined-out))) 8 | 9 | (module sgn-importer typed/racket/base 10 | (require racket/math 'sgn-exporter)) 11 | 12 | (require 'sgn-exporter) 13 | -------------------------------------------------------------------------------- /typed-racket-test/external/succeed/shallow-in-array.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/shallow 2 | 3 | ;; Use 'in-array' 4 | ;; inspired by jpeg benchmark 5 | 6 | 7 | (require (only-in math/array in-array Array)) 8 | 9 | (: read-dct-scan (-> (Array Integer) Void)) 10 | (define (read-dct-scan dest) 11 | (for ((mcu (in-array dest))) 12 | (void))) 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/arity-mismatch-struct.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #px"expected: 2\\s+given: 1") 3 | #lang typed/racket/base 4 | (struct (A B) foo ()) 5 | (define-type (F a) (foo a)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/assert-typecheck-fail.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | 6 | (assert-typecheck-fail 7 | (+ 1 2)) 8 | (ann (assert-typecheck-fail 9 | (+ 3 4) 10 | #:result 42) 11 | Number) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/assoc-with-is-equal-argument.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (: equal-string-length (→ String String Boolean)) 4 | (define (equal-string-length s1 s2) 5 | (= (string-length s1) (string-length s2))) 6 | 7 | (assoc 123 8 | '(("bb" . 1) ("c" . 2) ("ddd" . 3)) 9 | equal-string-length) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/scheme 4 | 5 | 6 | (: f : Number -> Number) 7 | (define (f a b) 8 | (+ a b)) 9 | 10 | (define: (g [a : Number] [b : Number]) : Number 11 | (+ a b)) 12 | 13 | (f 1 2) 14 | (g 1 2) 15 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-any.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme/load 4 | 5 | (module m typed-scheme 6 | (: f Any) 7 | (define f (lambda: ([x : Number]) (add1 x))) 8 | (provide f)) 9 | 10 | (module n scheme 11 | (require 'm) 12 | (f "foo")) 13 | 14 | (require 'n) 15 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-first.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-scheme 2 | (require scheme/list) 3 | (first (cons 1 2)) 4 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-prop-procedure1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: Procedure\n.*given: String") 3 | #lang typed/racket/base 4 | (struct some-struct1 ([a : String] [b : (-> Number Number)]) #:property prop:procedure 0) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-prop-procedure2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"index too large\n.*index: 3\n.*maximum allowed index: 1") 3 | #lang typed/racket/base 4 | (struct some-struct1 ([a : String] [b : (-> Number Number)]) #:property prop:procedure 3) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-prop-procedure3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: a nonnegative integer literal or an annotated lambda") 3 | #lang typed/racket/base 4 | (struct some-struct1 ([a : String] [b : (-> Number Number)]) #:property prop:procedure -1) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-prop-procedure4.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: a nonnegative integer literal or an annotated lambda") 3 | #lang typed/racket/base 4 | (struct some-struct1 ([a : String] [b : (-> Number Number)]) #:property prop:procedure (+ 10 20)) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-prop-procedure8.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"type mismatch.*expected: \\(-> adder Number Number\\).*given: String") 3 | #lang typed/racket/base 4 | 5 | (struct adder ([num : Number]) 6 | #:property prop:procedure 7 | (ann "hello" 8 | (-> adder Number Number))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-prop-procedure9.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx".*expected: Number\n.*given: Any") 3 | 4 | #lang typed/racket/base 5 | 6 | (struct adder^ ([num : Number]) 7 | #:property prop:procedure 8 | (λ ([this : adder^]) 9 | (+ (adder^-num this) 21))) 10 | 11 | (add1 ((adder^ 42))) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-struct-prop.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred " Type Checker: type mismatch") 3 | #lang typed/racket 4 | (struct foo ([x : Number]) #:property prop:custom-write 5 | (lambda ([n : Number] [p : Output-Port] [m : (U Boolean 0 1)]) : Void 6 | (displayln (+ 10 20)))) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-struct-prop1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred " Type Checker: type mismatch") 3 | #lang typed/racket 4 | (struct foo ([x : Number])) 5 | 6 | (struct dummy ([y : Number]) #:property prop:custom-write 7 | (lambda ([self : dummy] [p : Output-Port] [m : (U Boolean 0 1)]) : Void 8 | (displayln (+ (foo-x self) 20)))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-struct-prop2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred " Type Checker: type mismatch") 3 | #lang typed/racket 4 | (struct foo^ ([x : Number]) #:property prop:custom-write 10) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-struct-prop3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred " Type Checker: parse error in type") 3 | #lang typed/racket 4 | (struct (X) foo ([a : X]) #:property prop:custom-write (λ ([self : foo] [p : Output-Port] [m : (U 0 1 Boolean)]) 5 | (display 'ha))) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bad-struct-top.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | ;; Make sure `Struct` constructor rejects bad arguments 6 | (: x (Struct Integer)) 7 | (define x 3) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/bind-anyvalues.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (define a (eval 0)) 3 | -------------------------------------------------------------------------------- /typed-racket-test/fail/box-fail.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-scheme 2 | 3 | (let: ([x : (Boxof Number) (box "foo")]) x) 4 | 5 | (let () 6 | (: x (Boxof Number)) 7 | (define x (box "foo")) 8 | x) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/case-lambda1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/racket 4 | (: f (case-> 5 | (Symbol Symbol * -> Integer) 6 | (Symbol * -> Symbol))) 7 | (define f (case-lambda 8 | ((x . y) 4) 9 | (w 'x) 10 | )) 11 | 12 | ((ann f (Symbol * -> Symbol)) 'x) 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/case-lambda2.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (: f (case-> 3 | (Symbol -> Symbol) 4 | (Symbol Symbol -> Symbol))) 5 | (define f (case-lambda 6 | ((x) x) 7 | (w w) 8 | ((x y) x) 9 | )) 10 | 11 | (f 'x 'y) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/case-lambda3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/racket 4 | 5 | 6 | (: f (case-> 7 | (String -> String) 8 | (String String -> String) 9 | (String Symbol * -> String))) 10 | (define f 11 | (case-lambda 12 | ((x) x) 13 | ((x y) y) 14 | ((x . w) x))) 15 | 16 | (f "x" 'y) 17 | -------------------------------------------------------------------------------- /typed-racket-test/fail/case-lambda4.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/racket 4 | 5 | 6 | (: f (case-> 7 | (Symbol * -> String))) 8 | (define f 9 | (case-lambda 10 | ((x . w) "hello"))) 11 | 12 | (f 'x 'y) 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cast-mod1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx".*produced: 3" #rx".*promised: string?.*" #rx"6\\:0") 3 | 4 | #lang typed/racket/base 5 | 6 | (cast 3 String) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cast-mod2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx".*produced: 3" #rx".*promised: string?.*" ) 3 | 4 | #lang typed/racket/base 5 | 6 | ((cast (lambda () 3) (-> String))) 7 | 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cast-mod3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx".*free variables.*") 3 | 4 | #lang typed/racket/base 5 | 6 | (: f (All (a) (Number -> a))) 7 | (define (f x) (cast x a)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cast-top-level1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx".*could not be converted.*") 3 | 4 | #lang racket/load 5 | 6 | (require typed/racket) 7 | 8 | (cast 2 (All (a) (Ephemeronof a))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cast-top-level2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx"free variables") 3 | 4 | #lang racket/load 5 | 6 | (require typed/racket/base) 7 | 8 | (define: (a) (f (x : Number)) : a 9 | (cast x a)) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cast-tyvar.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? 3 | #rx"Type \\(List X\\) could not be converted to a contract" 4 | #rx"contains free variables" 5 | #rx"10.8") 6 | 7 | #lang typed/racket 8 | (: f : (All (X) (-> X X))) 9 | (define (f x) 10 | (cast (list x) Any) 11 | x) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/check-expect-fail.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/scheme 2 | 3 | (require typed/test-engine/scheme-tests) 4 | (check-expect 3 (+ 1 'foo)) 5 | 6 | (test) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cl-bug.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-scheme 2 | 3 | (: f3 (case-lambda (Integer * -> Integer) (Number * -> Number))) 4 | (define (f3 x y) (+ x y)) 5 | 6 | (: f2 (case-lambda (Number * -> Number))) 7 | (define (f2 x y) (+ x y)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/cross-module-type-constructor.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | (module mod-a typed/racket/base 3 | (provide (all-defined-out)) 4 | (struct (A) Foo ([a : A]))) 5 | 6 | (require 'mod-a) 7 | (ann (Foo 10) Foo) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/define-values-bottom.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "runtime") 3 | #lang typed/racket 4 | 5 | ;; Make sure -Bottom and multiple values play nice together at the module level. 6 | (define-values (a b) 7 | (error 'runtime)) 8 | 9 | b 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/define-zero-values.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (define-values () (+ 1 "x")) 4 | -------------------------------------------------------------------------------- /typed-racket-test/fail/div-0-complex.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "division by zero") 3 | #lang typed/racket 4 | 5 | ;; float-complex opts should not make div-by-0 errors go away 6 | (* (/ (make-rectangular +inf.f -1.3086925781062948e-124) 7 | (exp 2) 8 | (bitwise-and (exact-round -3/11))) 9 | -4.880003479031522e-08) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/div-0-complex2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "division by zero") 3 | #lang typed/racket 4 | 5 | ;; float-complex opts should not make div-by-0 errors go away 6 | (* (/ 1.0+1.0i (ann 0 Integer) (ann 0 Integer)) -4.880003479031522e-08) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/dviu-not-a-unit.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"type mismatch") 3 | #lang typed/racket 4 | 5 | (define-values/invoke-unit 1 (import) (export)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/dviu-not-subtype.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"type mismatch") 3 | #lang typed/racket 4 | 5 | (define-signature x-sig ([x : Integer])) 6 | (define-signature x-sub extends x-sig ([xx : Integer])) 7 | 8 | (define u (unit (import) (export x-sig) (define x 1))) 9 | 10 | (define-values/invoke-unit u (import) (export x-sub)) 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/exported-struct-id-not-type.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "type name `fruit' is unbound") 3 | #lang typed/racket/base 4 | 5 | (module mod1 typed/racket/base 6 | (provide (all-defined-out)) 7 | (struct fruit () #:type-name Fruit)) 8 | 9 | (require 'mod1) 10 | (ann (fruit) fruit) 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/for-multiple-annotations.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "bad syntax") 3 | #lang typed/racket/base 4 | 5 | (for: : Void : Void ((i 5)) 6 | (displayln i)) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/for-result-bad-ann-1.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (for/lists : (Values (Listof Integer) (Listof Integer)) 3 | ([l1 : (Listof Integer)] 4 | [l2 : (Listof Integer)] 5 | #:result (+ (length l1) (length l2))) 6 | ([x (in-range 3)]) 7 | (values x x)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/for-result-bad-ann-2.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (for*/lists : (Values (Listof Integer) (Listof Integer)) 3 | ([l1 : (Listof Integer)] 4 | [l2 : (Listof Integer)] 5 | #:result (append l1 l2)) 6 | ([x (in-range 3)]) 7 | (values x x)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/for-result-bad-ann-3.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (for/fold : Integer 3 | ([x : Integer 0] 4 | #:result (number->string x)) 5 | ([y (in-range 3)]) 6 | (+ x y)) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/for-result-bad-ann-4.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (for*/fold : (Values Integer Integer) 3 | ([x : Integer 0] 4 | [y : Integer 0] 5 | #:result (+ x y)) 6 | ([i (in-range 3)] 7 | [j (in-range 3)]) 8 | (values (+ x i) (+ y i j))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/for-vector-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 3) 3 | #lang typed/racket 4 | 5 | (for/vector : (Immutable-Vectorof Any) ([x (in-list '())]) x) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-1007.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred " Type Checker: Polymorphic function `sort' could not be applied to arguments") 3 | #lang typed/racket #:no-delay-errors 4 | 5 | (sort (list (cons 10 20) (cons 20 30)) <=) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-1011.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/racket 4 | 5 | (struct root ([p : Integer] [q : Integer]) 6 | #:property prop:custom-write 7 | (λ ([me : Integer] [port : Output-Port] mode) : Void 8 | (void))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-1014.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx".*duplicate type variable.*") 3 | #lang typed/racket 4 | (define-syntax-rule (def id vars ...) 5 | (begin 6 | (: id (All (vars ... a) (-> vars ... a a))) 7 | (define (id vars ... a) a))) 8 | 9 | 10 | (def f a) 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-1041.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: \\(Prefab container String\\).*given: \\(Prefab container Positive-Byte\\)") 3 | #lang typed/racket/base 4 | 5 | (define val '#s(container 10)) 6 | (struct container 7 | ([value : String]) 8 | #:prefab) 9 | (ann val container) 10 | 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-271.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"could not be converted") 3 | #lang racket/load 4 | 5 | ;; Tests that p? cannot be generated 6 | 7 | (require typed/racket) 8 | 9 | (define-predicate p? (All (A) (Listof A))) 10 | 11 | (let () 12 | (: x (U (Listof Integer) Integer)) (define x '(1 2 3)) 13 | (if (p? x) 0 (add1 x))) 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-293.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"type mismatch.*expected: Procedure.*given: String") 3 | #lang typed/racket 4 | 5 | (define-struct/exec foo ([x : Integer]) ["foo" : String]) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-342.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | (: f (case→ (→ (→ (Values Any Any)) Any) 6 | (→ 'sym Any))) 7 | (define (f g) (g)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-862.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pre #rx"expected: Number.*given: \\(Listof Number\\)") 3 | #lang typed/racket 4 | 5 | (define (f [a : Integer 1] b : Integer *) 6 | (cons a b)) 7 | 8 | (add1 (cdr (f 1 2))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh-issue-944.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "Domain: String String *") 3 | #lang typed/racket 4 | 5 | (: f (-> String String * String)) 6 | (define (f . xs) 7 | (apply string-append xs)) 8 | ;(f "c" "d" "e" "f") ; succeeds 9 | (apply f "c" 1) ; typecheck fail 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh112.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (ann 4 | (let ([x : Flonum -5.0]) 5 | (if (< x (ann +nan.0 Positive-Flonum)) 6 | 1.0 7 | x)) 8 | Positive-Flonum) ; -5 is *not* positive 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/gh56.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (: f (Number [#:y Boolean] -> Number)) 4 | (define (f x #:y [y #f] #:z [z 'this-can-be-anything]) 5 | (if y "y is truthy" x)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/hash-union.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (require racket/hash) 3 | (hash-union (make-hash) (make-hash) #:combine (lambda (a b) a)) 4 | -------------------------------------------------------------------------------- /typed-racket-test/fail/heterogeneous-immutable-vector-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"given: \\(Immutable-Vector One\\)") 3 | #lang typed/racket 4 | 5 | (ann '#(1) (Mutable-Vector Real)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/heterogeneous-mutable-vector-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"given: \\(Mutable-Vector Integer\\)") 3 | #lang typed/racket 4 | 5 | (ann (vector 1) (Immutable-Vector Real)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/heterogeneous-vector-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | (ann (vector (ann 1 Symbol)) (Vector Number Symbol)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/immutable-vector-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"given: \\(Immutable-Vector One\\)") 3 | #lang typed/racket 4 | 5 | (ann (vector-immutable 1) (Mutable-Vector Real)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/immutable-vectorof-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"given: \\(Immutable-Vector One\\)") 3 | #lang typed/racket 4 | 5 | (ann '#(1) (Mutable-Vectorof Real)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/inexact-complex.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/scheme 4 | 5 | (ann 1+2i Inexact-Complex) 6 | 7 | (: f (Real -> Inexact-Complex)) 8 | (define (f x) 9 | (* x 2.0)) ; x can be exact 0 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/internal-ann.rkt: -------------------------------------------------------------------------------- 1 | 2 | #lang typed/scheme/base 3 | 4 | (define (f x) 5 | (: g (Integer -> Integer)) 6 | (define (g x) 7 | (+ x 2)) 8 | (g x)) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/issue-169-1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: \\(Listof Nothing\\).*given: \\(Listof Pos\\*\\)") 3 | #lang typed/racket 4 | (define-type Pos Integer) 5 | (define-new-subtype Pos* (p Pos)) 6 | (define lst 7 | (for*/list ([x (in-range 3)]) : (Listof Pos*) 8 | (p x))) 9 | (ann lst (Listof Nothing)) ; this should fail 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/issue-169-2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: \\(Listof Nothing\\).*given: \\(Listof Pos\\*\\)") 3 | #lang typed/racket 4 | (define-type Pos Integer) 5 | (define-new-subtype Pos* (p Pos)) 6 | (define lst : (Listof Pos*) 7 | '()) 8 | (define lst* 9 | (reverse lst)) 10 | (ann lst* (Listof Nothing)) ; this should fail 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/issue-215-2.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | 4 | (ann (let ((x 'b)) 5 | (if (equal? x 'a) 6 | 42 7 | "foo")) Number) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/issue-215.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "match:") 3 | #lang typed/racket 4 | (ann (match '(b) [(list 'a) 42]) Number) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/let-internal-nameleak.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx"let: expected identifier") 3 | #lang typed/racket 4 | (let ([() 5]) (void)) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/log-not-complex.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/scheme 4 | 5 | (ann (log 2.0) Inexact-Complex) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/make-predicate-mod1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx".*could not be converted to a predicate.*") 3 | 4 | #lang typed/racket/base 5 | 6 | (make-predicate (Number -> Number)) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/make-predicate-mod2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx".*free variables.*") 3 | 4 | #lang typed/racket/base 5 | 6 | (: f (All (a) (Number -> (Any -> Boolean : a)))) 7 | (define (f x) (make-predicate a)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/make-predicate-top-level1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx".*could not be converted to a predicate.*") 3 | 4 | #lang racket/load 5 | (require typed/racket/base) 6 | 7 | (make-predicate (Number -> Number)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/make-predicate-top-level2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx"free variables") 3 | 4 | #lang racket/load 5 | (require typed/racket/base) 6 | 7 | (: f (All (a) (Number -> (Any -> Boolean : a)))) 8 | (define (f x) (make-predicate a)) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/mandatory-kw.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Type Checker") 3 | #lang typed/racket 4 | 5 | ;; This should raise a type error and not an internal error 6 | 7 | (: f (#:foo False -> False)) 8 | (define (f #:foo foo) foo) 9 | 10 | ;; bad call that's missing a mandatory keyword 11 | (f) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/match-hash-pattern.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (match (hash 1 "2" 3 "4") 4 | [(hash* [1 #{x : String} #:default #f] [3 #{y : String}]) 5 | (list x y)]) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/member-with-is-equal-argument.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (: equal-string-length (→ String String Boolean)) 4 | (define (equal-string-length s1 s2) 5 | (= (string-length s1) (string-length s2))) 6 | 7 | (member 123 8 | '("bb" "c" "ddd") 9 | equal-string-length) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/missing-rest-arguments.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | (: f (Symbol Symbol * -> Symbol)) 6 | (: g (All (A ...) (Symbol A ... A -> Symbol))) 7 | (define (f x y) x) 8 | (define (g x y) x) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/multiple-annotations-define.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1 "Body had type:.*Variable had type:.*") 3 | #lang typed/racket 4 | 5 | 6 | (: a Integer) 7 | (: b String) 8 | (define-values (a b c) (values 1 2 3)) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/mutable-vector-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"given: \\(Mutable-Vector Integer\\)") 3 | #lang typed/racket 4 | 5 | (ann (vector 1) (Immutable-Vector Real)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/mutable-vectorof-bad-ann.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"given: \\(Mutable-Vector Integer\\)") 3 | #lang typed/racket 4 | 5 | (ann (vector 1) (Immutable-Vectorof Real)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/nested-tvars.rkt: -------------------------------------------------------------------------------- 1 | #lang typed-scheme 2 | 3 | (: f (All (a) (a -> a))) 4 | (define (f x) 5 | (: g (All (b) (a (Listof a) -> (Listof a)))) 6 | (define (g x y) y) 7 | (g "foo" (list "foo"))) 8 | 9 | (f 3) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/no-setters-for-built-in-structs.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"missing type for top-level") 3 | #lang racket/load 4 | 5 | ;; Test that built-in struct fields don't have types for setters 6 | 7 | (require typed/racket/base) 8 | set-date-second! 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/non-portable-fixnum-singleton.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax?) 3 | #lang typed/racket 4 | ;; singleton types for values who runtime type depends is platform-dependent are unsafe 5 | ;; PR13501 6 | (define: z : 10000000000000 10000000000000) 7 | 8 | (ann (if (and #t (fixnum? z)) z 0) (U 0 1)) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/non-productive-rec.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | 4 | #lang typed/racket/base 5 | (define-type Hole (Rec Hole (U Number Hole))) 6 | (ann "aaa" Hole) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/nonnegative-float.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/scheme 4 | 5 | (ann (- 1.0 0.5) Nonnegative-Float) ; can't prove it's nonnegative 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/optional/cast-top-level2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx"free variables") 3 | 4 | #lang racket/load 5 | 6 | (require typed/racket/base/optional) 7 | 8 | (define: (a) (f (x : Number)) : a 9 | (cast x a)) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/optional/poly-bad-0.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"car") 3 | 4 | #lang typed/racket/base/optional 5 | 6 | (require/typed racket/base 7 | (cdr (All (A) A))) 8 | 9 | (let ((v : (Pairof String String) 10 | (inst cdr (Pairof String String)))) 11 | (car v)) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/optional/poly-bad-2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"car") 3 | 4 | #lang typed/racket/base/optional 5 | 6 | (require/typed racket/base 7 | (cdr (All (A) (-> A A)))) 8 | 9 | (let ((v : (Pairof String String) 10 | ((inst cdr (Pairof String String)) '("A" . "B")))) 11 | (car v)) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/optional/predicate.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"could not be converted") 3 | #lang typed/racket/optional 4 | (define-predicate p? (All (A) (Listof A))) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/optional/with-type1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | (require typed/racket/optional) 5 | 6 | ((with-type #:result (Number -> Number) 7 | (lambda: ([x : Number]) (add1 x))) 8 | #f) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/optional/with-type2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | 5 | (require typed/racket/optional) 6 | 7 | (let ([x 'hello]) 8 | (with-type 9 | #:result String 10 | #:freevars ([x String]) 11 | (string-append x ", world"))) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/plambda-dup-tvar.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax?) 3 | #lang typed/racket 4 | 5 | ;; don't allow duplicate type variable names 6 | 7 | (plambda: (a a a) ([x : a]) x) 8 | (popt-lambda: (a a a) ([x : a]) x) 9 | (pcase-lambda: (a a a) ([x : a]) x) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/poly-dup-name.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"duplicate type variable") 3 | #lang typed/racket 4 | 5 | ;; don't allow duplicate type variable names 6 | 7 | (: f (All (A A) (A -> (List A)))) 8 | (define (f a) (list a)) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/poly-expect-error.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "Boolean") 3 | #lang typed-scheme 4 | 5 | (: f (All (A) (case-lambda (String -> Boolean) (A -> Boolean)))) 6 | (define (f x) #t) 7 | 8 | (: x Number) 9 | (define x (f 3)) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/poly-struct-parent.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (define-struct: (A) Box ([value : A])) 4 | (define-struct: (A) (Child-Box Box) ()) 5 | 6 | 7 | (ann (Box-value (Child-Box 'sym)) Nothing) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/poly-struct-parent2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | ("Could not instantiate parent struct type") 3 | #lang typed/racket 4 | 5 | (define-struct: (A) Box ([value : A])) 6 | (define-struct: (Child-Box Box) ()) 7 | 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/poly-struct-parent3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | ("Could not instantiate parent struct type") 3 | #lang typed/racket 4 | 5 | (define-struct: (A B) Box ([value : A] 6 | [other : B])) 7 | (define-struct: (C) (Child-Box Box) ()) 8 | 9 | 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/polydots-dup-name.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"duplicate type variable or index") 3 | #lang typed/racket 4 | 5 | ;; don't allow duplicate names in indexes and tvars 6 | 7 | (: f (All (A A ...) (A A ... A -> (List A ... A)))) 8 | 9 | (define (f a . xs) 10 | (map (λ: ([x : A]) a) xs)) 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/polymorphic-recursion-2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"cannot be applied at a different type") 3 | #lang typed/racket 4 | 5 | ;; Polymorphic recursion should fail 6 | 7 | (define-type (Foo A) (Listof (Foo (Listof A)))) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/port-to-list.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | (car (car 3 | (parameterize ((current-input-port (open-input-string "2"))) 4 | ((inst port->list (List Number)))))) 5 | 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr10937.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"bad syntax in type application: expected a type constructor") 3 | #lang typed/scheme 4 | 5 | 6 | 7 | (define-type T+ 8 | (All (elem) 9 | (U (A elem)))) 10 | 11 | (define-type T 12 | (All (elem) 13 | (U (T+ elem) 2))) 14 | 15 | (define-struct: (x) A ()) 16 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr11560.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | (ann (ann 5 Real) Integer) 3 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr11901.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected a valid type not a type constructor") 3 | #lang typed/racket/base 4 | (define-type (adder lhs rhs) (lhs rhs -> Number)) 5 | (define-struct: (lhs rhs) adder-box ((a : adder))) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr11998.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/load 2 | (module p typed/racket 3 | (struct: (a) p ((v : a))) 4 | (provide p p-v)) 5 | 6 | (module p2 typed/racket 7 | (struct: (a) p ((v : a))) 8 | (provide p)) 9 | 10 | 11 | (module m typed/racket 12 | (require (only-in 'p p-v) 'p2) 13 | (p-v (p 0))) 14 | 15 | (require 'm) 16 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr12706.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | (: foo (Nonnegative-Float -> Nonnegative-Float)) 6 | (define (foo x) 7 | (cond [(> x 0.0) 1.0] 8 | [else (ann x String)])) 9 | 10 | (foo 0.0) 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr12985.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket/base 4 | 5 | (define-type T (Rec T (U (Pair String T) (Pair Char T)))) 6 | (define-type S (Rec S (Pair (U String Char) S))) 7 | 8 | (: f (S -> S)) 9 | (: g (T -> T)) 10 | 11 | (define (f x) (cons "string" (cons #\a x))) 12 | (define g f) 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13218.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (: sum ((Listof Flonum) -> Flonum)) 4 | (define (sum ws) (apply + ws)) 5 | 6 | (ann (sum '()) Flonum) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13233-2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: One") 3 | #lang typed/racket 4 | 5 | ;; test odd? filter 6 | 7 | (: foo (Integer -> String)) 8 | (define (foo n) 9 | (if (odd? n) 10 | "dummy" 11 | (o n))) 12 | 13 | (: o (One -> String)) 14 | (define (o x) "dummy") 15 | 16 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13233-3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: Zero") 3 | #lang typed/racket 4 | 5 | ;; test even? filter 6 | 7 | (: foo (Integer -> String)) 8 | (define (foo n) 9 | (if (even? n) 10 | "dummy" 11 | (z n))) 12 | 13 | (: z (Zero -> String)) 14 | (define (z x) "dummy") 15 | 16 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13233-4.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: One") 3 | #lang typed/racket 4 | 5 | ;; test even? filter 6 | 7 | (: foo (Integer -> String)) 8 | (define (foo n) 9 | (if (even? n) 10 | (o n) 11 | "dummy")) 12 | 13 | (: o (One -> String)) 14 | (define (o x) "dummy") 15 | 16 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13233.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "expected: Zero\n given:") 3 | #lang typed/racket 4 | 5 | ;; test odd? filter 6 | 7 | (: foo (Integer -> Zero)) 8 | (define (foo n) 9 | (if (odd? n) 10 | 0 11 | n)) 12 | 13 | (: ZERO Zero) 14 | (define ZERO (foo 2)) 15 | 16 | ZERO 17 | 18 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13289.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"fail.pr13289.rkt:9:10:.*in: Natural") 3 | #lang typed/racket 4 | 5 | ;; This test ensures that the error message for misuse of 6 | ;; type names has a source location and reports with the correct 7 | ;; syntax 8 | 9 | (assert 2 Natural) 10 | 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13365-variation-1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: 0 values and `a ...'") 3 | #lang typed/racket 4 | 5 | (: f (All (a ...) (a ... a -> (Values a ... a)))) 6 | (define (f . x) x) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13365-variation-2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: 1 value and `a ...'\n given: 1 value") 3 | #lang typed/racket 4 | 5 | (: f (All (a ...) (a ... a -> (Values String a ... a)))) 6 | (define (f . x) x) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13365-variation-3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"mismatch in.*a ...") 3 | #lang typed/racket 4 | 5 | (: f (All (a ...) (a ... a -> (Values a ... a)))) 6 | (define (f . x) (values 1)) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13365.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: 0 values and `a ...'") 3 | #lang typed/racket 4 | 5 | (: f (All (a ...) (a ... a -> (Values a ... a)))) 6 | (define f (lambda: (x : a ... a) x)) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13446.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"blaming: top-level") 3 | #lang racket/load 4 | 5 | (module a typed/racket 6 | (provide p) 7 | (: p (Parameterof String Index)) 8 | (define p (make-parameter 0 string-length))) 9 | 10 | (require 'a) 11 | (p 0) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13526.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Expected result: AnyValues") 3 | 4 | #lang typed/racket 5 | 6 | (map "hello" "world") 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13562.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"struct:: expected one of these literals") 3 | 4 | #lang typed/racket 5 | 6 | ;; Check that #:methods is ruled out 7 | (struct: foo ([a : Integer]) #:methods gen:dict []) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13577.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: Integer") 3 | 4 | #lang typed/racket 5 | 6 | (for/sum ([k (in-naturals)]) 7 | (/ 1 (* k k))) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13588.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"identifier bound to a structure type") 3 | #lang typed/racket/base 4 | (require/typed racket/async-channel 5 | [#:struct (async-channel +) ()]) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13746.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Procedure could not be converted to a predicate") 3 | #lang typed/racket 4 | 5 | (define-predicate A? Procedure) 6 | 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr13815.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred (regexp-quote "Type (All (a) Flonum) could not be converted to a contract")) 3 | #lang typed/racket 4 | (require/typed racket/base [list (All (a) Float)]) 5 | (* 3.3 list) 6 | 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14144.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: 'foo\n given: 'bar") 3 | #lang racket/load 4 | 5 | ;; Test for PR 14144 6 | ;; Make sure that the second definition is checked 7 | ;; against the synthesized type for the first definition 8 | 9 | (require typed/racket) 10 | 11 | (define x 'foo) 12 | (define x 'bar) 13 | 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14173.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "use a higher-order value") 3 | #lang racket 4 | 5 | (module t typed/racket #:no-optimize 6 | (provide f g) 7 | 8 | (define f (ann (case-lambda [() (add1 "hello")] [(x) x]) (Number -> Number))) 9 | (define g (ann f Any))) 10 | 11 | (require 't) 12 | (f 1) 13 | (g) -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14246-2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Type Checker: Declaration for `n' provided, but `n' has no definition") 3 | #lang typed/racket 4 | 5 | ;; Similar to pr14246.rkt, but for local definitions 6 | (: foo : Number -> Number) 7 | (define (foo a) 8 | (: n : Number) 9 | (: i : Integer) 10 | (: s : String) 11 | a) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14246.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Type Checker: Declaration for `n' provided, but `n' has no definition") 3 | #lang typed/racket 4 | 5 | ;; Test for the error message for unbound module bindings 6 | ;; with type annotations 7 | (: n String) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14508.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed/racket 4 | 5 | (: f (All (a ...) (-> a ... a (values a ... a)))) 6 | (define (f . xs) 7 | (apply values 3)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14544.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred (regexp-quote "in: (define (f x y z) (+ y z))")) 3 | #lang typed/racket 4 | 5 | (: f (-> Number Number Number)) 6 | (define (f x y z) (+ y z)) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14615.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | (require racket/gui) 3 | (define (f) 4 | (let ([fn (put-file)]) 5 | (when fn 6 | (values fn)))) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/pr14973.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (require (for-syntax racket/base) 4 | racket/splicing 5 | racket/stxparam) 6 | 7 | (define-syntax-parameter foo #f) 8 | 9 | (splicing-syntax-parameterize ([foo #t]) 10 | (: x Number) 11 | (define x "string")) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/recursive-type-application.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"wrong number of arguments to polymorphic type") 3 | #lang typed/racket 4 | 5 | ;; Check bad arity for recursive invocation of Foo 6 | 7 | (define-type (Foo A) (Listof (Foo A A))) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/regexp-match-pos-star.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base #:no-optimize 2 | 3 | (lambda () 4 | (let ([problem (regexp-match-positions* #rx"." "")]) 5 | (and problem (ann problem (Pairof Any Any))))) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/require-untyped-signature.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred (regexp-quote "use of untyped signature in typed code")) 3 | #lang racket 4 | 5 | (module A racket 6 | (provide a) 7 | (define-signature a ())) 8 | 9 | (module B typed/racket 10 | (require (submod ".." A)) 11 | (define-unit u 12 | (import a) 13 | (export))) -------------------------------------------------------------------------------- /typed-racket-test/fail/reverse-special.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 3) 3 | #lang typed/scheme 4 | 5 | (ann (list 1 2 'foo) (Listof Number)) 6 | 7 | (ann (reverse (list 1 2 'foo)) (Listof Number)) 8 | 9 | 10 | 11 | 12 | 13 | (ann (reverse (list 1 2 'foo)) (List String Number Number)) 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/self-outside-sp.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred " Type Checker: parse error in type") 3 | #lang typed/racket 4 | (: prop:foo Self) 5 | (define-values (prop:foo _1 _2) (make-struct-type-property 'foo)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/set-struct.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? ".*unbound.*") 3 | 4 | 5 | #lang typed-scheme 6 | 7 | (define-typed-struct A ([x : Number] [y : Boolean])) 8 | 9 | (define: (f [a : A]) : Number 10 | (set-A-x! a 4) 11 | (set-A-y! a #f) 12 | (+ 4 (A-x a))) 13 | 14 | (display (f (make-A 11 #t))) 15 | -------------------------------------------------------------------------------- /typed-racket-test/fail/set-tests.rkt: -------------------------------------------------------------------------------- 1 | ;; should FAIL! 2 | 3 | #lang typed-scheme 4 | 5 | (let*: ((x : Any 1) 6 | (f : (-> Void) (lambda () (set! x (quote foo))))) 7 | (if (number? x) (begin (f) (add1 x)) 12)) 8 | 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/cast-mod2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | 4 | #lang typed/racket/base/shallow 5 | 6 | (require typed/rackunit) 7 | 8 | (check-not-exn 9 | (lambda () 10 | (cast (lambda () 3) (-> String)))) 11 | 12 | ((cast (lambda () 3) (-> String))) 13 | 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/cast-top-level2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx"free variables") 3 | 4 | #lang racket/load 5 | 6 | (require typed/racket/base/shallow) 7 | 8 | (define: (a) (f (x : Number)) : a 9 | (cast x a)) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/cast.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | 4 | #lang typed/racket/shallow 5 | 6 | ;; Bad cast, expect shape-check error 7 | 8 | (cast 42 String) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/define-predicate-all.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"could not be converted") 3 | 4 | #lang typed/racket/shallow 5 | 6 | (require typed/rackunit) 7 | 8 | (define-predicate p? (All (A) (Listof A))) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/make-predicate-mod1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"could not be converted") 3 | #lang typed/racket/base/shallow 4 | 5 | (make-predicate (Number -> Number)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/nothing.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | 4 | #lang typed/racket/base/shallow 5 | 6 | ;; type `Nothing` should get a none/c check 7 | 8 | (module a racket/base 9 | (provide f) 10 | (define (f) 42)) 11 | 12 | (require/typed 'a 13 | (f (-> Nothing))) 14 | 15 | (f) 16 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/pr13446.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"string-length") 3 | #lang racket/load 4 | 5 | (module a typed/racket/shallow 6 | (provide p) 7 | (: p (Parameterof String Index)) 8 | (define p (make-parameter 0 string-length))) 9 | 10 | (require 'a) 11 | (p 0) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/pr13815.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | #lang typed/racket/shallow 4 | (require/typed racket/base [list (All (a) Float)]) 5 | (* 3.3 list) 6 | 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/pr14173.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"add1") 3 | #lang racket 4 | 5 | (module t typed/racket/shallow 6 | (provide f g) 7 | 8 | (define f (ann (case-lambda [() (add1 "hello")] [(x) x]) (Number -> Number))) 9 | (define g (ann f Any))) 10 | 11 | (require 't) 12 | (f 1) 13 | (g) 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/predicate-box.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"could not be converted") 3 | #lang typed/racket/shallow 4 | 5 | (define-predicate boxof-integer? (Boxof Integer)) 6 | 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/submodule-list-0.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | 4 | #lang typed/racket/base/shallow 5 | 6 | (module u racket/base 7 | (define x* (list "OOPS")) 8 | (provide x*)) 9 | 10 | (require/typed 'u 11 | (x* (Listof Integer))) 12 | 13 | (+ (car x*) 1) 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/submodule-list-1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | 4 | #lang typed/racket/base/shallow 5 | 6 | (module u racket/base 7 | (define x* "OOPS") 8 | (provide x*)) 9 | 10 | (require/typed 'u 11 | (x* (Listof Integer))) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/submodule-opaque-0.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"shape-check") 3 | 4 | #lang typed/racket/base/shallow 5 | 6 | (module u racket/base 7 | (define x* "not function") 8 | (provide x*)) 9 | 10 | (require/typed 'u 11 | (#:opaque X? x*)) 12 | 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/with-type1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | (require typed/racket/shallow) 5 | 6 | ((with-type #:result (Number -> Number) 7 | (lambda: ([x : Number]) (add1 x))) 8 | #f) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/shallow/with-type2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | 5 | (require typed/racket/shallow) 6 | 7 | (let ([x 'hello]) 8 | (with-type 9 | #:result String 10 | #:freevars ([x String]) 11 | (string-append x ", world"))) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/single-letrec.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket 2 | 3 | (: f (Pair 'bad 'worse)) 4 | (define f 5 | (letrec ((y y)) y)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/struct-extra-constructor.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "define-struct: expected typed structure type options") 3 | #lang typed/racket/base 4 | 5 | (define-struct foo () 6 | ;; can't have both of these 7 | #:constructor-name foo-cn 8 | #:extra-constructor-name foo-ecn) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/struct-id-not-type.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "type name `fruit' is unbound") 3 | #lang typed/racket/base 4 | 5 | (struct fruit () #:type-name Fruit) 6 | (ann (fruit) fruit) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/struct-provide.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:syntax? #rx".*typed module.*") 3 | #lang scheme/load 4 | 5 | (module m typed-scheme 6 | (require (for-syntax scheme/base)) 7 | (define-syntax (q stx) #'#f) 8 | (provide (all-defined-out))) 9 | 10 | (module n scheme 11 | (require 'm) 12 | q) 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/struct-type-name-not-constr.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Exp: identifier for static struct-type information cannot be used as an expression") 3 | #lang typed/racket/base 4 | 5 | (provide (except-out (all-defined-out) make-exp)) 6 | (struct exp () #:type-name Exp #:constructor-name make-exp) 7 | 8 | (Exp) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/support-test-submodule.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract? #rx"string-length: contract violation") 3 | #lang racket 4 | (module test racket/base 5 | (string-length 1)) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/tc-error-format.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"expected: Nothing\n given: '~s") 3 | #lang typed/racket 4 | (ann '~s Nothing) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/too-many-errors.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/scheme 2 | 3 | (: f : Number -> Number) 4 | (define (f a b) 5 | (+ a b)) 6 | 7 | (define: (g [a : Number] [b : Number]) : Number 8 | (+ a b)) 9 | 10 | (f 1 2) 11 | (g 1 2) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/top-level-srcloc.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred (regexp-quote "in: (apply + (quote foo))")) 3 | #lang racket/load 4 | 5 | ;; Test that top-level source locations are recovered in error messages 6 | 7 | (require typed/racket) 8 | 9 | (apply + 'foo) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/top-level-unit-and-class.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/load 2 | 3 | ;; A test for GH issue #220 4 | 5 | (require typed/racket) 6 | 7 | (class object% (super-new) (+ 1 "foo")) 8 | (unit (import) (export) (+ 1 "foo")) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/type-variable-scope-1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"Expected 1 type variables") 3 | #lang typed/racket 4 | 5 | ;; Testing type variable scope 6 | 7 | ;; This should fail because of the type variable arities 8 | (: f (All (b) (b -> b))) 9 | (define f 10 | (plambda: (a b) ([x : b]) x)) 11 | -------------------------------------------------------------------------------- /typed-racket-test/fail/type-variable-scope-3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred #rx"mutation only allowed") 3 | #lang typed/racket 4 | 5 | ;; Test type variable scope 6 | 7 | ;; The 'a' is bound in two different scopes 8 | (plambda: (a) ([x : a]) 9 | (plambda: (a) ([y : a]) (set! x y))) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/unbound-non-reg.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | 6 | (define-struct: (T) Node ([v : T] [l : (BinTreeof t)] [r : (BinTreeof t)])) 7 | (define-type (BinTreeof t) (U 'empty [Node t])) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/unbound-type.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 1) 3 | #lang typed-scheme 4 | 5 | 6 | (: f (Foo -> String)) 7 | (define (f x) (string-append x)) 8 | 9 | (f 1) 10 | -------------------------------------------------------------------------------- /typed-racket-test/fail/unsafe-struct.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 3) 3 | #lang typed/scheme 4 | (require racket/unsafe/ops) 5 | 6 | (define-struct: x ((a : Integer) (b : String)) #:mutable) 7 | 8 | (define x1 (make-x 1 "1")) 9 | 10 | (+ (unsafe-struct-ref x1 1) 1) 11 | 12 | (unsafe-struct-set! x1 0 "2") 13 | (unsafe-struct-set! x1 1 1) 14 | -------------------------------------------------------------------------------- /typed-racket-test/fail/untyped-srfi1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred ".*identifier: map.*" ".*srfi.*") 3 | #lang typed-scheme 4 | 5 | (require srfi/1) 6 | 7 | map 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/values-int-err.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/base 2 | 3 | (: bob (-> (Values Real Real))) 4 | (define (bob) 0) 5 | -------------------------------------------------------------------------------- /typed-racket-test/fail/vector-set-immutable.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail?) 3 | #lang typed/racket 4 | 5 | (define v : (Vectorof Integer) (vector-immutable 1 2 3)) 6 | (vector-set! v 0 0) 7 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-asserts.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail?) 3 | #lang typed/racket 4 | 5 | (let ([x 1] [y "2"]) 6 | (with-asserts ([x string?] [y integer?]) 7 | x)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-asserts2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail?) 3 | #lang typed/racket 4 | 5 | (let ([x 1] [y "2"]) 6 | (with-asserts ([x string?]) 7 | x)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-asserts3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail?) 3 | #lang typed/racket 4 | 5 | (let ([x #f]) 6 | (with-asserts ([x]) 7 | x)) 8 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-type-bug.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | (require (prefix-in T: typed/scheme)) 5 | ((T:with-type #:result (T:Integer T:-> T:Integer) add1) 1/2) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-type1.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | (require typed/scheme) 5 | 6 | ((with-type #:result (Number -> Number) 7 | (lambda: ([x : Number]) (add1 x))) 8 | #f) 9 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-type2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | 5 | (require typed/scheme) 6 | 7 | (let ([x 'hello]) 8 | (with-type 9 | #:result String 10 | #:freevars ([x String]) 11 | (string-append x ", world"))) 12 | -------------------------------------------------------------------------------- /typed-racket-test/fail/with-type3.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred exn:fail:contract?) 3 | #lang scheme 4 | 5 | (require typed/scheme) 6 | 7 | (define-values (a b) 8 | (with-type 9 | #:result (values String (Number -> Number)) 10 | (values "foo" (lambda (x) x)))) 11 | 12 | (b a) 13 | -------------------------------------------------------------------------------- /typed-racket-test/fail/wrong-arity.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred "wrong arity") 3 | #lang typed/racket 4 | (: f (Number Number -> Number)) 5 | (define (f x) 0) 6 | -------------------------------------------------------------------------------- /typed-racket-test/fail/wrong-arity2.rkt: -------------------------------------------------------------------------------- 1 | #; 2 | (exn-pred 2) 3 | #lang typed/racket 4 | 5 | ;; https://github.com/racket/typed-racket/issues/58 6 | 7 | (: f1 ([] [String] #:rest Symbol . ->* . Any)) 8 | (define (f1 [bool #t] . syms) bool syms) 9 | 10 | (ann (λ ([bool #f] . syms) bool syms) 11 | ([] [String] #:rest Symbol . ->* . Any)) 12 | -------------------------------------------------------------------------------- /typed-racket-test/gui/succeed/gui-lang.rkt: -------------------------------------------------------------------------------- 1 | #lang typed/racket/gui 2 | 3 | ;; Test typed/racket/gui used as a language 4 | 5 | (define (f #{x : Integer}) (add1 x)) 6 | (f 3) 7 | 8 | (make-object bitmap% 300 300) 9 | -------------------------------------------------------------------------------- /typed-racket-test/nightly-run.rkt: -------------------------------------------------------------------------------- 1 | #lang racket/base 2 | 3 | (module test racket/base 4 | (displayln "run as program for tests")) 5 | 6 | (require racket/runtime-path) 7 | (define-runtime-path run "run.rkt") 8 | (parameterize ([current-command-line-arguments '#("--nightly")]) 9 | (dynamic-require run #f)) 10 | -------------------------------------------------------------------------------- /typed-racket-test/optimizer/missed-optimizations/float-vector.rkt: -------------------------------------------------------------------------------- 1 | #;#; 2 | #< Float)) 11 | (define (f x) 12 | (+ x 1.0)) 13 | -------------------------------------------------------------------------------- /typed-racket-test/optimizer/tests/fx-fl.rkt: -------------------------------------------------------------------------------- 1 | #;#; 2 | #<inexact 1) -- fixnum to float 4 | END 5 | #<inexact 1) 14 | -------------------------------------------------------------------------------- /typed-racket-test/optimizer/tests/in-bytes.rkt: -------------------------------------------------------------------------------- 1 | #;#; 2 | #<