[red-knot] use declared types in inference/checking (#13335)

Use declared types in inference and checking. This means several things:

* Imports prefer declarations over inference, when declarations are
available.
* When we encounter a binding, we check that the bound value's inferred
type is assignable to the live declarations of the bound symbol, if any.
* When we encounter a declaration, we check that the declared type is
assignable from the inferred type of the symbol from previous bindings,
if any.
* When we encounter a binding+declaration, we check that the inferred
type of the bound value is assignable to the declared type.
This commit is contained in:
Carl Meyer 2024-09-17 08:11:06 -07:00 committed by GitHub
parent d86e5ad031
commit dcfebaa4a8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 876 additions and 233 deletions

View file

@ -6,6 +6,7 @@ use crate::files::Files;
use crate::system::System;
use crate::vendored::VendoredFileSystem;
pub mod display;
pub mod file_revision;
pub mod files;
pub mod parsed;