[red-knot] Allow calling bool() with no arguments (#13568)

This commit is contained in:
Alex Waygood 2024-09-30 14:18:01 +01:00 committed by GitHub
parent d9267132d6
commit 5f4b282327
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 3 deletions

View file

@ -594,9 +594,8 @@ impl<'db> Type<'db> {
CallOutcome::callable(if is_bool {
arg_types
.first()
.unwrap_or(&Type::Unknown)
.bool(db)
.into_type(db)
.map(|arg| arg.bool(db).into_type(db))
.unwrap_or(Type::BooleanLiteral(false))
} else {
Type::Instance(class)
})

View file

@ -6494,6 +6494,7 @@ mod tests {
c = bool(None)
d = bool("")
e = bool(False)
f = bool()
"#,
)?;
assert_public_ty(&db, "/src/a.py", "a", "Literal[False]");
@ -6501,6 +6502,7 @@ mod tests {
assert_public_ty(&db, "/src/a.py", "c", "Literal[False]");
assert_public_ty(&db, "/src/a.py", "d", "Literal[False]");
assert_public_ty(&db, "/src/a.py", "e", "Literal[False]");
assert_public_ty(&db, "/src/a.py", "f", "Literal[False]");
Ok(())
}