-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[ty] Anchor all exclude patterns #18685
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
Conversation
|
| pub(crate) struct PortableGlobPattern<'a> { | ||
| pattern: &'a str, | ||
| is_exclude: bool, | ||
| kind: PortableGlobKind, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I couldn't help myself but this small refactor allows removing a fair chunk of code and makes the API more explicit
3c6dda7 to
10a78fb
Compare
BurntSushi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice, this seems nicer to me. :-) Thank you!
Co-authored-by: Andrew Gallant <andrew@astral.sh>
* main: (68 commits) Unify `OldDiagnostic` and `Message` (#18391) [`pylint`] Detect more exotic NaN literals in `PLW0177` (#18630) [`flake8-async`] Mark autofix for `ASYNC115` as unsafe if the call expression contains comments (#18753) [`flake8-bugbear`] Mark autofix for `B004` as unsafe if the `hasattr` call expr contains comments (#18755) Enforce `pytest` import for decorators (#18779) [`flake8-comprehension`] Mark autofix for `C420` as unsafe if there's comments inside the dict comprehension (#18768) [flake8-async] fix detection for large integer sleep durations in `ASYNC116` rule (#18767) Update dependency ruff to v0.12.0 (#18790) Update taiki-e/install-action action to v2.53.2 (#18789) Add lint rule for calling chmod with non-octal integers (#18541) Mark `RET501` fix unsafe if comments are inside (#18780) Use `LintContext::report_diagnostic_if_enabled` in `check_tokens` (#18769) [UP008]: use `super()`, not `__super__` in error messages (#18743) Use Depot Windows runners for `cargo test` (#18754) Run ty benchmarks when `ruff_benchmark` changes (#18758) Disallow newlines in format specifiers of single quoted f- or t-strings (#18708) [ty] Add more benchmarks (#18714) [ty] Anchor all exclude patterns (#18685) Include changelog reference for other major versions (#18745) Use updated pre-commit id (#18718) ...
Summary
As discussed, this PR changes the semantics of exclude globs to be anchored. That means,
srcnow only matches<project_root>/srcbut no longer<project_root>/build/src. Or*.pynow only matches python files directly inside the project root but no longer matches any file with apyextension.The motivation for this change is to make the behavior consistent with
inclduewhere anchoring is desired to allow eagerly skipping over directories that are known not to be included.Just for reference:
/(same as gitignore)./(a path separator)Test Plan
Update tests