Rustup - #5287
Merged
Merged
Conversation
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: 1e5ee356374211706221b71b6106d297a646ee57 Filtered ref: b4f59cc8a0c6987c83a832bc4976a5d6a1d9d821 Upstream diff: rust-lang/rust@fcbe791...1e5ee35 This merge was created using https://github.com/rust-lang/josh-sync.
Rustc sync 2026 09 13
Installing cargo tools (`cargo install`) without locked dependencies exposes users to supply-chain attacks to all the dependencies of the tool (https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/). Using `cargo install --locked` reduces this risk to a compromise of the tool itself, while using the locked and hashed version of the dependencies. I went through all `rg "cargo install"` hits in the repository and added `--locked` to all but explanatory examples. I validated that those tools publish functioning `Cargo.lock`s with https://gist.github.com/konstin/ef3412518e207bea6035a1bd01f3821b.
chore: bump to cc@1.4.3 for rustc_llvm and library ### What is this? Old cc-rs derives this from the `-Clto` rustflag on its own. `cc@1.2.39` starts gating that behind `-Clinker-plugin-lto`, which bootstrap doesn't pass. Therefore, we need to pass this flag explicitly to keep LTO mode Previous efforts: * rust-lang/rust#146186 * rust-lang/rust#155438 I personally want this because of cc 1.3.0+ has the support of Cargo `-Ztrim-paths`, which helps what I am experimenting in <rust-lang/rust#161049>. ### How to review Commit by commit. To keep commits bisect-able, I added the first commit without cc bump. clang should be fine with duplicate `-flto` flags. One thing I am not certain is whether we should probe `-flto` flag in this case, or just make this fail if `-flto` isn't supported. (I assume `-flto` is quote widely supported) r? Kobzol --- 🤖 **LLM disclosure:** I used LLM for the experiment of <rust-lang/rust#161049>, but not the bootstrap LTO change in this PR.
Fix ordering for `default impl` check in the new solver The second commit of rust-lang/rust#160605 moved the `default impl` check later, for better performance, which introduced a regression. This commit moves the check a little earlier, so it is after the `args_may_unify` call (thus retaining the perf benefit) but before the `probe_trait_candidate` (which has side-effects). The check is now duplicated in three `GoalKind::consider_impl_candidate` methods, which is unfortunate, but it fits in with the existing duplicated code in those methods. And it means another copy of the check (in `try_assemble_bounds_via_registered_opaques`) can be removed. Fixes rust-lang/rust#160994. r? @lcnr
add a cache to the `WfPredicates` visitor Part of speeding up compiling `ReShell` with `-Znext-solver`, see rust-lang/trait-system-refactor-initiative#272 and [#t-types/trait-system-refactor > more &rust-lang#96;reshell&rust-lang#96; slowness](https://rust-lang.zulipchat.com/#narrow/channel/364551-t-types.2Ftrait-system-refactor/topic/more.20.60reshell.60.20slowness/with/616484452). The PR changes the `WfPredicates` visitor to only collect new bounds for unique types. That is, if we have a type like: ``` type T0 = Map<Then<Whitespace, Whitespace>> type T1 = Map<Then<T0, T0>> type T2 = Map<Then<T1, T1>> ... type T_N = Map<Then<T_N-1, T_N-1>> ``` etc., the visitor used to end up collecting one WF obligation for each path from `T_N` to its `Whitespace` leaves, even though WF of a type (I believe) doesn't depend on the path the visitor took to get there, which allows us to deduplicate by Ty. Not deduplicating caused us to go O(2^N) here. next-solver is still about ~5x slower than the old solver on the third reproducer due to some other hidden quadratics, and fixing that seems to be more involved, but I think this PR will still be ✨ An Improvement. r? lcnr
Fix checking of LLVM prebuilt status This regressed in rust-lang/rust#160916. I'll start from the end. There was a pre-existing bug (fixed by the second commit of this PR), where if we do `x check library`, we have `builder.kind == Kind::Check`, but we are actually building things (like the compiler) during that bootstrap invocation. But bootstrap was only checking the builder kind before, and in that case it would skip building LLVM, *unless* it was already built locally previously. On PR CI, and perhaps always (because build steps executed during check likely only occur during `x check library`, which requires *building* the compiler anyway), the LLVM was built locally anyway, so this bug was hidden away. This also removes an unnecessary LLVM build when running Clippy on the rustc_private tools. However, after rust-lang/rust#160916, this was no longer case, because it stopped treating locally built LLVM as being prebuilt (which, in and of itself, is kinda a bug). Because when we check the compiler, we want to avoid building (and checking out!) LLVM. Before rust-lang/rust#160916, bootstrap considered a *previously locally built* LLVM to be available as a prebuilt `llvm-config`, and in that case configured `LLVM_CONFIG` for `rustc_llvm`. Because all PR CI bootstrap invocations that do `check` actually built LLVM prior doing a build, this worked, somehow, but broke after my PR. Should unblock rust-lang/rust#161466. r? jieyouxu
…rrowckDomain, r=cjgillot Remove `impl DebugWithContext for BorrowckDomain` Only `iterate_to_fixpoint` requires `Domain: DebugWithContext<Self>`; `visit_results` does not. And `Borrowck` is an unusual analysis that never calls `iterate_to_fixpoint`; instead its results are composed from the results of the three sub-analyses. r? @cjgillot
…nna-kruppe Doclink to `char::REPLACEMENT_CHARACTER` instead of `std::char::REPLACEMENT_CHARACTER`. Doclink to the associated const on primitive `char`, not the deprecated free const in the `core::char`/`std::char` modules.
…ertdev Install cargo tools with locked dependencies Installing cargo tools (`cargo install`) without locked dependencies exposes users to supply-chain attacks to all the dependencies of the tool (https://blog.rust-lang.org/2026/08/20/supply-chain-attack-on-arrayref/). Using `cargo install --locked` reduces this risk to a compromise of the tool itself, while using the locked and hashed version of the dependencies. I went through all `rg "cargo install"` hits in the repository and added `--locked` to all but explanatory examples (such as cargo's docs on `cargo install` itself). I validated that those tools publish functioning `Cargo.lock`s with https://gist.github.com/konstin/bcb1169c1c1120c259dca64e777a64d0.
enable next solver in Miri This was disabled in rust-lang/rust#160619, apparently because some tests failed. But I can't reproduce those test failures locally. Fixes rust-lang#5269 Landing this here because rustc CI is where this used to break, and also Miri got broken again so we can't do syncs currently. Cc @Kivooeo r? @lcnr
Revert #161236 (Download auto jobs in citool in parallel) I think that this might have caused [this failure](rust-lang/rust#161260 (comment)). It's not worth debugging things like that over parallelizing this... r? jieyouxu
rename `T-libs-api` to `T-libs` in issue templates Since they were merged with rust-lang/rfcs#3984.
…uwer Rollup of 9 pull requests Successful merges: - rust-lang/rust#161475 (Fix checking of LLVM prebuilt status) - rust-lang/rust#161269 (Remove `impl DebugWithContext for BorrowckDomain`) - rust-lang/rust#161419 (Doclink to `char::REPLACEMENT_CHARACTER` instead of `std::char::REPLACEMENT_CHARACTER`.) - rust-lang/rust#161428 (Install cargo tools with locked dependencies) - rust-lang/rust#161502 (Clean up a few `_inner` functions after `ensure_sufficient_stack`) - rust-lang/rust#161507 (Remove useless `!fields.is_empty()` check) - rust-lang/rust#161512 (enable next solver in Miri) - rust-lang/rust#161516 (Revert rust-lang/rust#161236 (Download auto jobs in citool in parallel)) - rust-lang/rust#161518 (rename `T-libs-api` to `T-libs` in issue templates)
Optimize `DeepRejectCtxt` Details in individual commits. r? @jdonszelmann
…oxyUwU
Reject non-constructor self types in const-arg tuple-call lowering
Turning on `min_generic_const_args` makes `tracing` stop compiling. Its logging macros expand a field name to something like `FieldName<{ FieldName::len(stringify!(field)) }>`, and under mgca a braced call in const-arg position gets lowered as a tuple constructor. So lowering tries to resolve the bare self type `FieldName` (written without its `const N`), which kicks off an `E0107 "missing generics"` cascade pointing deep into macro code. But `FieldName::len(..)` is just an associated fn, not a constructor, so lowering it like a `TupleCall` was wrong in the first place. See rust-lang/rust#157152.
Only an enum can host a tuple-variant ctor, so for any other self type that can't (struct, union, primitive, foreign type) the call has to be an assoc fn and needs wrapping in `const { ... }`. We catch those from the self type's resolution before lowering it and emit the existing "complex const arguments must be placed inside of a `const` block" error, which is the message you'd want anyway. Enums, aliases, `Self` and type params get left alone since they might resolve to an enum. tbh the bare generic *enum* case (`Option::Some(0)`) still E0107s, and imo that's better as a follow-up since catching it needs the variant type before lowering. Tests cover struct/union/primitive/foreign plus the wrapped forms that compile, and I checked it against the real `tracing` 0.1.44 crate too.
_fwiw just the code changes and tests were implemented with AI help and I verified/reproduced/tested everything locally before sending to remote._
…rtdev stdarch subtree update Subtree update of `stdarch` to rust-lang/stdarch@0d4e35e. Created using https://github.com/rust-lang/josh-sync. r? @ghost
…able-minification, r=lolbinarycat compiletest: forward disable-minification from bootstrap `build.docs-minification = false` was already honored when building docs through bootstrap's doc steps, but compiletest-driven rustdoc suites always generated minified CSS/JS. Bootstrap now forwards `--disable-minification` to compiletest when docs minification is disabled, and compiletest passes `-Zunstable-options --disable-minification` to rustdoc for HTML/JS/JSON/UI doc generation. Fixes rust-lang/rust#142737.
…mu001999
Extend `dropping_{references,copy_types}` lints to `drop_in_place`
This PR extends the `dropping_{references,copy_types}` lints to also check for calls to `std::ptr::drop_in_place` and `<*mut _>::drop_in_place`.
It also extends the `undropped_manually_drops` lint.
Fixes rust-lang/rust#160127
cc @theemathas
Add floating point inline ASM support for SPARC This PR adds support for floating point registers to SPARC inline ASM. Ping target maintainers: @psumbera @kulikjak @jonathanpallant @mvolfik @he32 @0323pin @semarie Tracking issues: f16 inline ASM: rust-lang/rust#125398 (part of rust-lang/rust#116909) SPARC inline ASM: rust-lang/rust#93335
…Simulacrum feat: add symmetric PartialEq impls for Vec, &[T], &mut [T] versus Cow<'_, [T]> add the missing reverse `PartialEq<Cow<'_, [U]>>` impls for `Vec<T, A>`, `&[T]`, and `&mut [T]`, essentially mirroring the existing forwards in `library/alloc/src/vec/partial_eq.rs` partially addresses rust-lang/rust#152830. The `VecDeque` half of that issue is being handled separately by rust-lang/rust#152972, so there is no overlap with this PR also fyi: verified locally with `./x test library/alloctests --stage 1` and the new `test_partial_eq_cow_symmetric` test passes alongside the existing alloc test suite
…anBrouwer Derive `GenericTypeVisitable` for `RegionConstraint` _correctly_ The derive added in rust-lang/rust#160164 was incorrect -- it resulted in an overflow during trait solving. This is because `#[derive(GenericTypeVisitable)]` automatically adds a `: GenericTypeVisitable` bound to every field of a type -- in this case, `Box<[RegionConstraint<I>]>: GenericTypeVisitable<V>`. To fix this, I added a `#[generic_type_visitable(bounds(..))]` attribute to the derive macro, which allows overriding the added bounds. I also made the derive macro no longer a no-op in rustc, so that errors like this can be caught on r-l/r CI in the future. Best reviewed commit-by-commit. cc @ChayimFriedman2
…white be more permissive wrt overflow and and improve diagnostics This builds on rust-lang/rust#160632 Previously we only showed a single root goal for the FCW. It was difficult to find out how the goal overflowed. We display a proving chain now which should help users identify relevant types or auto traits. This will affect perf for crates emitting the FCW. E.g. `calimero-store` goes from 4.7s -> 5.7s in local testing since it emits thousands of FCWs internally. The FCW is a mitigation of future hard error and authors are expected to resolve it so it's probably acceptable. It doesn't affect crates without the FCW. r? lcnr
Add regression test for gce dependency ICE in non-gce crate Closes rust-lang/rust#128525
Rollup of 8 pull requests Successful merges: - rust-lang/rust#161558 (stdarch subtree update) - rust-lang/rust#159887 (compiletest: forward disable-minification from bootstrap) - rust-lang/rust#160229 (Extend `dropping_{references,copy_types}` lints to `drop_in_place`) - rust-lang/rust#160949 (Add floating point inline ASM support for SPARC) - rust-lang/rust#156160 (feat: add symmetric PartialEq impls for Vec, &[T], &mut [T] versus Cow<'_, [T]>) - rust-lang/rust#160914 (Derive `GenericTypeVisitable` for `RegionConstraint` _correctly_) - rust-lang/rust#161341 (be more permissive wrt overflow and and improve diagnostics) - rust-lang/rust#161530 (Add regression test for gce dependency ICE in non-gce crate)
Update LLVM submodule to latest `release/23.x` branch This pulls in rust-lang/llvm-project#199 which updates the revision of LLVM 23 to the latest copy of the release branch, just past the rc3 release.
tests/ui/union/union-nodrop.rs: fix typo "expressios"
also trigger overflow FCW when going from overflow -> error based on rust-lang/rust#161341. This changes the FCW to also trigger if doubling the recursion limit changes things to an error. Fixes bevyengine/bevy#25511 I am also changing `fn root_goal_may_hold_opaque_types_jank` to just use `evaluate_root_goal`. That isn't necessary for the example itself but we previously didn't do the FCW in there, which feels subtle and brittle. THis should just generally be more consistent r? adwinwhite (or anyone else really)
Bump cfg_aliases to 0.2.2 Resolves FCW in `nix@0.30.1`'s usage of `cfg_aliases` when building stage1 since rust-lang/rust#159222 reached beta. Example of FCW: https://github.com/rust-lang/rust/actions/runs/32585824494/job/97061994743?pr=161548#step:28:4792 . If you `./x b` locally, then you should also see this warning, and have a file `build/x86_64-unknown-linux-gnu/stage1-rustc/.future-incompat-report.json` mentioning `nix` and `cfg_aliases`. cc @Zalathar
re-bless `pretty-std` on windows Corrects a small error from rust-lang/rust#160331. I forgot CI doesn't run lldb on windows, so it didn't catch that these hadn't been updated. At the very least though, this lets us see, in isolation, what a typical diff will look like for the json data. r? @Kobzol @jieyouxu
Add codegen test for redundant bit mask after a range check Closes rust-lang/rust#78745
update eyre This fixes some future-compat warnings in ui_test. (The warnings show up in a different crate due to macros being involved.)
std: reduce visibility of some internal OsStr related types
The std::sys::os_str::{Buf, Slice} types are only used within the std crate and not actually exported. Whole `sys` module is private. They don't need to be public. This might result in a better generated code, but more importantly it avoids some compile errors down the line.
This commit is extracted from rust-lang/rust#160971
…fig, r=Kobzol [Bootstrap] Pass exact CI `llvm-config` executable path ## Summary Follow-up fix for rust-lang/rust#160916. I noticed that against latest `main` we are repeatedly invalidating `rustc_llvm`'s build script after ``` Fresh ar_archive_writer v0.5.3 Dirty rustc_llvm v0.0.0 (X:\repos\rust\compiler\rustc_llvm): the file `build\x86_64-pc-windows-msvc\ci-llvm\bin\llvm-config` is missing Compiling rustc_llvm v0.0.0 (X:\repos\rust\compiler\rustc_llvm) Fresh unicode-security **v0.1.2** ``` This PR passes the *exact* CI LLVM `llvm-config` executable path (including the `.exe` extension on Windows). Otherwise, this will cause `rustc_llvm` build script to consider the `llvm-config` executable missing, causing cargo build cache invalidation. I tested this locally and this seems to fix the invalidation w/ CI LLVM. r? Kobzol
Path: use optimized is_empty() method A simple change: use the new `Path::is_empty` method, that directly checks if the inner `OsStr` is empty instead of allocating a new `Path` and doing `Path` equality.
coretests: Add a few tests for backward multibyte predicate Surprisingly enough there's no rfind tests for multibyte needles, at least it is possible to break this test without breaking anything other test. This commit is extracted from rust-lang/rust#160971
interpret: make validate_c_variadic_compatible_ty public Miri needs the same check for vararg shims, so let's make this function public so that Miri can reuse it. r? @saethlin or @folkertdev
Rollup of 22 pull requests Successful merges: - rust-lang/rust#161586 (miri subtree update) - rust-lang/rust#161187 (add `Complex<T>` layout tests for straightforward targets) - rust-lang/rust#161524 (Put back `tests/rustdoc-gui/search-result-display.goml`) - rust-lang/rust#161592 (core: refactor tests/pattern.rs tests) - rust-lang/rust#161602 (Fix flakyness issue for `tests/rustdoc-gui/headers-color.goml`) - rust-lang/rust#152433 (Use `symlink_dir` to create junctions on Windows instead of trying to use symbolic links in `copy_link_internal`) - rust-lang/rust#155254 (Recover on attribute in use tree) - rust-lang/rust#158695 (Replace `CrateDump` with the Debug impl from `CStore`) - rust-lang/rust#159456 (Fix the reporting of layout normalization failures in transmute checks) - rust-lang/rust#159940 (Eliminate some buggy `unreachable!()`s in `expand_[option_]env()`) - rust-lang/rust#160452 (-Ctarget-feature is not unsafe (any more)) - rust-lang/rust#161007 (tests/ui/union/union-nodrop.rs: fix typo "expressios") - rust-lang/rust#161552 (also trigger overflow FCW when going from overflow -> error) - rust-lang/rust#161569 (Bump cfg_aliases to 0.2.2) - rust-lang/rust#161573 (re-bless `pretty-std` on windows) - rust-lang/rust#161580 (Add codegen test for redundant bit mask after a range check) - rust-lang/rust#161588 (update eyre) - rust-lang/rust#161589 (std: reduce visibility of some internal OsStr related types) - rust-lang/rust#161598 ([Bootstrap] Pass exact CI `llvm-config` executable path) - rust-lang/rust#161601 (Path: use optimized is_empty() method) - rust-lang/rust#161604 (coretests: Add a few tests for backward multibyte predicate) - rust-lang/rust#161615 (interpret: make validate_c_variadic_compatible_ty public)
…2, r=khyperia Add more context to dyn-compatibility diagnostic for receiver-less associated functions Fixes rust-lang/rust#159492 Expands the two suggestion messages for the "no `self` parameter" dyn-compatibility violation to explain *why* each fix works, per the issue. Before: help: consider turning `create` into a method by giving it a `&self` argument help: alternatively, consider constraining `create` so it does not apply to trait objects After: help: consider turning `create` into a method by giving it a `&self` argument, so that it is accessible through the trait object's vtable help: alternatively, consider constraining `create` so it is explicitly marked as not applying to trait objects Only the two strings in `DynCompatibilityViolationSolution::add_to` (rustc_middle/src/traits/mod.rs) changed — no logic, applicability, or span changes. Added a regression test using the issue's exact example (tests/ui/dyn-compatibility/static-constructor-prevents-dyn-no-api-guidance.rs). Verified against a locally-built rustc; full `tests/ui` suite passes (21643 passed, 0 failed). Note: `next-solver` compare-mode has pre-existing, unrelated failures on 3 tests in this directory, confirmed present on `main` without this diff.
add crashtests [5/N], remove unused aux files Followup to rust-lang/rust#161150. Adds more tests, removes some auxillary files whose crash test was already removed. [Link to issue list](https://github.com/rust-lang/rust/issues?q=is%3Aissue%20state%3Aopen%20label%3AI-ICE%20label%3AS-has-mcve%20sort%3Acreated-asc%20AND%20(%20153005%20OR%20153362%20OR%20153375%20OR%20153947%20OR%20154296%20OR%20154779%20OR%20154782%20OR%20154871%20)).
Add regression test for extern crate alias shadowed by a module of the same name Closes rust-lang/rust#55759
Add regression test for private fields lint closes rust-lang/rust#81447
More EC2 instance usage This extends our usage of EC2 to dist-x86_64-linux-alt builders (1h23m with m8a.2xlarge, https://github.com/rust-lang/rust/actions/runs/32137297331/job/95711706485). This is moving from GHA credits to EC2 credits, so we should confirm we want that, but in dollar terms this is cheaper: at 1h55m (last auto build) on [GHA $1.32/hr](https://docs.github.com/en/billing/reference/actions-runner-pricing) = $2.53/run, vs. 1h23m on EC2 at $0.48688/hr = $0.67/run. My primary goal is to try to free up GHA credits so we can move Windows and/or macOS jobs to large runners, since I suspect us trying to host those ourselves is going to be more painful. As a drive-by change this also adds support for EC2 aarch64 machines to the bors config (but not CI config). My suspicion is that if/when we have aarch64 perf we may want faster aarch64 try builds, and in any case dist-aarch64-linux is one of our slower runners -- at 2h24m -- so it may benefit from getting a faster machine. I don't know yet how EC2 will compare but extending the bors config is cheap so I'd rather just do that now to enable easier testing. I also deleted some of the old unused runner templates, I don't see much point in keeping dead ones around. r? Kobzol
…uwer Rollup of 6 pull requests Successful merges: - rust-lang/rust#159434 (fix: suggest removing a trailing semicolon when a closure argument fails a trait bound) - rust-lang/rust#160428 (Add more context to dyn-compatibility diagnostic for receiver-less associated functions) - rust-lang/rust#161166 (add crashtests [5/N], remove unused aux files ) - rust-lang/rust#161310 (Add regression test for extern crate alias shadowed by a module of the same name) - rust-lang/rust#161509 (Add regression test for private fields lint) - rust-lang/rust#161562 (More EC2 instance usage)
…Brouwer stabilize never type ### This PR - stabilizes the [never type](https://doc.rust-lang.org/stable/std/primitive.never.html) (aka `!`) (!!!) - sets the [never type fallback](https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html) to `!` on all editions (breaking change, see [crater report analysis](rust-lang/rust#155499 (comment)) and [refresher on never type fallback](rust-lang/rust#155499 (comment))) - makes `Infallible` an alias to `!` - removes `dependency_on_unit_never_type_fallback` lint (there is no more never type fallback to `()` so this lint can't be triggered) ### Cat <img width="1024" height="683" alt="52270233795_5979a3174d_b" src="https://github.com/user-attachments/assets/f6b4737e-32ef-4c33-86b2-76b81673cf20" /> ### Tracking - rust-lang/rust#35121 - rust-lang/rust#148922 ### FCPs - rust-lang/rust#123508 (comment) (stabilization plan, T-lang) - rust-lang/rust#155499 (comment) (never type stabilization modulo bugs, T-lang) - rust-lang/rust#155924 (comment) (make `Infallible = !`, T-libs) ### Related changes - Lint bump: rust-lang/rust#141937 - Rust 2024 edition change: - rust-lang/rust#123748 - rust-lang/rust#123508 - Various changes to lessen the effect of the breaking changes: - rust-lang/rust#157820 - rust-lang/rust#156047 - rust-lang/rust#160705 - Never type documentation changes: rust-lang/rust#158370 (blocked on this pr) ### Experiments - Fallback change and never type stabilization: - Run: rust-lang/rust#155499 (comment) - Analysis: rust-lang/rust#155499 (comment) - Status of backports: rust-lang/rust#155499 (comment) - Fallback change, never type stabilization and making `Infallible = !`: rust-lang/rust#155500 - Fallback change, never type stabilization, making `Infallible = !`, and removing reservation impl: rust-lang/rust#155501 - Never type stabilization and `Infallible = !` change, _without_ fallback change: rust-lang/rust#155657 --- Closes rust-lang/rust#35121 Closes rust-lang/rust#148922
This updates the rust-version file to 9bb55c8c865411b7d9dea6ff743e583d510d89f5.
Pull recent changes from https://github.com/rust-lang/rust via Josh. Upstream ref: rust-lang/rust@9bb55c8 Filtered ref: rust-lang/miri@89242b0 Upstream diff: rust-lang/rust@c656540...9bb55c8 This merge was created using https://github.com/rust-lang/josh-sync.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.