mirror of https://github.com/astral-sh/ruff
[ty] Add support for global __debug__ constant (#18540)
## Summary Closes https://github.com/astral-sh/ty/issues/577. Make global `__debug__` a `bool` constant. ## Test Plan Mdtest `global-constants.md` was created to check if resolved type was `bool`. --------- Co-authored-by: David Peter <mail@david-peter.de>
This commit is contained in:
parent
caf885c20a
commit
161446a47a
|
|
@ -0,0 +1,14 @@
|
||||||
|
# Global Constants
|
||||||
|
|
||||||
|
## `__debug__` constant
|
||||||
|
|
||||||
|
The [`__debug__` constant] should be globally available:
|
||||||
|
|
||||||
|
```py
|
||||||
|
reveal_type(__debug__) # revealed: bool
|
||||||
|
|
||||||
|
def foo():
|
||||||
|
reveal_type(__debug__) # revealed: bool
|
||||||
|
```
|
||||||
|
|
||||||
|
[`__debug__` constant]: https://docs.python.org/3/library/constants.html#debug__
|
||||||
|
|
@ -1073,6 +1073,8 @@ mod implicit_globals {
|
||||||
Place::bound(KnownClass::Str.to_instance(db)).into()
|
Place::bound(KnownClass::Str.to_instance(db)).into()
|
||||||
} else if name == "__builtins__" {
|
} else if name == "__builtins__" {
|
||||||
Place::bound(Type::any()).into()
|
Place::bound(Type::any()).into()
|
||||||
|
} else if name == "__debug__" {
|
||||||
|
Place::bound(KnownClass::Bool.to_instance(db)).into()
|
||||||
}
|
}
|
||||||
// In general we wouldn't check to see whether a symbol exists on a class before doing the
|
// In general we wouldn't check to see whether a symbol exists on a class before doing the
|
||||||
// `.member()` call on the instance type -- we'd just do the `.member`() call on the instance
|
// `.member()` call on the instance type -- we'd just do the `.member`() call on the instance
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue