Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parallel type checking #1044

Closed
johnynek opened this issue Sep 16, 2023 · 1 comment
Closed

parallel type checking #1044

johnynek opened this issue Sep 16, 2023 · 1 comment

Comments

@johnynek
Copy link
Owner

When we see a let x = y in z if we have a type annotation on x, we can check both y and infer z in parallel.

Even if we don't use parallel processing here, we can report both errors instead of just one. So, if let x: Foo = y in z if y doesn't type check as Foo we fail currently without checking anything for z, but we don't have to. We can assume the type of x is Foo and also report any errors in z.

A similar issue comes up when you have a series of lets and the next items may not depend on the previous:

x = foo
y = bar
z = baz
f(x, y, z)

In this example, even without a type annotation, we could potentially collect all the errors on x, y, z before going on to f(x, y, z).

@johnynek
Copy link
Owner Author

johnynek commented Feb 25, 2024

this was closed by #1046 and later PRs. It's not parallel in terms of CPU, but parallel with error reporting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant