Uh oh!
There was an error while loading. Please reload this page.
stop marking deref_patterns as an incomplete feature - #153053
Conversation
rustbot
commented
Feb 24, 2026
Some changes occurred in src/tools/clippy cc @rust-lang/clippy |
rustbot
commented
Feb 24, 2026
r? @fee1-dead rustbot has assigned @fee1-dead. Use Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
635d644 to
06b0bd2Comparejackh726
commented
Feb 24, 2026
This is indeed more or less current policy. This should get an RFC before being marked as incomplete. |
fee1-dead
commented
Mar 9, 2026
If we look at the diagnostic emitted by This paints me as a status that moreso reflects the state of the feature in the compiler rather than the language. Given that my memory of cc @Nadrieril who made that comment originally. @bors r+ rollup |
@bors r- The policy is here: https://lang-team.rust-lang.org/how_to/experiment.html :
I consider it important to keep the warning, because this feature may be replaced by something different depending on how the Field Projections work pans out. |
Nadrieril
commented
Mar 9, 2026
It's a known annoyance that we use the same "incomplete feature" lint to mark both features that aren't fully implemented and features that aren't yet approved by the lang team, but for now that's the lint we have. |
fee1-dead
commented
Mar 9, 2026
/shrug const traits doesn't have incomplete status either, and it also doesn't have an RFC. The wording on the diagnostic does not match what the lang team prescribes. Someone should do Something I suppose, and change the warnings for these kinds of features from the current wording to one that is like "this feature does not have an accepted RFC", with note "this feature could be majorly changed or outright removed" |
Nadrieril
commented
Mar 9, 2026
Arguably "this is a nightly feature" could be enough of a deterrent. I think the lint is a not-super-thorough attempt at signaling to users how risky it is to be making use of that feature in their code. And, well, for deref patterns I think we're in "not too risky" territory. I wouldn't remove the feature except to replace it with something similar; the overall ergonomics is completely something we want in the language in some form. So maybe it's fair to remove the lint... |
Nadrieril
commented
Mar 9, 2026
Am I the only one respecting that policy x) |
Nadrieril
commented
Mar 9, 2026
…ete, r=fee1-dead,Nadrieril stop marking `deref_patterns` as an incomplete feature This PR removes the `incomplete_feature` warning for `deref_patterns`. The reason given for this in the tracking issue (rust-lang#87121) was > Per policy, the `incomplete_feature` is supposed to stay on until the feature has an accepted RFC. We're slowly working on writing up that RFC so it'll take some more time unfortunately. > > I don't know of any compiler crashes it causes today. The feature should be pretty usable. However, I could not find any evidence of such a policy. The [lint documentation](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#incomplete-features) for `incomplete_features` also only mentions features that are more likely to cause errors. There are also many other features without an RFC that are not considered incomplete, e.g. `macro_metavar_expr_concat`, `negative_impls` or `yeet_expr`. The feature does not cause any known ICEs either. The concrete motivation is to use this feature to replace `box_patterns` in the compiler and pave the way towards removing that legacy feature.
…ete, r=fee1-dead,Nadrieril stop marking `deref_patterns` as an incomplete feature This PR removes the `incomplete_feature` warning for `deref_patterns`. The reason given for this in the tracking issue (rust-lang#87121) was > Per policy, the `incomplete_feature` is supposed to stay on until the feature has an accepted RFC. We're slowly working on writing up that RFC so it'll take some more time unfortunately. > > I don't know of any compiler crashes it causes today. The feature should be pretty usable. However, I could not find any evidence of such a policy. The [lint documentation](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#incomplete-features) for `incomplete_features` also only mentions features that are more likely to cause errors. There are also many other features without an RFC that are not considered incomplete, e.g. `macro_metavar_expr_concat`, `negative_impls` or `yeet_expr`. The feature does not cause any known ICEs either. The concrete motivation is to use this feature to replace `box_patterns` in the compiler and pave the way towards removing that legacy feature.
…ete, r=fee1-dead,Nadrieril stop marking `deref_patterns` as an incomplete feature This PR removes the `incomplete_feature` warning for `deref_patterns`. The reason given for this in the tracking issue (rust-lang#87121) was > Per policy, the `incomplete_feature` is supposed to stay on until the feature has an accepted RFC. We're slowly working on writing up that RFC so it'll take some more time unfortunately. > > I don't know of any compiler crashes it causes today. The feature should be pretty usable. However, I could not find any evidence of such a policy. The [lint documentation](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#incomplete-features) for `incomplete_features` also only mentions features that are more likely to cause errors. There are also many other features without an RFC that are not considered incomplete, e.g. `macro_metavar_expr_concat`, `negative_impls` or `yeet_expr`. The feature does not cause any known ICEs either. The concrete motivation is to use this feature to replace `box_patterns` in the compiler and pave the way towards removing that legacy feature.
Uh oh!
There was an error while loading. Please reload this page.
Rollup merge of #153053 - cyrgani:deref-patterns-not-imcomplete, r=fee1-dead,Nadrieril stop marking `deref_patterns` as an incomplete feature This PR removes the `incomplete_feature` warning for `deref_patterns`. The reason given for this in the tracking issue (#87121) was > Per policy, the `incomplete_feature` is supposed to stay on until the feature has an accepted RFC. We're slowly working on writing up that RFC so it'll take some more time unfortunately. > > I don't know of any compiler crashes it causes today. The feature should be pretty usable. However, I could not find any evidence of such a policy. The [lint documentation](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#incomplete-features) for `incomplete_features` also only mentions features that are more likely to cause errors. There are also many other features without an RFC that are not considered incomplete, e.g. `macro_metavar_expr_concat`, `negative_impls` or `yeet_expr`. The feature does not cause any known ICEs either. The concrete motivation is to use this feature to replace `box_patterns` in the compiler and pave the way towards removing that legacy feature.
…uwer Rollup of 4 pull requests Successful merges: - rust-lang/rust#147834 (Always make tuple elements a coercion site) - rust-lang/rust#150446 (miri/const eval: support `MaybeDangling`) - rust-lang/rust#153053 (stop marking `deref_patterns` as an incomplete feature) - rust-lang/rust#153398 (fix ICE in `const_c_variadic` when passing ZSTs)
m-hugo
commented
Mar 15, 2026
is ‘experimental’ and 'incomplete_feature' even the same thing? |
Nadrieril
commented
Mar 16, 2026
It's how I've seen this piece of documentation interpreted over the years. We don't really have anything else that looks like "marking a feature gate as experimental". But I agree it would be better to have one such thing, insofar as we do want to continue having this policy. |
This PR removes the
incomplete_featurewarning forderef_patterns. The reason given for this in the tracking issue (#87121) wasHowever, I could not find any evidence of such a policy. The lint documentation for
incomplete_featuresalso only mentions features that are more likely to cause errors.There are also many other features without an RFC that are not considered incomplete, e.g.
macro_metavar_expr_concat,negative_implsoryeet_expr.The feature does not cause any known ICEs either.
The concrete motivation is to use this feature to replace
box_patternsin the compiler and pave the way towards removing that legacy feature.