sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: go
Issue: os/signal: hang in TestTerminalSignal on `darwin`
Labels: OS-Darwin,NeedsInvestigation,compiler/runtime

```
#!watchflakes
post <- goos == "darwin" && pkg == "os/signal" && log ~ `test timed out` && log ~ `^\s+TestTerminalSignal\s+\(`
```

Issue created automatically to collect these failures.

Example ([log](https://build.golang.org/log/63428d6637c1788f1d854913755b1189a6358890)):

    SIGQUIT: quit
    PC=0x7ff802ac934e m=0 sigcode=0
    
    goroutine 0 gp=0xb34b560 m=0 mp=0xb34bd60 [idle]:
    runtime.kevent(0x5, 0x0, 0x0, 0x7ff7b5e25bf8, 0x40, 0x7ff7b5e25bc8)
    	/tmp/buildlet/go/src/runtime/sys_darwin.go:458 +0x2e fp=0x7ff7b5e25b70 sp=0x7ff7b5e25b50 pc=0xb132c0e
    runtime.netpoll(0xc000014030?)
    	/tmp/buildlet/go/src/runtime/netpoll_kqueue.go:141 +0xfd fp=0x7ff7b5e26410 sp=0x7ff7b5e25b70 pc=0xb10de9d
    runtime.findRunnable()
    	/tmp/buildlet/go/src/runtime/proc.go:3468 +0x8c5 fp=0x7ff7b5e26588 sp=0x7ff7b5e26410 pc=0xb119865
    ...
    panic: test timed out after 3m0s
    running tests:
    	TestTerminalSignal (2m55s)
    
    goroutine 396 gp=0xc000101180 m=6 mp=0xc00012a008 [running]:
    panic({0x603baa0?, 0xc0002040a0?})
    	/tmp/buildlet/go/src/runtime/panic.go:779 +0x158 fp=0xc0000f5f10 sp=0xc0000f5e60 pc=0x5f0f418
    testing.(*M).startAlarm.func1()
    	/tmp/buildlet/go/src/testing/testing.go:2366 +0x385 fp=0xc0000f5fe0 sp=0xc0000f5f10 pc=0x5facee5
    runtime.goexit({})
    ...
    
    goroutine 102 gp=0xc000007a40 m=nil [GC worker (idle), 2 minutes]:
    runtime.gopark(0x11fc3520920?, 0x0?, 0x0?, 0x0?, 0x0?)
    	/tmp/buildlet/go/src/runtime/proc.go:402 +0xce fp=0xc00020bf50 sp=0xc00020bf30 pc=0x5f12d8e
    runtime.gcBgMarkWorker()
    	/tmp/buildlet/go/src/runtime/mgc.go:1310 +0xe5 fp=0xc00020bfe0 sp=0xc00020bf50 pc=0x5ef42a5
    runtime.goexit({})
    	/tmp/buildlet/go/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00020bfe8 sp=0xc00020bfe0 pc=0x5f49681
    created by runtime.gcBgMarkStartWorkers in goroutine 126
    	/tmp/buildlet/go/src/runtime/mgc.go:1234 +0x1c


— [watchflakes](https://go.dev/wiki/Watchflakes)
Repository: PowerToys
Issue: The ability to remape a shortcut where the input keys are more than 3
Labels: Idea-Enhancement,Product-Keyboard Shortcut Manager,Needs-Triage

### Description of the new feature / enhancement

Remap more shortcuts

### Scenario when this would be used?

I've disabled the 'win+ctrl+d' shortcut to open virtual desktops cuz it got me killed in game (mostly csgo) multiple times in the past. After disabling that I thought finally I'm at peace but no how can I, it seems the problem still pursuits but this time I can't fix it cuz the keyboard manager doesn't allow to remap a shortcut where the input keys are more than 3, now in my case it's the 'win+ctrl+space+d', as I previously said I've disabled the shortcut to open virtual desktops which is 'win+ctrl+d' but this 'win+ctrl+space+d' also opens virtual desktops. It's so annoying and I can't do anything. So please can I get it to remap it into nothingness, turn it into dust, destroy it's existence please😭. Maybe I'm the only one facing this issue so I have very little hope of this to get added but still 

### Supporting information

_No response_
Repository: godot
Issue: Baking NavigationPolygon fails when two static body rectangular collision edges overlap for 1 pixel vertically
Labels: needs testing,topic:navigation,topic:2d

### Tested versions

Reproducible in Godot 4.2.stable

### System information

Godot v4.2.stable - macOS 14.0.0 - Vulkan (Forward+) - integrated Apple M1 - Apple M1 (8 Threads)

### Issue description

When static bodies are placed so that the edge of the outline overlaps exactly with another edge for 1 pixel vertically baking fails.

```
modules/navigation/nav_mesh_generator_2d.cpp:819 - NavigationPolygon Convex partition failed. Unable to create a valid NavigationMesh from defined polygon outline paths.
```
(In editor or via NavigationRegion2D.bake_navigation_polygon()).



The Agents -> Radius affects how this error occurs. The larger the radius, the further away the "error sweet spot" is.

# Baking with radius of 0px

## Bake fail
<img width="371" alt="Screenshot 2023-12-13 at 12 41 52 PM" src="https://github.com/godotengine/godot/assets/20733898/e28bd44b-8bbc-43fa-9ae1-1dacf527f58c">

## Bake succeed by moving 1 pixel further along edge
<img width="386" alt="Screenshot 2023-12-13 at 12 42 19 PM" src="https://github.com/godotengine/godot/assets/20733898/0e9c3eb4-b455-4384-8e48-f560b6a02221">

# Baking with radius of 5px

## Bake fail
<img width="468" alt="Screenshot 2023-12-13 at 12 43 07 PM" src="https://github.com/godotengine/godot/assets/20733898/4a62d8eb-347e-445a-b1f0-04fc57b85ca2">

## Bake succeed by moving 1 pixel further along edge
<img width="544" alt="Screenshot 2023-12-13 at 12 44 35 PM" src="https://github.com/godotengine/godot/assets/20733898/1608f8aa-318d-4de5-8d0c-c5f78cdf5ace">

## Bake succeed by lining up vertexes exactly
<img width="508" alt="Screenshot 2023-12-13 at 12 43 40 PM" src="https://github.com/godotengine/godot/assets/20733898/1f5fb1e3-cbe7-4a11-97cf-4d3c0a8c9ace">

*This behaviour is a bit odd in my opinion, but it isn't the bake failing.


### Steps to reproduce

1. Create a new NavigationRegion2D
2. Create a new NavigationPolygon for the NavigationRegion2D
   - Set Agents -> Radius to 0px, this makes the issue easier to reproduce
4. Add two StaticBody2Ds with rectangular collisions
5. Line up a vertical edge so that a single pixel of the edge overlaps
6. Click 'Bake NavigationPolygon'

### Minimal reproduction project (MRP)

[TestingNav.zip](https://github.com/godotengine/godot/files/13664169/TestingNav.zip)
Repository: go
Issue: runtime: online slice/map pre-sizing
Labels: Performance,NeedsInvestigation,compiler/runtime

The goal here is to reduce excessive time spent growing slices and maps.

The idea would be to track slice/map declaration/allocation sites (by PC, perhaps including N frames of caller context for additional precision) and the typical (approximate median?) maximum size of containers from that allocation site. Future allocations would use the median to allocate the expected size up front, thus avoid grow work.

Some thoughts from initial discussions:

* Perhaps rather than tracking allocation sites, we track grow sites. Containers would still need to grow once, but we'd expect the first growth to jump up to the expected maximum size.
* Slice allocations that specify a capacity likely need to skip this optimization in order to maintain compatibility. IMO, this is a good idea anyway, as it provides as way for authors to specify a precise capacity when they know more precisely than the median (e.g., a capacity based on the length of another slice, such as in #64595).
* ~Partially related to this: when growing, should we always align up to fill the entire size class. Leaving extra space in the size class is pure waste.~ -> already done: https://cs.opensource.google/go/go/+/master:src/runtime/slice.go;l=218;drc=d6ef98b8fa4851f025779ef4ade084d63290de2a

cc @cherrymui @mknyszek @aclements @hoeppi-google
Repository: vscode
Issue: Git - Branch on new local repo fails
Labels: bug,help wanted,git

<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- 🕮 Read our guide about submitting issues: https://github.com/microsoft/vscode/wiki/Submitting-Bugs-and-Suggestions -->
<!-- 🔎 Search existing issues to avoid creating duplicates. -->
<!-- 🧪 Test using the latest Insiders build to see if your issue has already been fixed: https://code.visualstudio.com/insiders/ -->
<!-- 💡 Instead of creating your report here, use 'Report Issue' from the 'Help' menu in VS Code to pre-fill useful information. -->
<!-- 🔧 Launch with `code --disable-extensions` to check. -->
Does this issue occur when all extensions are disabled?: Yes

<!-- 🪓 If you answered No above, use 'Help: Start Extension Bisect' from Command Palette to try to identify the cause. -->
<!-- 📣 Issues caused by an extension need to be reported directly to the extension publisher. The 'Help > Report Issue' dialog can assist with this. -->
- VS Code Version: 1.85.0 (user setup) commit af28b32d7
- OS Version: Windows_NT x64 10.0.22621

Steps to Reproduce:

1. Create new folder and enter folder: `mkdir test1 && cd test1`
2. Open vscode: `code . --disable-extensions
3. Use activity bar to initialize new repo
4. Create new text file but don't check it in
5. Use command palette to create new branch `Git: Create Branch` with name `test` 
6. Get error - "Error: Git: fatal: `Head` is not a commit and a branch `test` cannot be created from it"

    ![image](https://github.com/microsoft/vscode/assets/41597107/586656de-d853-4689-87ff-a50cb98c408a)

7. Show git command: 

    ```
    > git checkout -q -b test --no-track HEAD
    fatal: 'HEAD' is not a commit and a branch 'test' cannot be created from it
    ```

8. Reproduce branch in terminal: `git checkout -b test` => success

    ![image](https://github.com/microsoft/vscode/assets/41597107/7be3043a-75ea-40e3-b425-f419e2b3c2eb)
Repository: terminal
Issue: Request:  move the tabColor setting  from profile to  color-scheme
Labels: Help Wanted,Area-Settings,Product-Terminal,Issue-Task

Correct me if I am wrong

- You can change the color-scheme of an open tab
- But you can not change the profile of an open tab
- The color of the tab is set with tabColor in the profile (can be also done manually)

In my use case I am opening ssh sessions to different servers.  Often 2-3 tabs point at one server and 2-3 other tabs point at another.
I want to mark these tabs so I know at a glance who is who

- I can change the color-scheme of a tab so that I instinctively know which server I am currently sending commands to.
- I can change the tab-color manually, so that I know which hidden tab goes to which server.

But that's me choreographing  2 separate actions to achieve one objective.
Logically the tab-color can (should) be part of the color-scheme.
Repository: vscode
Issue: Preserve terminal cwd when reviving process
Labels: bug,confirmed,terminal-persistence

Type: <b>Feature Request</b>

VS Code restores my terminal sessions on restarting, but it does not preserve the current working directories. I have to `cd` back into my cwd every time I restart Code. I would very much like the cwd to be preserved between sessions.

VS Code version: Code 1.85.1 (0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2, 2023-12-13T09:49:37.021Z)
OS version: Windows_NT x64 10.0.22621
Modes:


<!-- generated by issue reporter -->
Repository: next.js
Issue: When building next js app, class names are minified which breaks libraries which depend on class names. (typegoose, webpack)
Labels: bug

### Link to the code that reproduces this issue

https://github.com/tar-aldev/broken-class-names

### To Reproduce

First serve it in dev mode to see how it should work
1. copy .env.example and set credentials (or leave them as is)
2. run mongodb via docker `docker-compose up`
3. run next.js app via `npm run nx serve next-broken`
4. IN browser see how it shows proper model name `BrokenModel`

Now build app and run it in prod mode
1. build the app with `npm run nx build next-broken`
2. serve it with `npm run nx run next-broken:serve:production`
3. open browser or check the terminal of the IDE
4. model name becomes `p` while it should still be `BrokenModel`


### Current vs. Expected behavior

I'd expect model names (based on class name) to not be minified as it breaks typegoose.
It worked fine in next.js 13 ("next": "13.4.19")


### Verify canary release

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

### Provide environment information

```bash
Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 23.0.0: Fri Sep 15 14:41:43 PDT 2023; root:xnu-10002.1.13~1/RELEASE_ARM64_T6000
Binaries:
  Node: 18.18.2
  npm: 9.8.1
  Yarn: N/A
  pnpm: 8.9.2
Relevant Packages:
  next: 14.0.5-canary.10
  eslint-config-next: 13.4.4
  react: 18.2.0
  react-dom: 18.2.0
  typescript: 5.2.2
Next.js Config:
  output: N/A
```


### Which area(s) are affected? (Select all that apply)

Not sure

### Additional context

It breaks since next 14
If I disable minification in `next.conif.js`
```
webpack: (config) => {
    config.optimization.minimize = false;
    return config;
  },
```

Then it works, but the build is not optimized which is not acceptable for prod.

As a workaround I could use `TerserPlugin` and set `keep_classnames: true` and then it works fine. (see with-terser` branch in github repo.
But it would be nice to get an official guideline.
Repository: TypeScript
Issue: Incorrect inferred function return type with destructuring assignments
Labels: Bug,Help Wanted

### 🔎 Search Terms

"return type destructure"
"destructuring assignment type"

### 🕗 Version & Regression Information

- This changed between versions 3.3.3 and 3.5.1


### ⏯ Playground Link

https://www.typescriptlang.org/play?ts=5.3.2#code/C4TwDgpgBASlC8UDeAoK6oEEBcy0YIENcByTE-dAXygB8oA7AVwBsW6omGATCAMwCWDCNxRUUfLgGNgAgPYMofBgB4AKlAgAPYBB4BnWAD4AFMGxqAlLg14CAJwjAm9xUhqFDagNxiUKAHoAKhQASUUIQikACyhdfWAoKU9oACMIFjkAdwAaKFCSbihPfSYAW2hgaOhHZ1c48Gg5PiVpWQU4uSh0qAADJBxkYigyEioqXoA6FAAJbIgANwh7POT9aAAWTnXDXgT7JhkXIQBzYp446IFDQjBIQntDYC7ePkJWRKqapxdFUEhOn0YFMUEEAv4AgEoABhFJQACMgSh0Lk9kcMhYICgQj4yyejSgzT6jlKLGAk0wvWKhn6gyQw1G416KCkCgSUBJHwQSgYJgGuHppHI40svk5ZIpk0I3igkKgADkust7KiIci4QAmJEw1Ho4CY7EMXGPBoAomYeHUvqCkbC5mshjsi3c5R8ukM4VUSwU3wWqUyuWKzRo1Xa2HrKAAZjDuogGKxOLxpqaLUwkat-Q9Y3tbMS-KwGpoiFd+ZtjI8hgdCVFKEwGv9sqhQeVobl4c22vCrLRcf1CaNSf+KYLGdLWZo9GYbA4XFeQhEExZueQgzTRZ5boF469vsjDblAFEQ-ZcAB5VIAK172MMYDk+n0AlSBt6U5YVNRfVn-Hn3F6QA

### 💻 Code

```ts
type R = {
    A: {
        a: 'A'
    } | null | undefined
}
function fn<T extends R>(t:T): T  {
    return {} as T;
}

/*
In each test case below, I'd assume the return type of function to be `{A: {a: 'A'}}`.
However, case 4 uses destructuring and this appears to default the return type to `R`.
*/

// Case 1
// Correctly infers type of `result.A` as `{A: {a: 'A'}}`
const result = fn({A: {a: 'A'}});
result.A.a; // No error

// Case 2
// Correctly infers type of A1 as `{a: 'A'}`
const A1 = fn({A: {a: 'A'}}).A;
A1.a; // No error

// Case 3
// Correctly infers type of A3 as `{a: 'A'}`
const {A: A2} = fn({A: {a: 'A'}} as const);
A2.a; // No error

// Case 4
// Incorrectly infers type of A2 as `{A: {a: 'A'} | null | undefined}`
const {A: A3} = fn({A: {a: 'A'}});
A3.a; // Error: Object is possibly `null` or `undefined`
```


### 🙁 Actual behavior

In case 4, accessing `A3.a` results in error "Object is possibly `null` or `undefined`". 

Appears that the inferred type of `A3` is `{a: 'A'} | null | undefined`. I suspect when we destructure, the return type of `fn` is inferred as `R` instead of the narrowed generic type variable `T`.

### 🙂 Expected behavior

Expect no errors. Should be able to access `A3.a`, similar cases 1, 2, and 3. Expectation is that destructuring assignment shouldn't modify inferred return type of function.

### Additional information about the issue

Current workarounds:
* Use `as const` appended to param (see case 3)
* Use `const` with generic type variable in function signature (`function fn<const T extends R>(t: T): T;`)
* Avoid destructuring assignments (case 1 & 2)
Repository: kubernetes
Issue: A mechanism to fail a Pod that is stuck due to an invalid Image
Labels: priority/important-soon,sig/node,kind/feature,needs-triage,wg/batch

### What would you like to be added?

A mechanism to set a Pod into phase=Failed when the image pull has failed for a number of times (perhaps configurable).
Currently, the Pod just stays in phase=Pending

### Why is this needed?

This is especially problematic for Jobs submitted through a queueing system.

In a queued environment, the time when the job starts running (pods created) might be hours or even days after the Job is created. Then, the user that submitted the job might not realize their mistake until it's too late. Since these Pods block resources in the cluster, it might cause other pending Jobs not to start.

If the Pods stay in phase=Pending, the job controller cannot do anything about them, as it only does "failure handling" once the Pods actually terminate with a phase=Failed.
Repository: svelte
Issue: Public API for creating Animation from the svelte/transition module
Labels: transition/animation

### Describe the problem

The `svelte/transition` module is really useful and easy to use, but it is restricted to the template and the `{#if}` / `{#each}` blocks.

It would be convenient to be able to use them manually if needed.

### Describe the proposed solution

Provide a public fonction for creating animation based on the `svelte/transition` module.

Something like this :
```javascript
import { slide } from 'svelte/transition';
import { quintOut } from 'svelte/easing';

/** @type {HTMLElement} */
let dom = ...

const anim = createAnim(dom, slide, {duration: 500, easing: quintOut});
```

`transition` will be a object **Animation** or **TickAnimation**, with method like `play()`, `pause()`, `reverse()`, `cancel()`, `finish()` and one `onfinish` handler



Example in this [REPL](https://svelte-5-preview.vercel.app/#H4sIAAAAAAAACn1We2_bNhD_Kld3gORUlW0UCxA7Tha0GDoMRQu0w_6IA4O2KJupRGok5cRw9d13JEW96gaBI_GevN-9dBqlLKNqNL8_jTjJ6Wg-uiuKUTTSx8Ic1IFmmuJZiVJuDeVabSUr9M2KrzTLCyE1nEBlLKFQQSpFDoFTmmhJuGKaCR4setL_lYzrz6UeKlCiGN8NhLeSEk3vOMsb8bhjOn5UVgFVMqohYQdYwm9Ko044XnjygSm2yWjL0rKkLZsY6w2Pl1k2rm2aX1ryrXEFWux2GZqFk2Xp1uqr-nXhGCyF0NlcLsGa8yorXftqwwrxzpFDMIJTUkpinM3h9-k0AgfJvIGsinwstwHjwTwQpQ7GtdsKaKZo31Us6YFK5cFAIfewvCIjx5rhyPx60qaXX29KrTFuwbcZ235fnhwA1Y17GrCvJ07GyRv0N4wnc71nannCY2Xr5BseQdNnDU8sy2BDQe3F02TPkoRyKE2I0KY0Qim9x8BA0lwcDJNpl3q9p_Dh8ydzTzRuneK70seMWkfmAnX4OZE7hjBO67g3QiZUzmFWPIMSiDa8vrq68kyy_b6TosSrw-s0TWfprOYUJElsBt5dFs8eKUTJusS-yEXCUkaT0dyUVBU1bdTG03bTo-p20mQC7wW2jY3sq20BwCxTyUkGd1_-MrHRZ9sGTQl2y0bkEaSIFgaqIkyGpFZmaQqjKbit4EpDQY6ZIAnWXcqdolHyJeFkfOWhUC0eN6TbW3g3nfbFKRZPV9aeUbAvtlVqnXZtIqEnoLGy-hKG4ttPTy4u4I-CSJLDiZf5hsoKNFxMuiYyximRaCHUY1jegO45cC3Ud-Fo8ONHrdt3Z7IFp7_pMUW39P6hGvj7XnMUWrx_aHT9JLGQdSaBMSfSNlCcCYFPaDCYDD4DnD7BN1S487SwVo-aPEUuBZ3MO9MvTYTOdXxifnUbxGIC_1K8CU2AIMiIGWbrSYCLvZVzoFjqGue2mYezy_jy8nIxlMnJ87pTZp-I3sdIC9uQWivjRe8mH8mBAmmgBzPVjpCa11RIuJzCn1--thqGFpqEMPQzXeDjetlzb0hvll1_3dBdMg150SUa-FCtG-tNz-rAyEp7PHpm6qw4ayYB01_pTc_pnRdlMOkH2NPsHuq-Q52mNcIh4ivdFHlclGofmnLRYu2poSufUEcwg7egx-OudsedCfJcgfajaJ0N11XPXHWuVXCcxe5Mw8ZO1LXflFdLojz5YLpnXjdRR3hwxu-jbA7BRuh90NzjzDK1HuKClJ3LS6pLyQdDoXIDA_9w2Kw4tPNNaYnpqMAuF8dxFlTDM1ScRe0-wDRY8bXZIustxp7hf7yDpdYw-yUgtRlZlhOrImM6DN7Ws8LkyQrEGeU7vbepmo2hDsGy7qd22PmwQr8hHQvedM4eqRi_a7Y0nI0bQk6KsDvUCT9W8ITLGQOD0LzYGW5e0GisxT9FQeV7E9IYW8_QG6Ot1UfBeBgElmACql5GGGEb4Oun_VmEB4Vfo3pmV_hN0d8TiPnJZn2QCDTl07Co02DnVisFOKit9GCf3xdSICoap_-BZCV9sLtNam9u3mwAk9dXXtosPCtvs4tfOzTF9YeAb_Czot259UAXEqtW02TdqC9fqDcvFCPEediMA4_B_c_mzKXtbWqV9ju0LjCva_L586fWQ_U_snUEML0MAAA=), where transition.js mainly consists of code from [internal/client/transition.js](https://github.com/sveltejs/svelte/blob/main/packages/svelte/src/internal/client/transitions.js)



### Alternatives considered

Use duplicate code or another library

### Importance

would make my life easier
Repository: PowerToys
Issue: Cannot Snap Child Window on W10 Outlook Reminders
Labels: Issue-Bug,FancyZones-Dragging&UI,Product-FancyZones,Needs-Triage

### Microsoft PowerToys version

0.76.2

### Installation method

PowerToys auto-update

### Running as admin

Yes

### Area(s) with issue?

FancyZones

### Steps to reproduce

The Outlook Reminders child window used to snap when I held my Shift key. For the last few Powertoys updates it does not do it anymore. It had been working fine up to version 73 or 74 maybe.

The glowing zones no longer show up when I hold Shift and drag the Reminders window. The glowing zones _do_ show up with I hold Shift and drag any other window, including the main Outlook window. I have tried to toggle FancyZones on and off, as well as the Child Window setting.

[PowerToysReport_2023-12-13-11-50-54.zip](https://github.com/microsoft/PowerToys/files/13665059/PowerToysReport_2023-12-13-11-50-54.zip)


### ✔️ Expected Behavior

Snap a child window

### ❌ Actual Behavior

No option to snap

### Other Software

Microsoft Outlook for Microsoft 365 MSO Version 2311 Build 16.0.17029.20068 32-bit
Microsoft Windows 10 Pro 22H2 OS Build 19045.3803 Windows Feature Experience Pack 1000.19053.1000.0
Repository: rust
Issue: Differently optimized code between `let else` and `if`
Labels: A-LLVM

Hi,

Those two pieces of code do the same thing, but end up having different assembly 👀 

```rust
#[inline(never)]
pub fn foo(x: i32) -> bool {
    let (1 | 3 | 99) = x else { return false; };
    
    true
}

#[inline(never)]
pub fn bar(x: i32) -> bool {
    x == 1 || x == 3 || x == 99
}
```
```asm
playground::foo: # @playground::foo
# %bb.0:
	cmpl	$1, %edi
	je	.LBB0_4
# %bb.1:
	cmpl	$99, %edi
	je	.LBB0_4
# %bb.2:
	cmpl	$3, %edi
	jne	.LBB0_3

.LBB0_4:
	movb	$1, %al
                                        # kill: def $al killed $al killed $eax
	retq

.LBB0_3:
	xorl	%eax, %eax
                                        # kill: def $al killed $al killed $eax
	retq
                                        # -- End function

playground::bar: # @playground::bar
# %bb.0:
	movb	$1, %al
	cmpl	$1, %edi
	je	.LBB1_4
# %bb.1:
	cmpl	$3, %edi
	je	.LBB1_4
# %bb.2:
	cmpl	$99, %edi
	je	.LBB1_4
# %bb.3:
	xorl	%eax, %eax

.LBB1_4:
                                        # kill: def $al killed $al killed $eax
	retq
                                        # -- End function
```
([playground link](https://play.rust-lang.org/?version=nightly&mode=release&edition=2021&gist=6bbb92ba12f779e454e9a2369ae7e3f1))

Curiously, they do get optimized the same sometimes (e.g. for `(1 | 3 | 5)` or even `(1 | 2 | 3 | 5..=10)`).