sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: rust
Issue: False-positive with the unreachable code lint
Labels: A-lints,A-diagnostics,T-compiler,C-bug,L-unreachable_code

Given the following code: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=67b068c7dded060fd71f7e5a5ca91278

```rust
#![allow(deprecated, invalid_value)]

enum Void {}

fn main() {
    if false {
        unsafe { std::mem::uninitialized::<Void>(); }
    }
    
    println!();
}
```

The current output is:

```
warning: unreachable expression
  --> src/main.rs:10:5
   |
7  |         unsafe { std::mem::uninitialized::<Void>(); }
   |                  --------------------------------- any code following this expression is unreachable
...
10 |     println!();
   |     ^^^^^^^^^^^ unreachable expression
   |
   = note: `#[warn(unreachable_code)]` on by default
note: this expression has type `Void`, which is uninhabited
  --> src/main.rs:7:18
   |
7  |         unsafe { std::mem::uninitialized::<Void>(); }
   |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   = note: this warning originates in the macro `$crate::format_args` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: `playground` (bin "playground") generated 1 warning
```

I expected no lint to trigger as the `println!()` is actually reachable. This problem doesn't occur for `panic!()`.

<!-- TRIAGEBOT_START -->

<!-- TRIAGEBOT_ASSIGN_START -->

<!-- TRIAGEBOT_ASSIGN_DATA_START$${"user":null}$$TRIAGEBOT_ASSIGN_DATA_END -->

<!-- TRIAGEBOT_ASSIGN_END -->
<!-- TRIAGEBOT_END -->
Repository: godot
Issue: Error Can't use get_node
Labels: topic:core,needs testing

### Godot version

3.4.beta4.mono

### System information

Debian 11

### Issue description

I have this error in debug tab:
```
E 0:00:21.840   get_node_or_null: Can't use get_node() with absolute paths from outside the active scene tree.
  <C++ Error>   Condition "!data.inside_tree && p_path.is_absolute()" is true. Returned: nullptr
  <C++ Source>  scene/main/node.cpp:1264 @ get_node_or_null()
```
Nothing else. No errors in editor, No errors in scripts (C#), No errors in console.

### Steps to reproduce

I just run the project. The run before there was no error.. I have not enough info to guide you.

### Minimal reproduction project

NA
Repository: TypeScript
Issue: Contextual type doesn't apply to elements of array literal spread into another array literal
Labels: Bug,Help Wanted,Effort: Moderate,Domain: Contextual Types

# Bug Report

### 🔎 Search Terms

spread operator, type inference

### 🕗 Version & Regression Information

- This is the behavior in every version I tried

### ⏯ Playground Link

[Playground link with relevant code](https://www.typescriptlang.org/play?ts=3.7.5#code/JYOwLgpgTgZghgYwgAgCoQM5mQbwFDKHIzAQA2AJgFzIDkctyAPnQEaMu0K14C+eeMhGxwoUGuiwBtALrIAvMikEiOYqUo0ujXgBoVhAHTHlRM7nXlqdBsj0Hzakla3s7+szLxe8MAK4gCGDAAPYgyJBYABTGhqIA5hgSmGCyAJQ0AG4hwBS4-HiRYFEOThrW2u4OsabmhGUuNjoedRbOmmzNDl5pQA)

### 💻 Code

```ts repro
interface Test {
    field: 'a' | 'b' | 'c'
}

let arr: Test[] = [
    { field: 'c' },
    ...[
        { field: 'a' }, // field: string
//        ^?
        { field: 'b' }, // field: string
//        ^?
    ]
]

function test(...args: Test[]): void {}

test(
    { field: 'c' },
    ...[
        { field: 'a' }, // field: string
//        ^?
        { field: 'b' }, // field: string
//        ^?
    ]
)
```

[Workbench Repro](https://www.typescriptlang.org/dev/bug-workbench/?noImplicitAny=false#code/JYOwLgpgTgZghgYwgAgCoQM5mQbwFDKHIzAQA2AJgFzIDkctyAPnQEaMu0K14C+eeMhGxwoUGuiwBtALrIAvMikEiOYqUo0ujXgBoVhAHTHlRM7nXlqdBsj3IA9A8ubkWKKADmeJ+aIA9AH4DczUSKy12O11HZ3DXdy8fZz9kIJCZPEy8GABXEAQwYAB7EGRILAAKUXE0TDBZAEpcfjwKsEqQsI1rbWiQ40NTVO6Imx0Y33jrRJBvX1T01ItpyInYlxmwDznk5aWiTMagA)

### 🙁 Actual behavior

The types of objects in the array nested through the spread operator is not inferred to be `Test`, as such inference begins from scratch, so the type of `field` in those objects becomes `string` (and is not detected to be `'a' | 'b' | 'c'` which I specified in the interface), and a rather cryptic type error is shown:

```
Type '{ field: string; }' is not assignable to type 'Test'.
  Types of property 'field' are incompatible.
    Type 'string' is not assignable to type '"a" | "b" | "c"'.
```

I have also included an example with using the spread operator in a function call for completeness, it generates basically the same error.

I'm not sure if this is really a bug, but regardless, it is trivial to work around by just forcing compiler's hand a little by doing this:

```ts
let arr: Test[] = [
    { field: 'c' },
    ...[
        { field: 'a' as const },
        { field: 'b' as const },
    ]
]
```

Which forces the inferred types of the objects to actually be compatible, or assigning the spread array to a variable with an explicitly defined type:

```ts
let nested: Test[] = [
    { field: 'a' },
    { field: 'b' },
]
let arr: Test[] = [
    { field: 'c' },
    ...nested
]
```

### 🙂 Expected behavior

I would expect the type of `expr3` in `[expr1, expr2, ...expr3]` to be inferred to be `Iterable<T>` or something like that provided that we know that the type of elements of the overall array is `T`. I believe that in my repro it would make types of nested objects to be inferred correctly as `Test`.
Repository: flutter
Issue: [Web][Desktop] feature req: flutter_driver custom scroll Command for web and desktop.
Labels: c: new feature,tool,t: flutter driver,platform-web,c: proposal,a: desktop,P3,team-tool,triaged-tool

## Use case

[FlutterDriver's scroll](https://github.com/flutter/flutter/blob/62e186d1e26f825120c1f0adc7222233b179e449/packages/flutter_driver/lib/src/driver/driver.dart#L389) fires a [Scroll command](https://github.com/flutter/flutter/blob/62e186d1e26f825120c1f0adc7222233b179e449/packages/flutter_driver/lib/src/common/gesture.dart#L21) that triggers the [`_scroll` method on the handler_factory](https://github.com/flutter/flutter/blob/62e186d1e26f825120c1f0adc7222233b179e449/packages/flutter_driver/lib/src/common/handler_factory.dart#L362) that first performs a `pointer.down`, `pointer.move` and then a `pointer.up`. This indeed makes a lot of sense for mobile. 

However, now that Flutter is also targeting desktop and web, it would be nice to have a 'normal' non-mobile scroll implemented in the FlutterDriver as a standard.

## Proposal

Seeing as scrolling is the same for desktop and web, I suggest renaming the current (mobile) `Scroll` `Command` to `MobileScroll`. Thus also renaming the method name on the `factory_handler.dart` from `_scroll` to `_mobileScroll`.

Create a new `Scroll` `Command` and implement a `_scroll` method on the `factory_handler.dart` to perform a `pointer.scroll` without the `pointer.down` and `pointer.up`.

I am still a bit torn on renaming the actual `scroll` method on `FlutterDriver`, as that is breaking.
We could just apply a scroll method on [`WebFlutterDriver`](https://github.com/flutter/flutter/blob/62e186d1e26f825120c1f0adc7222233b179e449/packages/flutter_driver/lib/src/driver/web_driver.dart#L28), but this ignores desktop. 

Thoughts?

I would be happy to do the PR for this.
Repository: pytorch
Issue: String frontend doesn't support tuple unpacking 
Labels: oncall: jit

## Bug 

No error is thrown when tuple unpacking passes through `torch.jit.script`

```python
@torch.jit.script
def fn():
    l = [("foo", 1), ("bar", 2)]
    x = {a: b for a, b in l}
```

But if I try to compile the corresponding string directly, I get an error
```python
s = textwrap.dedent("""
def fn():
    l = [("foo", 1), ("bar", 2)]
    x = {a: b for a, b in l}
""")
cu = torch.jit.CompilationUnit(s)
string_frontend = getattr(cu, "fn")
```

```
Traceback (most recent call last):
  File "foo.py", line 11, in <module>
    cu = torch.jit.CompilationUnit(s)
RuntimeError: expected in but found ',' here:
  File "<string>", line 4
def fn():
    l = [("foo", 1), ("bar", 2)]
    x = {a: b for a, b in l}
                   ~ <--- HERE
```
Repository: deno
Issue: Need complete stack trace for unhandled promise rejections.
Labels: bug

If you have un unhandled exception in a promise, that causes Deno to shut down.  Before shutting down it prints an error message like this:

```
error: Uncaught (in promise) Error: No such host is known. (os error 11001)
    at deno:core/01_core.js:106:46
    at unwrapOpResult (deno:core/01_core.js:126:13)
    at async Object.connect (deno:extensions/net/01_net.js:219:13)
```

The problem is that the stack trace doesn't point to any of _my_ code.  Normally when I see a stack trace it goes all the way back to my code.

I have also tried asking VS code to break on all exceptions.  Then I could see the stack trace live.  But VS Code / Deno ignored that request.

I would like something to help me find the source of this problem.  I can reproduce this problem at will, but I can't find the source of it.

[More details.](https://stackoverflow.com/questions/68811003/uncaught-in-promise-how-to-find-the-source-of-the-problem-in-a-deno-program?noredirect=1#comment121650904_68811003)

Thank you.
Repository: create-react-app
Issue: Docs website is not updated
Labels: stale,needs triage,issue: bug report

### Describe the bug

The docs are already updated in main branch to use `sass` package when using sass/scss files in CRA. But the website is not redeployed. Please, update the website also, cause it may mislead users and make them install deprecated packages(`node-sass`).

### Did you try recovering your dependencies?

No)

### Which terms did you search for in User Guide?

Um, `sass`, `node-sass` I guess).

(Write your answer here if relevant.)

### Environment

Chrome latest version.

### Steps to reproduce

1. Open following link: [https://create-react-app.dev/docs/adding-a-sass-stylesheet/](https://create-react-app.dev/docs/adding-a-sass-stylesheet/) 

### Expected behavior

.md files data should be present in website.

### Actual behavior

This issue steps are so frustrating)

### Reproducible demo

No, really, you should make issue creation a bit easier))
Repository: flutter
Issue: [tools] `Failed to establish connection with the application instance in Chrome.` when setting `socks5 proxy`
Labels: c: crash,tool,platform-web,P2,team-web,triaged-web

## Issue
When I set socks5 proxy, it just failed to launch the debug mode with a `FormatException` (see the screenshot below). I will have to quit the vscode entirely, unset the env vars and restart the vscode from the terminal to make it work.

## Environment
VS Code
```
Version: 1.58.2
Commit: c3f126316369cd610563c75b1b1725e0679adfb3
Date: 2021-07-14T22:09:06.581Z (5 days ago)
Electron: 12.0.13
Chrome: 89.0.4389.128
Node.js: 14.16.0
V8: 8.9.255.25-electron.0
OS: Darwin x64 20.5.0
```
VS Code Flutter plugin version: `3.24.0`
VS Code Dart plugin version: `3.24.2`
launch.json
```json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "flutter_app",
      "request": "launch",
      "type": "dart"
    },
    {
      "name": "flutter_app (profile mode)",
      "request": "launch",
      "type": "dart",
      "flutterMode": "profile"
    }
  ]
}
```

## Screenshot
### with socks5 proxy
![image](https://user-images.githubusercontent.com/3524125/130722424-dea26fe2-d94e-405f-81d8-ad2f89cd4566.png)
![image](https://user-images.githubusercontent.com/3524125/130722449-31a41d4b-d36c-4020-a923-61d8242ed577.png)
### without socks5 proxy
![image](https://user-images.githubusercontent.com/3524125/130722832-827684e4-c2ac-4fc9-85f6-cf44e25b487d.png)
![image](https://user-images.githubusercontent.com/3524125/130722887-a3b1aad2-841a-49f8-aa6e-d5f021017483.png)
Repository: rust
Issue: Potentially confusing error message on trait bounds mismatch
Labels: A-diagnostics,T-compiler,D-terse

I feel like certain errors involving trait bounds lack the basic problem statement in the error.  In the below, there isn't even a mention that "`T: Foo` is not satisfied", which would go a long way.  But on first glance here, I look at this thing trying to implement `Foo` and am told I need to implement `AsRef<str>`.  This is especially problematic if the blanket impl for `AsRef<str>` isn't right there in front of me, but buried in some other crate/lib.  I've spent countless hours chasing these sorts of errors down in the past.

Given the following code: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b10937d52da38cb7a49aa827cce1baae

```rust
trait Foo{}

impl <T: AsRef<str>> Foo for T{}

fn foo<T: Foo>(input: T){}

pub fn main() {
    foo(())
}
```

The current output is:

```
error[E0277]: the trait bound `(): AsRef<str>` is not satisfied
 --> src/main.rs:8:9
  |
5 | fn foo<T: Foo>(input: T){}
  |           --- required by this bound in `foo`
...
8 |     foo(())
  |         ^^ the trait `AsRef<str>` is not implemented for `()`
  |
note: required because of the requirements on the impl of `Foo` for `()`
 --> src/main.rs:3:22
  |
3 | impl <T: AsRef<str>> Foo for T{}
  |                      ^^^     ^
```

Ideally the output should look like: (I'm making this up.  You all would have a better idea of what 'good' looks like)

```
error[E0277]: the trait bound `(): AsRef<str>` is not satisfied
 --> src/main.rs:8:9
  |
5 | fn foo<T: Foo>(input: T){}
  |           --- required by this bound in `foo`
...
8 |     foo(())
  |         ^^ the trait `AsRef<str>` is not implemented for `()`
  |
note: required because of the requirements on the impl of `Foo` for `()`
 --> src/main.rs:3:22
  |
3 | impl <T: AsRef<str>> Foo for T{}
  |                      ^^^     ^
note: T does not implement `Foo`, and `AsRef<str>` is the only way it can.  
```
Repository: node
Issue: support people to custom logic to handle the exit code when using the execSync API
Labels: child_process

<!--
Thank you for suggesting an idea to make Node.js better.

Please fill in as much of the template below as you're able.
-->

**Is your feature request related to a problem? Please describe.**
Please describe the problem you are trying to solve.

I find out this error, here's the detail

<img width="745" alt="CleanShot 2021-08-28 at 00 32 31@2x" src="https://user-images.githubusercontent.com/7054676/131159768-c5780040-dd3d-43a7-9909-f558a7c608a6.png">

When I want run `ps -Af | grep -q -E -c "\\-\\-user-data-dir=\\.+App"` by using the `execSync` API, I got some error. I have found out this root cause, that the [`checkExecSyncError`](https://github.com/nodejs/node/blob/master/lib/child_process.js#L816) has checked the child process's exit code is 0 or not. If it is not 0, the `checkExecSyncError` will raise a new exception.

```javascript
function checkExecSyncError(ret, args, cmd) {
  let err;
  if (ret.error) {
    err = ret.error;
  } else if (ret.status !== 0) {
    let msg = 'Command failed: ';
    msg += cmd || ArrayPrototypeJoin(args, ' ');
    if (ret.stderr && ret.stderr.length > 0)
      msg += `\n${ret.stderr.toString()}`;
    // eslint-disable-next-line no-restricted-syntax
    err = new Error(msg);
  }
  if (err) {
    ObjectAssign(err, ret);
  }
  return err;
}
```

But here's the problem, in the POSIX specification(aka IEEE Std 1003), the people define the EXIT Code 1 represents all the general errors, so some of the software such as `grep`'s developer use 1 to represent the software logic error( In grep, exit code 1 means that there's anything has been matched. FYI https://linux.die.net/man/1/grep). 

In another circumstance, the POSIX(such as GNU/Linux, FreeBSD) allows people to use the custom exit code out of 0-255 to represent the software's own custom login error.

Above this, in my personal opinion, I think the Node.js developer needs a way to handle the child process exit code manually. We can allow people to add some callback to get the origin status code, the stdout content, the stderr content, or something else. 

If you people are interested about this feature request, I'm very glad to comment my design proposal.
Repository: storybook
Issue: Clicking on anchor with in page bookmark replaces Storybook frame
Labels: bug,ui

**Describe the bug**
If I have a component with an an anchor, containing a bookmark/fragment/hash url/href such as:

```jsx
const App = (props) => {
  return (
    <div>
      <a href="#some-content">Bookmark link to some content</a>
      <p id="some-content">
        Some content
      </p>
    </div>
  );
};
```

Clicking on the anchor in Storybook should scroll the linked content in to view, but instead replaces the main Storybook frame.


https://user-images.githubusercontent.com/1027024/131162583-ea633a67-cbe6-4ad4-8c04-9b1db7f66704.mov

**System**
Storybook 6.3.7, also reproducible in 5.3.21

**To Reproduce**
https://github.com/penx/storybook-bookmarks
Repository: pytorch
Issue: CUDA error: CUBLAS_STATUS_INVALID_VALUE
Labels: needs reproduction,module: cuda,triaged

## 🐛 Bug

I run a nested `matmul` call and get cuda type error:

```
RuntimeError: CUDA error: CUBLAS_STATUS_INVALID_VALUE when calling `cublasSgemm( handle, opa, opb, m, n, k, &alpha, a, lda, b, ldb, &beta, c, ldc)`
```
According to [community](https://discuss.pytorch.org/t/cublas-status-execution-failed-when-calling-cublassgemm-handle-opa-opb-m-n-k-alpha-a-lda-b-ldb-beta-c-ldc/116740/3) 

I tried to reduce batch size to 1 ! but it throws the same error

## To Reproduce

Steps to reproduce the behavior:

```
lhs = torch.matmul(torch.matmul(x.permute(0, 3, 2, 1), self.U_1),
                     self.U_2)
```
where x's dim. is (batch_size, 320, 13,2)

U_1 => (320,)
U2_2 => (13,320)

## Expected behavior

Normal `matmul`


## Environment

PyTorch version: 1.9.0+cu102
Is debug build: False
CUDA used to build PyTorch: 10.2
ROCM used to build PyTorch: N/A

OS: Ubuntu 18.04.5 LTS (x86_64)
GCC version: (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Clang version: 6.0.0-1ubuntu2 (tags/RELEASE_600/final)
CMake version: version 3.12.0
Libc version: glibc-2.26

Python version: 3.7.11 (default, Jul  3 2021, 18:01:19)  [GCC 7.5.0] (64-bit runtime)
Python platform: Linux-5.4.104+-x86_64-with-Ubuntu-18.04-bionic
Is CUDA available: True
CUDA runtime version: 11.0.221
GPU models and configuration: GPU 0: Tesla K80
Nvidia driver version: 460.32.03
cuDNN version: Probably one of the following:
/usr/lib/x86_64-linux-gnu/libcudnn.so.7.6.5
/usr/lib/x86_64-linux-gnu/libcudnn.so.8.0.4
/usr/lib/x86_64-linux-gnu/libcudnn_adv_infer.so.8.0.4
/usr/lib/x86_64-linux-gnu/libcudnn_adv_train.so.8.0.4
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_infer.so.8.0.4
/usr/lib/x86_64-linux-gnu/libcudnn_cnn_train.so.8.0.4
/usr/lib/x86_64-linux-gnu/libcudnn_ops_infer.so.8.0.4
/usr/lib/x86_64-linux-gnu/libcudnn_ops_train.so.8.0.4
HIP runtime version: N/A
MIOpen runtime version: N/A

Versions of relevant libraries:
[pip3] numpy==1.19.5
[pip3] torch==1.9.0+cu102
[pip3] torchsummary==1.5.1
[pip3] torchtext==0.10.0
[pip3] torchvision==0.10.0+cu102
[conda] Could not collect


cc @ngimel
Repository: nvm
Issue: bash_completion appears to be already installed if PROFILE variable is set on a system PROFILE file
Labels: root / multiuser issues,installing nvm: profile detection

<!-- Thank you for being interested in nvm! Please help us by filling out the following form if you‘re having trouble. If you have a feature request, or some other question, please feel free to clear out the form. Thanks! -->

#### Operating system and version: 

CentOS 7.6.1811

#### How did you install `nvm`?

`curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | NVM_DIR=/opt/nvm PROFILE=/etc/bashrc bash`

#### What happened?

The output shows `=> bash_completion source string already in /etc/bashrc` where this statement is wrong. This message pops just because the system PROFILE file case is not handled properly.

```
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 14926  100 14926    0     0  57412      0 --:--:-- --:--:-- --:--:-- 57629
=> Downloading nvm from git to '/opt/nvm'
=> Cloning into '/opt/nvm'...
remote: Enumerating objects: 347, done.
remote: Counting objects: 100% (347/347), done.
remote: Compressing objects: 100% (294/294), done.
remote: Total 347 (delta 38), reused 171 (delta 28), pack-reused 0
Receiving objects: 100% (347/347), 197.06 KiB | 3.86 MiB/s, done.
Resolving deltas: 100% (38/38), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /etc/bashrc
=> bash_completion source string already in /etc/bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="/opt/nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
```

#### What did you expect to happen?

As the vision of `nvm` is focused "per-user only", the detection function (that decide if the file set in PROFILE variable is a `bash` or `zsh` profile file) should detect if the file provided is a user one. If it is a system one, the installation should stop, or a BIG WARNING should pe printed.
Repository: go
Issue: x/time/rate: incomplete dependency injection in Limiter
Labels: NeedsInvestigation,FeatureRequest

<!--
Please answer these questions before submitting your issue. Thanks!
For questions please use one of our forums: https://github.com/golang/go/wiki/Questions
-->

### What version of Go are you using (`go version`)?

<pre>
$ go version
go version go1.16.7 darwin/amd64
</pre>

### Does this issue reproduce with the latest release?
Yes.


### What operating system and processor architecture are you using (`go env`)?

<details><summary><code>go env</code> Output</summary><br><pre>
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/mspreitz/Library/Caches/go-build"
GOENV="/Users/mspreitz/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/mspreitz/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/mspreitz/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.16.7"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/vs/qkb72z0s57s_yr0ttjfzh8h40000gn/T/go-build213368521=/tmp/go-build -gno-record-gcc-switches -fno-common"
</pre></details>

### What did you do?

<!--
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
-->

I wanted to use x/time/rate.Limiter with client-supplied time behavior.  I discovered that this is possible with all the FooN methods except WaitN.

### What did you expect to see?

I expected a variety of Wait that lets the client supply clock behavior (both the reading of time and waiting for the advance of time).

### What did you see instead?

The implementation of WaitN uses the real clock to read `Now()` and create and use a Timer.