--- title: Triage meeting 2025-08-13 tags: ["T-lang", "triage-meeting", "minutes"] date: 2025-08-13 discussion: https://rust-lang.zulipchat.com/#narrow/channel/410673-t-lang.2Fmeetings/topic/Triage.20meeting.202025-08-13 url: https://hackmd.io/T1Gws52FRjajApt8KKXAwQ --- # T-lang meeting agenda - Meeting date: 2025-08-13 ## Attendance - People: davidtwco, Eric Holk, Tyler Mandry, beef (fee1-dead), TC, Xiang, Tomas Sedovic, Lori Lorusso, Josh ## Meeting roles - Driver: TC - Minutes: Tomas Sedovic ## Scheduled meetings - 2025-08-13: "Design meeting: Field Projections" [#335](https://github.com/rust-lang/lang-team/issues/335) - 2025-08-20: "Design meeting: Extending const generics -- constraints and tradeoffs" [#340](https://github.com/rust-lang/lang-team/issues/340) - 2025-08-27: "Design meeting: Ergonomic ref-counting" [#343](https://github.com/rust-lang/lang-team/issues/343) - 2025-09-03: "Design meeting: Review RFC 3804 `cfg_alias`" [#345](https://github.com/rust-lang/lang-team/issues/345) - 2025-09-10: "Design meeting: Extending const generics -- temperature check" [#341](https://github.com/rust-lang/lang-team/issues/341) - 2025-09-17: "Design meeting: Unsafe fields RFC review" [#344](https://github.com/rust-lang/lang-team/issues/344) - 2025-10-01: "Design meeting: Wasmtime team sync" [#342](https://github.com/rust-lang/lang-team/issues/342) Edit the schedule here: https://github.com/orgs/rust-lang/projects/31/views/7. ## Announcements or custom items (Meeting attendees, feel free to add items here!) ### Guest attendee items TC: For any guests who are present, please note in this section if you're attending for the purposes of any items on (or off) the agenda in particular. beef: `offset_of!` for enums davidtwco: scalable vectors ### Welcome Lori Lorusso! Lori: This is my 2nd week on the job. I have a lot of history of community work and devrel. My job is taking half of Paul Lenz's role: outreach. Reformulating the grant program. But the bigger piece is working with the community, being an amplifier to your voice, sharing them to the wider comminuty. Bringing other communities to this community. Helping you write abstracts etc. Also inreach -- making everyone aware what other teams are doing. ### Moving right along TC: As we've been doing recently, due to the impressive backlog, I'm going to push the pace a bit. If it's ever too fast or you need a moment before we move on, please raise a hand and we'll pause. ### Design meeting at 12:30 EST / 09:30 PST / 17:30 CET TC: Remember that we have a design/planning meeting that starts half an hour after this call ends. ### Next meeting with RfL We're next meeting with RfL on 2025-04-23 to review the status of RfL project goals. https://github.com/rust-lang/rfcs/pull/3614 ## Rust 2025 review ### Meta TC: We should start thinking about Rust 2025. Our motivating priorities are: - Make every edition a success. - Do so without requiring heroics from anyone. - ...or stressing anyone or everyone out. The tentative timeline will be: | Date | Version | Edition stage | |------------|---------------|--------------------------------| | 2025-04-03 | Release v1.86 | Checking off items... | | 2025-05-15 | Release v1.87 | Checking off items... | | 2025-06-26 | Release v1.88 | Checking off items... | | 2025-08-07 | Release v1.89 | Checking off items... | | 2025-09-12 | Branch v1.91 | Go / no go on all items | | 2025-09-18 | Release v1.90 | | | 2025-10-24 | Branch v1.92 | Stabilize Rust 2025 on nightly | | 2025-10-30 | Release v1.91 | Rust 2025 nightly beta | | 2025-12-05 | Branch v1.93 | Cut Rust 2025 to beta | | 2025-12-11 | Release v1.92 | Announce Rust 2025 is pending | | 2026-01-22 | Release v1.93 | Release Rust 2025 | None. ## Nominated RFCs, PRs, and issues ### "Tracking Issue for enum access in offset_of" rust#120141 **Link:** https://github.com/rust-lang/rust/issues/120141 TC: We decided to do `try_offset_of!` that returns an `Option<usize>` so as to save space for a layout optimization on enums when one of the fields of an enum variant is uninhabited. People on the issue want us to reconsider in light of discussion of various drawbacks. We're glad to have fee1-dead here with us, and he can speak to that. fee1-dead: In the last meeting around the try_offset_of, the assumption was that we could unwrap try_offset_of in const context. That has its drawbacks because it's an official invitation for a variant being inhabited being a semver guarantee and users could depend on that. If a type suddenly becomes inhabited, that could become an issue. I posnted a comment here: https://github.com/rust-lang/rust/issues/120141#issuecomment-3180269271 Scott: The note about people treating this as a semver guarantee: we said that where exactly the offset is us not a semver guarantee. Is there anything here that's making it more of a semver issue? fee1-dead: The original issue was that the offset would be ??. That would be a compiler error. If you ship an offset_of! macro that would do unwrap in a const block, it would make these post mono changes that would make it a semver guarantee. Scott: I understand it would make compiler errors based on memory layout, but that's already possible with offset_of? fee1-dead: But every use for offset_of for enums has to be covered by this. You never know if any field becomes inhabited. TC: One thing I'd note is that there's a proposal I made in the thread related to this. If we do the post-mono error as part of `offset_of!`, we may indeed be encouraging people to rely on the post-mono error, and we might want to think more about that. My proposal is, let's change the stabilization order. Let's focus on `try_offset_of!` first. We can then consider what to do with `offset_of!` later. Tyler: What's an example of a situation where an enum varient that's inhabited suddenly becomes uninhabited in a semver-compatible change? fee1-dead: E.g. you have a wrapper type that has a field that's `Option<T>` and you change the type to `T`. Option cannot become inhabited, but T could. `struct Wrapper<T>(Option<T>)` changing to `struct Wrapper<T>(T)` would break `offset_of!(Some.0)` for `Option<Wrapper<!>>` TC: There's discussion of this in our minutes from the last called where we talked about this. Josh: the idea of a semver guarantee is a bit fuzzy here. Similar to size_of, align_of etc. you can call them on even external types. And you shouldn't rely on them unless there's an explicit guarantee from the author of the type. This would be similar. I expect that 90% of the offset_of is going to be on your types. And 90% of the other cases would be types from the standard library. So things that are fundamental like `Result` or `Option`. I think it's worth worrying about the semver concerns, but I don't think it should block. Tyler: +1 to what Josh said. I feel we can resolve this at the lint still if you rely on a type you don't control. Similarly if you're in generic code. Possibly start with stabilizing try_offset_off and stabilize offset_of once we have the lint. scottmcm: Tyler, line 260 in <https://hackmd.io/5jp-fFeYTHeTIffmmqb6zA> what the best I could come up with. TC: We have to move on to other items but fee1-dead thank you for being here. ### "Make sure to treat only param where clauses as inherent" rust#145262 **Link:** https://github.com/rust-lang/rust/pull/145262 TC: We've been talking a lot about the quirks of method resolutions in the context of arbitrary_self_types. One aspact of method resolution is some trait method candidates -- those that come from a trait that bounds a type that equates to a generic parameter -- are treated as "inherent". But a recent PR caused us to treat trait candidates that come from something that walks down the deref chain from the type parameter as being inherent. It was noticed first due to causing people to get warnings about redundant imports. TC: This is similar to something we might actually want to consider doing for real, but we should do it intentionally. Right now we should take this back. There's a crater run scheduled but I don't think it will uncover anything, even though it is quite likely people will trip over this. It's just too soon, and most of the code we'll break hasn't been written or released yet. Josh: They're likely to experience this by having deny warnings in CI etc, and then that will lead them to modify their code in ways that depend on this. Do you have an example that shows a warning? TC: See: https://github.com/rust-lang/rust/pull/145262#issuecomment-3177655045 TC: g1 and g3 work in every version of Rust. g2 fails in every version. g4 is the one that works in 1.89. TC: The reason is that T is a type parameter. Josh: So if this were written as `impl Deref` instead of `T: Deref` it would work the same way? TC: Yes, see my follow-up comment about `g5`. Scott: The types people seem confident that we should do this. It was not intentional, it is a bug. The piece I'm worried about is that if there's a warning that's encouraging people to use this, the 6 weeks before this goes out will affect a lot of peole. TC: This will affect a lot of people. Even if we do a point release. Scott: Is this something we want to push a point release ASAP? If we wait to ship the revert during normal processes, it will cause a lot of issues. TC: I think we should absolutely be pushing for a point release. TC: There was a discussion on whether this is even a lang thing. I think it absolutely is. We're pushing people to do a wrong thing on stable rust via a lint, and we're then going to break that. Scott: I think it ought to have an FCP. TC: Even if the crater run's clean we're going to be punishing people for following our lints. And anyway, it's an accidental stabilization, and there are intrinsic reasons we should be reviewing those. Tyler: What is the example of the lint? TC: If you take my example and you import the `TrA`, you'll get a lint on the g4 case. Tyler: Agreed, we should do a point release. ### "fix drop scope for `super let` bindings within `if let`" rust#145342 **Link:** https://github.com/rust-lang/rust/pull/145342 TC: This is a drop order issue with respect to let chains when using the `pin!` macro and therefore `super let`. Also, shout out to `theemathas` for finding this and many other weird corner cases in recent work. Josh: They showed up on some macros issues and discovered great test cases hitting interesting corner cases. I very much appreciate that. ScottMcM: the person is https://rust-lang.zulipchat.com/#user/739695 on Zulip TC: On this issue... interesting, we're not dropping in the right order. Scott: By using super let we've bound ourselves. And I've no idea how far super let has pushed this and so I have no idea what the correct order should be. Tyler: Good point, that's kind of underspecified. Josh: We talked about "one scope outward" but the exact line between one scope and two scopes can be a little fuzzy. Scott: Especially in let chains. TC: There's a particular identity equation that we've been leaning on for the meaning of super let. We can use that here. The identity is: ```rust &EXPR === { super let x = &EXPR; x } ``` The `pin!` is creating an inner block. We're trying to pretend the block isn't there and we had something like `&pin mut`. And so this should behave identically to `&mut`, e.g. with respect to lifetime extension. Tyler: +1 Josh: +1 Tyler: You made a comparison to a lifetime extension. I'm not sure I 100% understand those as being the same thing. But regardless I think in this case super should break it out one level and pretend the braces aren't there. TC: Technically, we should be talking about extending the temporary scopes of certain expressions. That's what we're really doing. Tyler: +1. Tyler: compiler-errors asked whether tihs needs a crater run. I think so. I'd be unsurprised if the crater run is entirely clean. Scott: This feels like the kind of thing that no-one's tests would catch even if it broke them. TC: I fired it off. ### "Remove impl `PinCoerceUnsized` for `Pin`" rust#144896 **Link:** https://github.com/rust-lang/rust/pull/144896 TC: Alice proposes to remove the impl. Obviously that's a breaking change. The crater run was clean. This is fixing a soundness issue. TC: Why are we removing the impl rather than adding a blocking impl for `DerefMut`? That seems the obvious question not answered in the thread. Scott: This feels like an exemplar of the kind of change we're not allowed to make. TC: We are if it's fixing a soundness issue. Scott: I definitely would have preferred a solution of using a blocking impl same as we did for `Clone` `&mut`. If the problem is just one particular trait and not a general problem. If it's just one thing vs. this impl is never going to be ok fundamentally. Scott: This is a nightly trait. But it's still exposed to something? TC: `CoerceUnsized` is a nightly trait, but implementing it has effect. People can't write bounds on this. So it's whatever side effects the impl of the trait has. Scott: It must allow unsizing? TC: It allows unsizing whet the pointee is pinned. Scott: So it lets you go from a pin of array to pin of a slice? Scott: So saying "no you don't get to write Deref for pin seems fine?" Is there a reason people would be writing their own deref? They should be implementing Unpin instead, right? TC: What do you mean exactly? Scott: you shouldn't write `impl Deref for Pin<&mut MyType>`. Pin has a Deref. You'd have to have your own impl for Pin for a type you own that's not generic and it's not deref. That's a pretty weird type to write. Tyler: Pointer type that's not Deref? Plausible but niche. Scott: Feels to be in the space of "this is not what Pin is for" TC: I'll have a look at this after the discussion and leave a question. ### "Tracking Issue for Scalable Vectors" rust#145052 **Link:** https://github.com/rust-lang/rust/issues/145052 David: This is the follow-up to the sized hierarcyh work. That work isn't finished but there's enough. We're waiting on the trait solver. But there are parts that we can do. There are questions around interaction between these types, target features etc. I'd like to have an experiment in the compiler itself. TC: Makes sense. Do we have a champion for this? Tyler: I believe Niko's volunteering to champion this. Scott: My instinct is that we're doing other things related to this in lang that the experiment is de-facto approved. TC: David, your experiment is approved, and we'll appoint Niko to champion in absentia. Scott: From the lang side the experiemnt is obvious. Tyler: I'm curious to see how easy are these types to work with. Can you put them on stack, etc. David: There's a draft RFC that explains all that stuff to the extent we understand here. Scott: My lang hat for this is "oh yeah absolutely". My compiler hat: ?? ### "cfg_select: Support unbraced expressions" rust#145233 **Link:** https://github.com/rust-lang/rust/pull/145233 TC: Look at the files changed. Scroll to the bottom, see the bottom test case. Libs API said it's fine. Does anyone have a problem with this? If so, now would be the time for us to mention it. Scott: I wish we had the macro_rules matcher to look at. But if what you've effectively just changed the block to expr. Josh: that's close. If it starts with a brace, parse it with a TokenTree (which can be not an expression). If it doesn't it parse it as an expression and expect a trailing comma. TC: Is that similar to the rule for match expressions? Josh: This is taken from the match arm expression code. Scott: For match the right-hand-side is always an expression. Josh: The code for parsing the expression is taken directly from parsing a match arm. It's the code looking at the brace that's happening before. Scott: Why is it a TokenTree and not a block? Josh: It can happen at a top-level too. If it's wrapped in braces, it'll parse the token tree. If it's not in braces, it will treat it as an expression. I added a bunch of test cases. Worth reading `arm_rhs_expr_3`. Scott: I'd be happy if this was just Libs API because you can just write this as a proc macro, right? TC: I'm going to want to see Lang on the stabilization. For now, we should just signal our approval on this change by meeting consensus. Josh: Given this is unstable, what we're looking for is lang looking on this and saying "yeah this is fine". Do we have objections to this going in unstable? Josh: I'll update the tracking issue to make sure this is evaluated for the stabilization. ### "Do not materialise X in [X; 0] when X is unsizing a const" rust#145277 **Link:** https://github.com/rust-lang/rust/pull/145277 TC: I kicked off an FCP here. Scott: I vaguely recall some time where we didn't emit the expression that was in there for `; 0`. Trying to remember what that was and how to relate it to this one given the title similarities. TC: The behavior here -- the drop only being triggered when you ascribe the type -- is fundamentally wrong. Scott: The description does sound suspicious. Tyler: Essentially we're copying the const. Scott: It's related to "we accidentally stabilized const there"? Scary. Tyler: Whatever's happening seems wrong. TC: theemathas also shows how this affects static semantics too. (The meeting ended here.) --- ### "Match guard can both move and static-promote a single constant." rust#145237 **Link:** https://github.com/rust-lang/rust/issues/145237 TC: Another one from theemathas. We'll look at this and be ready for the next time. ### "Add `homogeneous_try_blocks` RFC" rfcs#3721 **Link:** https://github.com/rust-lang/rfcs/pull/3721 ### "repr(ordered_fields)" rfcs#3845 **Link:** https://github.com/rust-lang/rfcs/pull/3845 ### "`rustc_const_eval`: respect `target.min_global_align`" rust#142198 **Link:** https://github.com/rust-lang/rust/pull/142198 ### "Stabilize the `breakpoint` function" rust#142325 **Link:** https://github.com/rust-lang/rust/pull/142325 ## On radar RFCs, PRs, and issues ### "Fallback `{float}` to `f32` when `f32: From<{float}>` and add `impl From<f16> for f32`" rust#139087 **Link:** https://github.com/rust-lang/rust/pull/139087 ### "[WIP] Forbid object lifetime changing pointer casts" rust#136776 **Link:** https://github.com/rust-lang/rust/pull/136776 ### "Tracking issue for `cfg_select` (formerly `cfg_match`)" rust#115585 **Link:** https://github.com/rust-lang/rust/issues/115585 ### "Split elided_lifetime_in_paths into finer-grained lints" rust#120808 **Link:** https://github.com/rust-lang/rust/pull/120808 ### "Arbitrary self types v2: stabilize" rust#135881 **Link:** https://github.com/rust-lang/rust/pull/135881 ### "Stabilize return type notation (RFC 3654)" rust#138424 **Link:** https://github.com/rust-lang/rust/pull/138424 ### "`#[target_feature]` mismatch on unsafe trait fn vs its impl causes sneaky UB" rust#139368 **Link:** https://github.com/rust-lang/rust/issues/139368 ### "Spurious irrefutable_let_patterns warning with let-chain" rust#139369 **Link:** https://github.com/rust-lang/rust/issues/139369 ### "Stabilize `fn_align`: `#[align(N)]` on functions" rust#140261 **Link:** https://github.com/rust-lang/rust/pull/140261 ### "`core::marker::NoCell` in bounds (previously known an `Freeze`)" rfcs#3633 **Link:** https://github.com/rust-lang/rfcs/pull/3633 ### "Unsafe derives and attributes" rfcs#3715 **Link:** https://github.com/rust-lang/rfcs/pull/3715 ### "[RFC] Allow packed types to transitively contain aligned types" rfcs#3718 **Link:** https://github.com/rust-lang/rfcs/pull/3718 ### "RFC: Add an attribute for raising the alignment of various items" rfcs#3806 **Link:** https://github.com/rust-lang/rfcs/pull/3806 ### "Tracking issue for RFC 2523, `#[cfg(version(..))]`" rust#64796 **Link:** https://github.com/rust-lang/rust/issues/64796 ### "Tracking issue: Support for pointers with `asm_const`" rust#128464 **Link:** https://github.com/rust-lang/rust/issues/128464 ### "lexer: Treat more floats with empty exponent as valid tokens" rust#131656 **Link:** https://github.com/rust-lang/rust/pull/131656 ### "An unsafe const fn being used to compute an array length or const generic is incorrectly described as being an "item"." rust#133441 **Link:** https://github.com/rust-lang/rust/issues/133441 ### "Stabilize `derive(CoercePointee)`" rust#133820 **Link:** https://github.com/rust-lang/rust/pull/133820 ### "experiment with relaxing the orphan rule" rust#136979 **Link:** https://github.com/rust-lang/rust/issues/136979 ### "Tracking issue for unsupported_calling_conventions (cdecl, stdcall, fastcall)" rust#137018 **Link:** https://github.com/rust-lang/rust/issues/137018 ### "Oddity with lifetime elision and type aliases" rust#140611 **Link:** https://github.com/rust-lang/rust/issues/140611 ### "Add `core::ptr::assume_moved`" rfcs#3700 **Link:** https://github.com/rust-lang/rfcs/pull/3700 ### "#[deprecated] lint doesn't trigger when overriding deprecated method" rust#98990 **Link:** https://github.com/rust-lang/rust/issues/98990 ### "Tracking Issue for unicode and escape codes in literals" rust#116907 **Link:** https://github.com/rust-lang/rust/issues/116907 ### "Tracking Issue for enum access in offset_of" rust#120141 **Link:** https://github.com/rust-lang/rust/issues/120141 ### "sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets" rust#123617 **Link:** https://github.com/rust-lang/rust/pull/123617 ### "Built-in attributes are treated differently vs prelude attributes, unstable built-in attributes can name-collide with stable macro, and built-in attributes can break back-compat" rust#134963 **Link:** https://github.com/rust-lang/rust/issues/134963 ### "Decide on behavior of `anonymous_lifetime_in_impl_trait`" rust#137575 **Link:** https://github.com/rust-lang/rust/issues/137575 ### "`rustc_const_eval`: respect `target.min_global_align`" rust#142198 **Link:** https://github.com/rust-lang/rust/pull/142198 ### "[RFC] Add `#[export_ordinal(n)]` attribute" rfcs#3641 **Link:** https://github.com/rust-lang/rfcs/pull/3641 ### "RFC: No (opsem) Magic Boxes" rfcs#3712 **Link:** https://github.com/rust-lang/rfcs/pull/3712 ### "Tracking Issue: Procedural Macro Diagnostics (RFC 1566)" rust#54140 **Link:** https://github.com/rust-lang/rust/issues/54140 ### "Remove unstable cfg `target(...)` compact feature" rust#130780 **Link:** https://github.com/rust-lang/rust/pull/130780 ### "Strengthen the follow-set rule for macros" rust#131025 **Link:** https://github.com/rust-lang/rust/issues/131025 ### "Warn about C-style octal literals" rust#131309 **Link:** https://github.com/rust-lang/rust/pull/131309 ### "Add lint against (some) interior mutable consts" rust#132146 **Link:** https://github.com/rust-lang/rust/pull/132146 ### "RFC: Improved State Machine Codegen" rfcs#3720 **Link:** https://github.com/rust-lang/rfcs/pull/3720 ### "Add `must-use-output` attribute" rfcs#3773 **Link:** https://github.com/rust-lang/rfcs/pull/3773 ### "Effective breakage to `jiff` due to `ambiguous_negative_literals`" rust#128287 **Link:** https://github.com/rust-lang/rust/issues/128287 ### "Simplify lightweight clones, including into closures and async blocks" rfcs#3680 **Link:** https://github.com/rust-lang/rfcs/pull/3680 ### "Macro fragment fields" rfcs#3714 **Link:** https://github.com/rust-lang/rfcs/pull/3714 ### "Elided lifetime changes in `rust_2018_idioms` lint is very noisy and results in dramatically degraded APIs for Bevy" rust#131725 **Link:** https://github.com/rust-lang/rust/issues/131725 ### "Coercing &mut to *const should not create a shared reference" rust#56604 **Link:** https://github.com/rust-lang/rust/issues/56604 ### "#[cold] on match arms" rust#120193 **Link:** https://github.com/rust-lang/rust/pull/120193 ### "`is` operator for pattern-matching and binding" rfcs#3573 **Link:** https://github.com/rust-lang/rfcs/pull/3573 ### "Unsafe fields" rfcs#3458 **Link:** https://github.com/rust-lang/rfcs/pull/3458 ### "RFC: Allow symbol re-export in cdylib crate from linked staticlib" rfcs#3556 **Link:** https://github.com/rust-lang/rfcs/pull/3556 ### "Hierarchy of Sized traits" rfcs#3729 **Link:** https://github.com/rust-lang/rfcs/pull/3729 ### "Language vs. implementation threat models and implications for TypeId collision resistance" rust#129030 **Link:** https://github.com/rust-lang/rust/issues/129030 ### "RFC: inherent trait implementation" rfcs#2375 **Link:** https://github.com/rust-lang/rfcs/pull/2375 ### "Raw Keywords" rfcs#3098 **Link:** https://github.com/rust-lang/rfcs/pull/3098 ### "RFC: Implementable trait aliases" rfcs#3437 **Link:** https://github.com/rust-lang/rfcs/pull/3437 ### "Should Rust still ignore SIGPIPE by default?" rust#62569 **Link:** https://github.com/rust-lang/rust/issues/62569 ### "types team / lang team interaction" rust#116557 **Link:** https://github.com/rust-lang/rust/issues/116557 ### "Trait method impl restrictions" rfcs#3678 **Link:** https://github.com/rust-lang/rfcs/pull/3678 ### "Closing issues relevant to T-lang on this repo" rfcs#3756 **Link:** https://github.com/rust-lang/rfcs/issues/3756 ### "Implement `PartialOrd` and `Ord` for `Discriminant`" rust#106418 **Link:** https://github.com/rust-lang/rust/pull/106418 ### "Fallout from expansion of redundant import checking" rust#121708 **Link:** https://github.com/rust-lang/rust/issues/121708 ### "What are the guarantees around which constants (and callees) in a function get monomorphized?" rust#122301 **Link:** https://github.com/rust-lang/rust/issues/122301 ### "Policy for lint expansions" rust#122759 **Link:** https://github.com/rust-lang/rust/issues/122759 ### "Decide on path forward for attributes on expressions" rust#127436 **Link:** https://github.com/rust-lang/rust/issues/127436 ### "`continue` expressions in loop conditions" rust#118673 **Link:** https://github.com/rust-lang/rust/issues/118673 ### "Tracking Issue for `breakpoint` feature (`core::arch::breakpoint`)" rust#133724 **Link:** https://github.com/rust-lang/rust/issues/133724 ### "`fn_cast!` macro" rust#140803 **Link:** https://github.com/rust-lang/rust/issues/140803 ### "Permit duplicate imports" rust#141043 **Link:** https://github.com/rust-lang/rust/pull/141043 ### "Stabilize `if let` guards (`feature(if_let_guard)`)" rust#141295 **Link:** https://github.com/rust-lang/rust/pull/141295 ### "RFC: Allow type inference for const or static" rfcs#3546 **Link:** https://github.com/rust-lang/rfcs/pull/3546 ### "RFC: Unsafe Set Enum Discriminants" rfcs#3727 **Link:** https://github.com/rust-lang/rfcs/pull/3727 ### "RFC: naming groups of configuration with `cfg_alias`" rfcs#3804 **Link:** https://github.com/rust-lang/rfcs/pull/3804 ### "de-RFC: Remove unsized_locals" rfcs#3829 **Link:** https://github.com/rust-lang/rfcs/pull/3829 ### "Next-Gen `transmute`" rfcs#3844 **Link:** https://github.com/rust-lang/rfcs/pull/3844 ### "Pass pointers to `const` in assembly" rfcs#3848 **Link:** https://github.com/rust-lang/rfcs/pull/3848 ### "Decide what we want about `macro_metavar_expr`" rust#137581 **Link:** https://github.com/rust-lang/rust/issues/137581 ### "Allow while let chains on all editions" rust#140204 **Link:** https://github.com/rust-lang/rust/pull/140204 ### "Lang proposal: Allow `#[cfg(...)]` within `asm!`" rust#140279 **Link:** https://github.com/rust-lang/rust/issues/140279 ### "Add new `function_casts_as_integer` lint" rust#141470 **Link:** https://github.com/rust-lang/rust/pull/141470 ### "Consider folkertdev's `c_variadic` proposal" rust#141524 **Link:** https://github.com/rust-lang/rust/issues/141524 ### "Permit attributes inside use-trees" rust#141704 **Link:** https://github.com/rust-lang/rust/issues/141704 ### "Stabilize `#[cfg(version(...))]`, take 2" rust#141766 **Link:** https://github.com/rust-lang/rust/pull/141766 ### "Should a `[..]` slice pattern constitute a discriminant read" rust#141825 **Link:** https://github.com/rust-lang/rust/issues/141825 ### "Decision: Use the condition name `rust_version` for RFC 2523" rust#142651 **Link:** https://github.com/rust-lang/rust/issues/142651 ### "Stabilize `-Cmin-function-alignment`" rust#142824 **Link:** https://github.com/rust-lang/rust/pull/142824 ### "Warn or error on duplicate attributes" rust#142836 **Link:** https://github.com/rust-lang/rust/issues/142836 ### "A path towards erroring on nonsense attributes" rust#142838 **Link:** https://github.com/rust-lang/rust/issues/142838 ### "const-eval can construct uninhabited values via recursive static initialization" rust#143047 **Link:** https://github.com/rust-lang/rust/issues/143047 ### "Port `#[link]` to the new attribute parsing infrastructure " rust#143193 **Link:** https://github.com/rust-lang/rust/pull/143193 ### "Nested panics and `std::thread::panicking`" rust#143612 **Link:** https://github.com/rust-lang/rust/issues/143612 ### "`c_variadic`: Add future-incompatibility warning for `...` arguments without a pattern outside of `extern` blocks" rust#143619 **Link:** https://github.com/rust-lang/rust/pull/143619 ### "Should_panic can be applied to non-tests" rust#143799 **Link:** https://github.com/rust-lang/rust/issues/143799 ### "Port #[macro_export] to the new attribute parsing infrastructure" rust#143857 **Link:** https://github.com/rust-lang/rust/pull/143857 ### "stabilize c-style varargs for system, sysv64, win64, efiapi, aapcs" rust#144066 **Link:** https://github.com/rust-lang/rust/pull/144066 ### "const-eval: full support for pointer fragments" rust#144081 **Link:** https://github.com/rust-lang/rust/pull/144081 ### "Add lint against integer to pointer transmutes" rust#144531 **Link:** https://github.com/rust-lang/rust/pull/144531 ### "Stabilize `sse4a` and `tbm` target features" rust#144542 **Link:** https://github.com/rust-lang/rust/pull/144542 ### "Rewrite the new attribute argument parser" rust#144689 **Link:** https://github.com/rust-lang/rust/pull/144689 ### "Don't warn on never to any `as` casts as unreachable" rust#144804 **Link:** https://github.com/rust-lang/rust/pull/144804 ### "Tracking Issue for `cell_get_cloned`" rust#145329 **Link:** https://github.com/rust-lang/rust/issues/145329 ## Action item review - [Action items list](https://hackmd.io/gstfhtXYTHa3Jv-P_2RK7A) ## Pending lang team project proposals None. ## PRs on the lang-team repo ### "Frequently requested changes: add bypassing visibility" lang-team#323 **Link:** https://github.com/rust-lang/lang-team/pull/323 ### "Add soqb`s design doc to variadics notes" lang-team#236 **Link:** https://github.com/rust-lang/lang-team/pull/236 ### "Update auto traits design notes with recent discussion" lang-team#237 **Link:** https://github.com/rust-lang/lang-team/pull/237 ### "Update hackmd link to a public link" lang-team#258 **Link:** https://github.com/rust-lang/lang-team/pull/258 ### "Adding a link to "how to add a feature gate" in the experimenting how-to" lang-team#267 **Link:** https://github.com/rust-lang/lang-team/pull/267 ### "text describing how other teams are enabled to make decisions." lang-team#290 **Link:** https://github.com/rust-lang/lang-team/pull/290 ### "Fix link to agenda template" lang-team#315 **Link:** https://github.com/rust-lang/lang-team/pull/315 ### "new decision process" lang-team#326 **Link:** https://github.com/rust-lang/lang-team/pull/326 ### "Clarify that taking input in coroutines currently uses 'yield expressions'" lang-team#328 **Link:** https://github.com/rust-lang/lang-team/pull/328 ### "Document experimental `P-lang-drag-[0-4]` and `I-lang-easy-decision`" lang-team#330 **Link:** https://github.com/rust-lang/lang-team/pull/330 ## RFCs waiting to be merged ### "[RFC] Add `#[export_ordinal(n)]` attribute" rfcs#3641 **Link:** https://github.com/rust-lang/rfcs/pull/3641 ### "Closing issues relevant to T-lang on this repo" rfcs#3756 **Link:** https://github.com/rust-lang/rfcs/issues/3756 ## `S-waiting-on-team` ### "Fallback `{float}` to `f32` when `f32: From<{float}>` and add `impl From<f16> for f32`" rust#139087 **Link:** https://github.com/rust-lang/rust/pull/139087 ### "Stabilize `fn_align`: `#[align(N)]` on functions" rust#140261 **Link:** https://github.com/rust-lang/rust/pull/140261 ### "lexer: Treat more floats with empty exponent as valid tokens" rust#131656 **Link:** https://github.com/rust-lang/rust/pull/131656 ### "`repr(tag = ...)` for type aliases" rfcs#3659 **Link:** https://github.com/rust-lang/rfcs/pull/3659 ### "Remove unstable cfg `target(...)` compact feature" rust#130780 **Link:** https://github.com/rust-lang/rust/pull/130780 ### "Add lint against (some) interior mutable consts" rust#132146 **Link:** https://github.com/rust-lang/rust/pull/132146 ### "Stabilize the `breakpoint` function" rust#142325 **Link:** https://github.com/rust-lang/rust/pull/142325 ### "#[cold] on match arms" rust#120193 **Link:** https://github.com/rust-lang/rust/pull/120193 ### "Permit duplicate imports" rust#141043 **Link:** https://github.com/rust-lang/rust/pull/141043 ### "Stabilize `if let` guards (`feature(if_let_guard)`)" rust#141295 **Link:** https://github.com/rust-lang/rust/pull/141295 ### "Permissions" rfcs#3380 **Link:** https://github.com/rust-lang/rfcs/pull/3380 ### "Rename `AsyncIterator` back to `Stream`, introduce an AFIT-based `AsyncIterator` trait" rust#119550 **Link:** https://github.com/rust-lang/rust/pull/119550 ### "Tracking Issue for `bare_link_kind`" rust#132061 **Link:** https://github.com/rust-lang/rust/issues/132061 ### "Add compiler support for namespaced crates" rust#140271 **Link:** https://github.com/rust-lang/rust/pull/140271 ### "Add new `function_casts_as_integer` lint" rust#141470 **Link:** https://github.com/rust-lang/rust/pull/141470 ### "Stabilize `-Cmin-function-alignment`" rust#142824 **Link:** https://github.com/rust-lang/rust/pull/142824 ### "Add debuginfo_transparent attribute for structs" rust#144223 **Link:** https://github.com/rust-lang/rust/pull/144223 ## Proposed FCPs **Check your boxes!** ### "Make sure to treat only param where clauses as inherent" rust#145262 **Link:** https://github.com/rust-lang/rust/pull/145262 ### "Fallback `{float}` to `f32` when `f32: From<{float}>` and add `impl From<f16> for f32`" rust#139087 **Link:** https://github.com/rust-lang/rust/pull/139087 ### "[WIP] Forbid object lifetime changing pointer casts" rust#136776 **Link:** https://github.com/rust-lang/rust/pull/136776 ### "Arbitrary self types v2: stabilize" rust#135881 **Link:** https://github.com/rust-lang/rust/pull/135881 ### "Stabilize return type notation (RFC 3654)" rust#138424 **Link:** https://github.com/rust-lang/rust/pull/138424 ### "Do not materialise X in [X; 0] when X is unsizing a const" rust#145277 **Link:** https://github.com/rust-lang/rust/pull/145277 ### "`core::marker::NoCell` in bounds (previously known an `Freeze`)" rfcs#3633 **Link:** https://github.com/rust-lang/rfcs/pull/3633 ### "Unsafe derives and attributes" rfcs#3715 **Link:** https://github.com/rust-lang/rfcs/pull/3715 ### "RFC: Add an attribute for raising the alignment of various items" rfcs#3806 **Link:** https://github.com/rust-lang/rfcs/pull/3806 ### "sanitizers: Stabilize AddressSanitizer and LeakSanitizer for the Tier 1 targets" rust#123617 **Link:** https://github.com/rust-lang/rust/pull/123617 ### "RFC: No (opsem) Magic Boxes" rfcs#3712 **Link:** https://github.com/rust-lang/rfcs/pull/3712 ### "Remove unstable cfg `target(...)` compact feature" rust#130780 **Link:** https://github.com/rust-lang/rust/pull/130780 ### "Warn about C-style octal literals" rust#131309 **Link:** https://github.com/rust-lang/rust/pull/131309 ### "Stabilize the `breakpoint` function" rust#142325 **Link:** https://github.com/rust-lang/rust/pull/142325 ### "Unsafe fields" rfcs#3458 **Link:** https://github.com/rust-lang/rfcs/pull/3458 ### "[RFC] externally implementable functions" rfcs#3632 **Link:** https://github.com/rust-lang/rfcs/pull/3632 ### "Implement `PartialOrd` and `Ord` for `Discriminant`" rust#106418 **Link:** https://github.com/rust-lang/rust/pull/106418 ### "Policy for lint expansions" rust#122759 **Link:** https://github.com/rust-lang/rust/issues/122759 ### "Decide on path forward for attributes on expressions" rust#127436 **Link:** https://github.com/rust-lang/rust/issues/127436 ### "Stabilize `if let` guards (`feature(if_let_guard)`)" rust#141295 **Link:** https://github.com/rust-lang/rust/pull/141295 ### "RFC: Allow type inference for const or static" rfcs#3546 **Link:** https://github.com/rust-lang/rfcs/pull/3546 ### "Allow `&&`, `||`, and `!` in `cfg`" rfcs#3796 **Link:** https://github.com/rust-lang/rfcs/pull/3796 ### "de-RFC: Remove unsized_locals" rfcs#3829 **Link:** https://github.com/rust-lang/rfcs/pull/3829 ### "Stabilize associated type position impl Trait (ATPIT)" rust#120700 **Link:** https://github.com/rust-lang/rust/pull/120700 ### "Allow while let chains on all editions" rust#140204 **Link:** https://github.com/rust-lang/rust/pull/140204 ### "Stabilize `#[cfg(version(...))]`, take 2" rust#141766 **Link:** https://github.com/rust-lang/rust/pull/141766 ### "Decision: Use the condition name `rust_version` for RFC 2523" rust#142651 **Link:** https://github.com/rust-lang/rust/issues/142651 ### "new decision process" lang-team#326 **Link:** https://github.com/rust-lang/lang-team/pull/326 ## Active FCPs ### "Port `#[link]` to the new attribute parsing infrastructure " rust#143193 **Link:** https://github.com/rust-lang/rust/pull/143193 ### "`c_variadic`: Add future-incompatibility warning for `...` arguments without a pattern outside of `extern` blocks" rust#143619 **Link:** https://github.com/rust-lang/rust/pull/143619 ### "const-eval: full support for pointer fragments" rust#144081 **Link:** https://github.com/rust-lang/rust/pull/144081 ### "Rewrite the new attribute argument parser" rust#144689 **Link:** https://github.com/rust-lang/rust/pull/144689 ### "Don't warn on never to any `as` casts as unreachable" rust#144804 **Link:** https://github.com/rust-lang/rust/pull/144804 ## P-critical issues ### "`pin!()` has incorrect/unexpected drop order inside if-let." rust#145328 **Link:** https://github.com/rust-lang/rust/issues/145328