sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: rust
Issue: Phrasing of E0507 is ambiguous with regards to moved variables
Labels: A-diagnostics,T-compiler

Given the following code: <!-- Please provide a link to play.rust-lang.org -->

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=cf3bd67f07db7324126bcade4e68471f

```rust
fn printlen(s: String) {
    println!("s.len() = {}", s.len());
}

fn goodfunc<F: FnOnce()>(callback: F) {
    callback();
}

fn badfunc<F: Fn()>(callback: F) {
    callback();
}

fn main() {
    let a = String::from("xyz");
    let b = a.clone();
    
    goodfunc(move || {
        printlen(a);
    });
    
    badfunc(move || {
        printlen(b);
    });
}
```

The current output is:

```
Compiling playground v0.0.1 (/playground)
error[[E0507]](https://doc.rust-lang.org/stable/error-index.html#E0507): cannot move out of `b`, a captured variable in an `Fn` closure
  --> src/main.rs:23:18
   |
16 |       let b = a.clone();
   |           - captured outer variable
...
22 |       badfunc(move || {
   |  _____________-
23 | |         printlen(b);
   | |                  ^ move occurs because `b` has type `String`, which does not implement the `Copy` trait
24 | |     });
   | |_____- captured by this `Fn` closure

For more information about this error, try `rustc --explain E0507`.
error: could not compile `playground` due to previous error
```

This phrasing has favored brevity over clarity, overloading the captured variable name:

> cannot move out of `b`, a captured variable in an `Fn` closure

The comma is easy to miss but it is doing a lot of the work here. I believe there are multiple valid English-language interpretations of that comma. The one I now understand to be correct:

> The variable `b` cannot be moved out of the `Fn` closure, where it has already been captured.

The way I originally interpreted it:

> The variable `b` is captured in the `Fn` closure but that would require an invalid move out of `main`.

To properly interpret the existing error the reader has to intuit that the compiler considers there to be an implicit variable of the same name `b` existing inside the closure. That may be technically true but the explicit reference to the variable name draws the reader's attention to the only explicit declaration of `b`, in `main`. I believe either of these phrasings avoid the ambiguity while also focusing the user's attention on the problematic move:

> The capture of `b` cannot be moved out of the `Fn`

> The variable `b` cannot be moved out of `Fn` because the closure may be called multiple times.
Repository: next.js
Issue: Behavior of setting TZ inside .env changed in v12.2.5
Labels: bug

### Verify canary release

- [X] I verified that the issue exists in the latest Next.js canary release

### Provide environment information

```
    Operating System:
      Platform: linux
      Arch: x64
      Version: #1 SMP PREEMPT_DYNAMIC Wed Aug 31 17:58:15 UTC 2022
    Binaries:
      Node: 16.17.0
      npm: 8.15.0
      Yarn: 1.22.19
      pnpm: 7.10.0
    Relevant packages:
      next: 12.2.5
      eslint-config-next: 12.2.5
      react: 18.2.0
      react-dom: 18.2.0
```

### What browser are you using? (if relevant)

_No response_

### How are you deploying your application? (if relevant)

_No response_

### Describe the Bug

This isn't a bug per se, but a breaking change for me going from v12.2.4 to v12.2.5 that I wanted to report.

Previously, I had inside my .env the line `TZ=America/Argentina/Buenos_Aires` that set the timezone for the entire application. After upgrading, I've found that the timezone is set a few moments after the initialization of the app (maybe introduced in #38483). This resulted in some packages initializing in one timezone and others in another, causing a mismatch.

### Expected Behavior

I know that setting timezones inside a .env that then will be loaded is a bad idea, but this change could lead to other packages behaving weirdly because some env vars weren't set early enough.

### Link to reproduction

.

### To Reproduce

I tried to make a reproduction but I failed. This is such a niche situation that I couldn't figure out how to make a simple recreation.

If someone ends up here, I solved this by setting `TZ` outside the .env (like inside Vercel's Enviroment Variables or along the start script `TZ=America/Argentina/Buenos_Aires next start`).
Repository: TypeScript
Issue: In JS, annotating a function expression with a new signature should make it a constructor function.
Labels: Suggestion,Experience Enhancement

# Bug Report

### 🔎 Search Terms

is:issue is:open explicit assign 
is:issue is:open assign 
is:issue is:open prototype

### 🕗 Version & Regression Information

When did you start seeing this bug occur? version 4.7.4 

also tested version 4.0.5, 4.8.0-beta and nightly all seems to have same behavior
prior to 4.0,5 there seem to other issues as well

- This is the behavior in every version I tried, and I reviewed the FAQ for entries about prototype

### ⏯ Playground Link

https://www.typescriptlang.org/play?ts=4.7.4&ssl=1&ssc=77&pln=1&pc=4&filetype=js#code/PTAEFEA8AcBsEsDG8AuoUE9oFMAmpoAnAexVK21AFtsqAjbQgZ1AHNs0UALbeQ9CqGIA3RgHdCqFNgB2QuQEMmTeKxk0ZKALAAoEKADqxQgGsWAM3gzK546BnGqC2KHMBXGYhTxiMprt1gACog0AABTBxcbHNQAG84hQAKW2IALlAAMWJiAEoM7OIAGjoUnIKc-KycgF8a6uJQIOBAkPDIvBj4uOsxJKrCooISMg6K4oJxuoaAYV8mFEI3LztmgL02iME4wvq1nWEFflSARlAAXniagG5dU4A6BQvXDy8fRROyvPjQQg43QhyVLXUD1fQAeQA0kMHk94CwvuNchcAHwNUAKGT4BQnADEqVA8IadxyJ3udBBEOhoDohIRqSRqOJOlaoS2OHihTmfkWyzIhD2LQORwaACZnu5PN5fA0AMz9H7ceH3aDPOL1G66QqilUjcg4R4S17SxSiz6pZFxX7-QGuHIg+qgfQAIQAggARIba3WkfXYQ1ExEYmQYZHnNGYjDB7FmumgIORsMRkNanI66CGy6St4yhSi0VfS3WlAAoH20GgJ1gN2esUqgMsZIMhpJ9F0NxoPPiwPNxNMyPrQ78Oixy7eoi+jrkylgKFDCejQREwrRusLv3kuNBwqtldMRpEkcnXRDmn557j6dV0BzghxleY-CX2k98otpl7g8sEei3RAA


### 💻 Code

```ts
/// Explicit typed prototype members get their type overwritten on assignment
// Works fine for normal functions

/** @typedef {{a(foo: Foo): Foo,b(foo: Foo): Foo}} Foo */
/** @typedef {{new(): Foo, prototype: Foo, p: Foo}} FooConstructor */

/** @type {Foo} */
var foo1 = {};
foo1.a = function a1(foo) { return foo; } // OK, foo1.a is (foo: Foo) => Foo and a1#foo is Foo
foo1.b; // OK, b is (foo: Foo) => Foo

/** @type {FooConstructor} */
var Foo2 = function Foo3() { this.p = {} };
Foo2.prototype.a = function a21(foo) { return foo; }  // BAD, Foo2.prototype.a is (foo: any) => any and a21 is (foo: any) => any
Foo2.p.a = function a22(foo) { return foo; }  // BAD, Foo2.p.a is a(foo: Foo) => Foo but a22 is (foo: any) => any

var b21 = Foo2.prototype.b; // OK, prototype is Foo and Foo2.prototype.b is (foo: Foo) => Foo so is b21
var b22 = Foo2.p.b; // OK, p is Foo and Foo2.p.b is (foo: Foo) => Foo so is b22
```

### 🙁 Actual behavior

See comment in code the actual type is concluded from tool tip when hovering over the name in question on play ground page

### 🙂 Expected behavior

expect Foo2.prototype.* and Foo2.p.* should behave similar to foo1.*
Repository: PowerToys
Issue: [Settings] review InfoBar properties
Labels: Idea-Enhancement,Product-Settings,Priority-3

### Description of the new feature / enhancement

`<HyperlinkButton x:Uid="SeeWhatsNew"` is redundant; move to different place

| ID | change |
| --- | --- |
| General_UpToDate | IsClosable="True" |
| General_NewVersionAvailable | IsClosable="True"; Button → ActionContent |
| General_NewVersionReadyToInstall | Button → ActionContent |
| General_FailedToDownloadTheNewVersion | Button → ActionContent |
| Run_NotAccessibleWarning | Severity = ?? |
| FileExplorerPreview_PreviewHandlerOutlookIncompatibility | IsClosable="True" |
| FileExplorerPreview_RebootRequired | IsClosable="True" |
| FileExplorerPreview_ThumbnailsMightNotAppearOnRemoteFolders | Info |
| MeasureTool_ContinuousCapture_Information | Info |


### Bonus: closing

- We can make some infobars closable, and
- We can see if there are infobars that can be transformed into TeachingTips

For both, we would need a way to remember if the user has closed them. This could be via IsOpen property, or (especially for Tips) use a list with the IDs-to-show, and when a Tip is closed, we pop that ID out of the list.

### Also

> - The _indeterminate_ state for ProgressBar shows that an operation is underway, does not block user interaction with the app, and its completion time is unknown.
> - The _indeterminate_ state for ProgressRing shows that an operation is underway, blocks user interaction with the app, and its completion time is unknown.

https://learn.microsoft.com/nl-nl/windows/apps/design/controls/progress-controls

This means we should use a **ProgressBar**. (properties: IsIndeterminate, ShowPaused, ShowError)

Note to self: check ScreenReader
[Windows - Apps - Design](https://docs.microsoft.com/windows/apps/design/controls/infobar#severity)
[Win32 msg guide](https://docs.microsoft.com/windows/win32/uxguide/vis-std-icons#determining-the-appropriate-message-type)
Repository: flutter
Issue: TextField to support samsung spen handwritting input
Labels: a: text input,c: new feature,e: device-specific,platform-android,framework,f: material design,c: proposal,P2,e: samsung,team-framework,triaged-framework

## Use case

On Samsung Galaxy Devices with an SPen the TextField does not allow Handwriting input.
I read (https://github.com/flutter/flutter/issues/61278) that this is already implemented for Apple Pencil.

## Proposal

I suggest to support handwriting here too. 

## Findings

Many apps I got on my tablet does not support this at the moment. 
But e.g. the Google Play Store app or Outlook does support this.

![20220905_201454](https://user-images.githubusercontent.com/880759/188499609-750e0419-bd01-46c9-b691-9f67deea8c78.gif)
Repository: node
Issue: HTTP2 session and stream leak
Labels: http2

### Version

v18.7.0

### Platform

Linux 4.18.0-372.16.1.el8_6.0.1.x86_64

### Subsystem

HTTP2

While using HTTP2 server without any reverse proxy I noticed NodeJs process memory constantly increases, switching back to HTTPS and it works ok.
So I keep track of every HTTP2 stream using a WeakRef. After some hours there are so many valid WeakRefs although their destroyed field is true and session is undefined, also each stream has a buffer of 65kb. I have set HTTP2 **Server timeout for 2 minutes**, but some of streams are for hours before. 
Then I kept a WeakRef to session for each stream, and while the session field of stream in undefined but its WeakRef is valid and the derefed session destroyed field is also true. I checked the remote address of the session in ss output and the connection doesn't exist there too.
I think some of sessions are destroyed but not removed from the sessions poll. It also destroy session streams and set its session to undefined but as it has a pointer in session's stream poll it's not garbage collected.
Maybe this is related to https://github.com/nodejs/node/issues/42710
To overcome the memory increase I have to restart the node process every day and I think it's not really usable in this state. 

list of streams:
![image](https://user-images.githubusercontent.com/163890/188502362-1561d015-7ee5-4d02-923a-29b2285c1bc2.png)
Repository: storybook
Issue: Failed to build the preview => Cannot get final name for export '__esModule' of ./src/node_modules/pretty-format/build/index.js
Labels: bug,needs triage

**Describe the bug**
When trying to run  yarn build-storybook i'm faced with a plug in error

```
ERR!     at Compiler.close (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/lib/Compiler.js:1218:23)
ERR!     at /Users/jasonmatthews/Documents/kera-story-book/node_modules/@storybook/builder-webpack5/dist/cjs/index.js:233:20
ERR!  Error: => Webpack failed, learn more with --debug-webpack
ERR!     at /Users/jasonmatthews/Documents/kera-story-book/node_modules/@storybook/builder-webpack5/dist/cjs/index.js:234:62
ERR!     at /Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/lib/HookWebpackError.js:68:3
ERR!     at Hook.eval [as callAsync] (eval at create (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:11:1)
ERR!     at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/node_modules/tapable/lib/Hook.js:18:14)
ERR!     at Cache.shutdown (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/lib/Cache.js:150:23)
ERR!     at /Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/lib/Compiler.js:1225:15
ERR!     at Hook.eval [as callAsync] (eval at create (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
ERR!     at Hook.CALL_ASYNC_DELEGATE [as _callAsync] (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/node_modules/tapable/lib/Hook.js:18:14)
ERR!     at Compiler.close (/Users/jasonmatthews/Documents/kera-story-book/node_modules/webpack/lib/Compiler.js:1218:23)
ERR!     at /Users/jasonmatthews/Documents/kera-story-book/node_modules/@storybook/builder-webpack5/dist/cjs/index.js:233:20
info => Loading presets
error Command failed with exit code 1.
```
**System**
Environment Info:

  ***System:***
    OS: macOS 12.2
    CPU: (16) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
 ***Binaries:***
    Node: 14.18.1 - ~/.nvm/versions/node/v14.18.1/bin/node
    Yarn: 1.22.18 - /usr/local/bin/yarn
    npm: 6.14.15 - ~/.nvm/versions/node/v14.18.1/bin/npm
  ***Browsers:***
    Chrome: 105.0.5195.102
    Safari: 15.3
  ***npmPackages:***
    @storybook/addon-actions: ^6.5.10 => 6.5.10 
    @storybook/addon-essentials: ^6.5.10 => 6.5.10 
    @storybook/addon-interactions: ^6.5.10 => 6.5.10 
    @storybook/addon-links: ^6.5.10 => 6.5.10 
    @storybook/builder-webpack5: ^6.5.10 => 6.5.10 
    @storybook/manager-webpack5: ^6.5.10 => 6.5.10 
    @storybook/node-logger: ^6.5.10 => 6.5.10 
    @storybook/preset-create-react-app: ^4.1.2 => 4.1.2 
    @storybook/react: ^6.5.10 => 6.5.10 
    @storybook/testing-library: ^0.0.13 => 0.0.13
Repository: go
Issue: proposal: io: add `WriterTo` to `PipeReader` and `ReaderFrom` to `PipeWriter`
Labels: Proposal

There is opportunities to skip synchronization events, allocations and maybe even do some zero copies (if `WriteTo` and `ReadFrom` are called concurrently).

If `ReadFrom` is called this would allow `Read` to acquire a reference to the `Reader` passed in and pass the buffer slice to the reader directly (skipping a possible allocation that would have been required to copy data from `Reader` to `PipeWriter`).
If `WriteTo` is called this would allow `Write` to acquire a reference to the `Writer` passed in and pass the buffer slice to the reader directly (skipping a possible allocation that would have required to copy data from `PipeReader` to `Writer`).
If `ReadFrom` and `WriteTo` are called this would allow to call `io.Copy` (or equivalent reusing a buffer) to maybe do a zero copy between the `Writer` and `Reader`.

The implementation would need to account for the fact that `ReadFrom` can be called multiple times and `WriteTo` need to waits until the pipe is closed, but nothing that cannot be done.

The extra channels required to pass the `Writer` and `Reader` around might be much in term of extra allocations, I guess a `sync` based implementation (instead of channels) would be better (as it would just embed all synchronization primitives into the `pipe` struct).
Repository: PowerToys
Issue: Snap window to multiple adjoining panels
Labels: Idea-Enhancement,Product-FancyZones,Needs-Triage

### Description of the new feature / enhancement

Ability to snap windows across adjoining fancy zone panels.

### Scenario when this would be used?

Gives finer granularity over window size. Useful for resizing terminal emulator windows side by side with doco, or fitting more windows on a single desktop with ad-hoc sizes

### Supporting information

_No response_
Repository: godot
Issue: Interpolate in GPUParticles makes particles stutter when paused at high FPS.
Labels: bug,confirmed,topic:particles

### Godot version

4.0.alpha15

### System information

Ubuntu 22.04.1 LTS

### Issue description

https://user-images.githubusercontent.com/85438892/188526773-358bc500-d248-4c1d-8f3a-88b9847d4b3f.mp4

With high-speed particles the issue is the most evident.

### Steps to reproduce

Create a GPUParticles2D and add a process material, make the particles high-speed, increase project FPS (possibly by turning VSync off) and pause the game.

Some observations:

* At 60 FPS, the issue was non-existent.
* At higher Fixed FPS for the particles the stuttering is reduced, but present nonetheless.

### Minimal reproduction project

Didn't have time to make one, but I'll get to it later if it'd help.
Repository: godot
Issue: Saving custom resources using the ResourceSaver.FLAG_BUNDLE_RESOURCES flag causes crash on load. 
Labels: bug,discussion,topic:core

### Godot version

4.0 dev (106b68050) 4.0 dev (432b25d36)

### System information

windows 10

### Issue description

it appears loading a custom resource using `ResourceLoader.load()` on a file saved with the `ResourceSaver.FLAG_BUNDLE_RESOURCES` can result in a failure to load the file and an error "<custom_class> hides a global script class."




### Steps to reproduce

create a custom Resource, save it with the `ResourceSaver.FLAG_BUNDLE_RESOURCES` flag, then use `ResourceSaver.load()`

### Minimal reproduction project

[Minimal reproducable project.zip](https://github.com/godotengine/godot/files/9492696/Minimal.reproducable.project.zip)
Repository: godot
Issue: All frames from all animations are loaded in VRAM at AnimatedSprite creation
Labels: bug,topic:core,topic:animation

### Godot version

v3.5.stable.mono.official [991bb6ac7]

### System information

Windows 10, GLES3

### Issue description

When creating an AnimatedSprite, every sprite from every animation is initialy loaded in VRAM.  
This can be fine for pixel art, but it does not scale well with frames with more pixels in them, especially uncompressed ones.

### Steps to reproduce

- Create an AnimatedSprite.
- Add multiple animations to it.
- Add frames to the animations.
- All frames get loaded into VRAM when the AnimatedSprite is instanciated.

### Minimal reproduction project

None.
Repository: deno
Issue: FFI stack alignment on Apple silicon
Labels: bug,upstream,FFI

Upstream bug: https://bugs.chromium.org/p/v8/issues/detail?id=13171

V8 aligns everything to 8 byte boundary on arm64 while Apple diverges from that. https://developer.apple.com/documentation/xcode/writing-arm64-code-for-apple-platforms
Repository: godot
Issue: Multithreading slow performance in tool script
Labels: topic:core,performance

### Godot version

v3.5.stable.official [991bb6ac7]

### System information

Linux pop-os 5.19.0-76051900-generic, i5-3470, RX580

### Issue description

I'm trying to improve an addon for godot that has a CPU intensive task. I think this task can be nicely parallelized but it seems that tool scripts cant make good use of multiple threads.

The addon is Hungryprotons's scatter and the modifier I'm trying to improve is the relax modifier which looks up the nearest neighbour of a point and movies it away from it. I tried splitting up the nearest neighbour search to multiple threads to improve performance a bit.

The problem I'm seeing is that using 2 threads is somewhat faster (460ms from 770ms in my case), but using 3 or 4 threads is the same as 2 or a little bit slower. 

I have found this forum post that describes a similar problem.
https://godotengine.org/qa/128042/multithreading-a-function-is-slow-solved
The very last comment under the last reply suggests that release builds dont have this problem, but I dont think its possible to not use a debug build when using a tool script. 

### Steps to reproduce

Download the relevant branch from my fork:
https://github.com/Norodix/scatter/tree/RelaxMultithread

Open the `feature_list.tscn` scene under demos. 

Select the `Scatter - Relaxation` node in the scene tree.

Change the number of instances under the modifiers to 1000.

Click rebuild. The time to perform the NN search should appear on the output.

Open `scatter/src/modifiers/relax.gd` and look for line `var number_of_threads = x` and change the number of threads.

Observe how the search time changes.

### Minimal reproduction project

https://github.com/Norodix/scatter/tree/RelaxMultithread
Repository: terminal
Issue: startupActions not run when in elevated window
Labels: Issue-Feature,Area-Settings,Product-Terminal

### Windows Terminal version

4.14.2282.0

### Windows build number

10.0.22000.0

### Other Software

_No response_

### Steps to reproduce

1. Add a `startupAction` in the `settings.json` at the top level

``` 
{
  "$help": "https://aka.ms/terminal-documentation",
  "startupActions": "new-tab; new-tab",
  ...
}
```

2. Add the [`elevate` property](https://docs.microsoft.com/en-us/windows/terminal/customize-settings/profile-general#automatically-run-as-administrator) to a profile, such as the `defaults` profile
```
...
  "profiles": {
    "defaults": {
      "colorScheme": "Tango Dark",
      "elevate": true,
      ...
    },
    "list": [ ... ]
  }
...
```
3. See that the `startupActions` are not respected.
4. See that by commenting/removing the `elevate` property, that it runs the `startupActions`

### Expected Behavior

That the arguments in `startupActions` are run, even in `elevated` window

### Actual Behavior

`startupActions` are ignored/not run
Repository: pytorch
Issue: [optim] asgd : handling of complex params as real params (NaN vs inf)
Labels: module: optimizer,triaged,module: edge cases

### 🐛 Describe the bug

With patch in https://github.com/pytorch/pytorch/pull/84472

```python

def print_grad(grad):
    print("PRINT GRAD HOOK:", grad)
    return grad

a1 = torch.tensor([-0.4329+0.3561j,  0.1633+0.4901j], requires_grad=True)


a1_real = a1.real.clone().detach()
a1_imag = a1.imag.clone().detach()
a1_real.requires_grad_()
a1_imag.requires_grad_()
optimizer_constructor = torch.optim.ASGD

# Attach hook
a1.register_hook(print_grad)
a1_real.register_hook(print_grad)
a1_imag.register_hook(print_grad)

optim1 = optimizer_constructor([a1])
optim2 = optimizer_constructor([a1_real, a1_imag])

for i in range(10):
    print(f"*****{i}****")
    print(a1)
    print(a1_real, a1_imag)
    optim1.zero_grad()
    optim2.zero_grad()

    if i == 0:
        torch.testing.assert_close(a1.grad, None)
        torch.testing.assert_close(a1_real.grad, None)
        torch.testing.assert_close(a1_imag.grad, None)
    else:
        torch.testing.assert_close(a1.grad.real, a1_real.grad, equal_nan=True)
        torch.testing.assert_close(a1.grad.imag, a1_imag.grad, equal_nan=True)

    a2 = torch.complex(a1_real, a1_imag)
    torch.testing.assert_close(a1, a2)

    o = f(a1)
    o2 = f(a2)
    o.backward()
    print("GRAD:", a1.grad)
    o2.backward()
    print("REAL GRAD", a1.grad.real, a1_real.grad)
    print("IMAG GRAD", a1.grad.imag, a1_imag.grad)
    torch.testing.assert_close(a1.grad.real, a1_real.grad, equal_nan=True) # Fails here (optimizer shouldn't affect this ideally)!
    torch.testing.assert_close(a1.grad.imag, a1_imag.grad, equal_nan=True)

    optim1.step()
    optim2.step()

```

Fails with 
```
AssertionError: Tensor-likes are not close!

Mismatched elements: 1 / 2 (50.0%)
Greatest absolute difference: nan at index (1,) (up to 1e-05 allowed)
Greatest relative difference: nan at index (1,) (up to 1.3e-06 allowed)
```

NOTE:

Interestingly value printed by the hook for a1.grad is different from the next print at
`print("REAL GRAD", a1.grad.real, a1_real.grad)`.

cc: @albanD @soulitzer 

### Versions

PR : https://github.com/pytorch/pytorch/pull/84472

cc @vincentqb @jbschlosser @albanD