sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: go
Issue: cmd/go: GOPROXY default can make 'get -u' lag upstream repository
Labels: NeedsDecision,modules

<!-- Please answer these questions before submitting your issue. Thanks! -->

### What version of Go are you using (`go version`)?

<pre>
$ go version
go version devel +623d653db7 Sat Jun 29 13:17:15 2019 +0000 linux/amd64
</pre>

### Does this issue reproduce with the latest release?

No, because Go 1.12 doesn't have a GOPROXY set up by default.

### What operating system and processor architecture are you using (`go env`)?

<details><summary><code>go env</code> Output</summary><br><pre>
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN="/home/mvdan/go/bin"
GOCACHE="/home/mvdan/go/cache"
GOENV="/home/mvdan/.config/go/env"
GOEXE=""
GOFLAGS="-ldflags=-w"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/mvdan/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org"
GOROOT="/home/mvdan/tip"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/mvdan/tip/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
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 -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build558320792=/tmp/go-build -gno-record-gcc-switches"
GOROOT/bin/go version: go version devel +623d653db7 Sat Jun 29 13:17:15 2019 +0000 linux/amd64
GOROOT/bin/go tool compile -V: compile version devel +623d653db7 Sat Jun 29 13:17:15 2019 +0000
uname -sr: Linux 5.1.15-arch1-1-ARCH
/usr/lib/libc.so.6: GNU C Library (GNU libc) stable release version 2.29.
gdb --version: GNU gdb (GDB) 8.3
</pre></details>

### What did you do?

Module A and B live in separate repositories, and they are both v0. A depends on B.

I push a commit to B, and then run `go get -u` in A to update the dependency to that new master commit. Alternatively, tried `go get B@master`.

### What did you expect to see?

A's `go.mod` updated to show B's latest pseudo-version with the master commit just pushed.

### What did you see instead?

B's version staying at an older version, pushed hours or days before. Presumably because `proxy.golang.org` caches the version for `@latest` and `@master`.

This went unnoticed for a while and someone was scratching their head until they realised `go get -u` hadn't done what they were used to.

`GOPROXY=direct go get -u` had to be used to work around this issue in the end. The other option was to manually copy the commit hash to force the proxy to fetch that git ref, which is a bit cumbersome.

In the end, I worry that the new `GOPROXY` default in 1.13 is going to confuse people who are used to pushing to multiple repos that depend on each other. I understand why the proxy server can't fetch from git repeatedly every single time, but I wonder if there's something we can do to not silently break this.

/cc @bcmills @heschik @jayconrod
Repository: vscode
Issue: Allow for configuration files in .devcontainer
Labels: feature-request,debug,tasks

Currently I don't seem to know a good way to have container-specific settings, tasks, and launch configurations.

The closest thing to it is to set up settings.json, tasks.json, and launch.json in the workspace .vscode folder, but then it applies to the workspace when you open it normally.

It would be ideal if we could have those same files in the .devcontainer folder and have vscode pick them up from there when the folder is opened in the container.

Currently the closest thing to it is in .devcontainer/devcontainer.json, there is a settings key which is similar to having settings.json, but i don't see anything for tasks or launch.
Repository: TypeScript
Issue: Generic type can't be assigned to the same DeepReadonly type
Labels: Bug

<!-- 🚨 STOP 🚨 𝗦𝗧𝗢𝗣 🚨 𝑺𝑻𝑶𝑷 🚨

Half of all issues filed here are duplicates, answered in the FAQ, or not appropriate for the bug tracker. Even if you think you've found a *bug*, please read the FAQ first, especially the Common "Bugs" That Aren't Bugs section!

Please help us by doing the following steps before logging an issue:
  * Search: https://github.com/Microsoft/TypeScript/search?type=Issues
  * Read the FAQ: https://github.com/Microsoft/TypeScript/wiki/FAQ

Please fill in the *entire* template below.
-->
Assigning generic type `T` to it's deep readonly `DeepReadonly<T>` cause error however shallow `Readonly<T>` works fine. Also I found that known types do work well with `DeepReadonly` .

<!-- Please try to reproduce the issue with `typescript@next`. It may have already been fixed. -->
**TypeScript Version:**  3.4.0-dev.201xxxxx

<!-- Search terms you tried before logging this (so others can find this issue more easily) -->
**Search Terms:**
DeepReadonly assign return generic nested readonly

**Code**

```ts
// Simple deep readonly
export type DRO<T> = { readonly [P in keyof T]: DR<T[P]> };
type DR<T> = T extends object ? DRO<T> : T;

// Sample type
interface TMP {
  a: number;
  b: {
    c: boolean;
  };
}

// Works fine
const a: TMP = { a: 10, b: { c: false } };
const b: DRO<TMP> = a;

// Doesn't work
class X<T> {
  constructor(private readonly t: T) {}

  foo(): DRO<T> {
    // Error here
    return this.t; 
  }

  bar(): Readonly<T> {
    // Works fine
    return this.t;
  }
}
```

**Expected behavior:**
Method `foo` shouldn't have error

**Actual behavior:**
Error: Type 'T' is not assignable to type 'DRO<T>'.

**Playground Link:** <!-- A link to a TypeScript Playground "Share" link which demonstrates this behavior -->
https://www.typescriptlang.org/play/#code/PTAEGUEsFsAcBsCmoAmjG1AJ0QQxQPYB28AngFCIAesBWALqPabMgCIBKA8gDwAqAPlABeUAG9seQiVKgA2gAVQkIqADWiUgQBmoPgF0AXKE79F+oQF8A3OWasTHfkNF9Q1eoiIoAzqAIARgBWiADGjAD8jryCoMZ8tuQgELhwSEwsiOQqnljauKHIfACySmLkoKC4xkQArtABiFi2lQHG5ZWVocYBBARIuEQtoDbkluRJYADqdGp+2ipZocQ+jNV6pSLiVcYAjAAMADSgbdvdoPnwPsiWI7bLRKsnxpwxpS5ViclsBIg+RAByRgAd1m5FC8FwPj8AA1nOIKqAHqssLVwnQABSwLCQABuuE8knwxDITHiAEpxONEdo+hjyS9uPCOp1kgBRLBYOigAAWTSynUk9FqWFU9B5kB8ADp6NZQIjqa1cFh6cYOFISaRmYjKskZlg5hdFjqhSKxRLpbKFWMgA

**Related Issues:** <!-- Did you find other bugs that looked similar? -->
Maybe: #12826 and #21919
Repository: pytorch
Issue: Sparse allreduce for ProcessGroupNCCL
Labels: oncall: distributed,feature,triaged

In #22036 we added sparse allreduce for ProcessGroupGloo. It works for sparse CUDA tensors, but doesn't leverage InfiniBand like NCCL does. Therefore, we should have a sparse allreduce implementation for ProcessGroupNCCL as well.
Repository: TypeScript
Issue: Extra slashes allowed in import paths
Labels: Bug

<!-- 🚨 STOP 🚨 𝗦𝗧𝗢𝗣 🚨 𝑺𝑻𝑶𝑷 🚨

Half of all issues filed here are duplicates, answered in the FAQ, or not appropriate for the bug tracker. Even if you think you've found a *bug*, please read the FAQ first, especially the Common "Bugs" That Aren't Bugs section!

Please help us by doing the following steps before logging an issue:
  * Search: https://github.com/Microsoft/TypeScript/search?type=Issues
  * Read the FAQ: https://github.com/Microsoft/TypeScript/wiki/FAQ

Please fill in the *entire* template below.
-->

<!-- Please try to reproduce the issue with `typescript@next`. It may have already been fixed. -->
**TypeScript Version:**  3.6.0-dev.20190628

<!-- Search terms you tried before logging this (so others can find this issue more easily) -->
**Search Terms:**
- import
- require
- slash / separator 

**Code**
Create an import that uses multiple `/` instead of a single one:

```ts
import { abc } from ".///////folder///////y";

console.log(abc);
```

**Expected behavior:**
An error is produced. This is not valid a valid import in many module loaders

**Actual behavior:**
No error

**Playground Link:** <!-- A link to a TypeScript Playground "Share" link which demonstrates this behavior -->

**Related Issues:** <!-- Did you find other bugs that looked similar? -->
Repository: go
Issue: proposal: crypto/x509: ability to add custom curve when parsing X509 certificate
Labels: Proposal,Proposal-Hold,Proposal-Crypto

Per https://github.com/golang/go/issues/26776, using a third party library for custom curve is advised. 

However, when parsing x509 certificate (`x509.ParseCetificate()`), it is not possible to supply custom curve.

My proposal is to offer a configuration that can be used to supply a function to return `elliptic.Curve` from `asn1.ObjectIdentifier` to complement the default `namedCurveFromIOD()`
Repository: rust
Issue: Move `compile-pass` tests to `check-pass` or `build-pass`
Labels: C-cleanup,A-testsuite,E-mentor,T-compiler,E-medium,A-compiletest

`compile-pass` was the old way to assert that UI tests were able to successfully build. However, it would do a full build of the code, including codegen and linking. Many of our tests don't need this, however, and should instead use the new `check-pass`, introduced in https://github.com/rust-lang/rust/pull/61778. For tests that exercise codegen and linking, `build-pass` can be used instead.

As a first step, it would be good to remove `compile-pass` to prevent users adding new tests that unconsciously take a dependency on codegen/linking, and push them to use `check/build-pass` to make the distinction explicit.

To do this, we'd like to start with a mass migration of `compile-pass` tests to `build-pass` (rather than `check-pass` because we don't want to accidentally stop testing codegen/linking functionality). However, we don't want to lose the distinction between tests which are intentionally `build-pass` and those that have been automatically migrated, so automatically-migrated tests should include a note like `// build-pass (FIXME(this-issue-#): could be check-pass?)` or similar.

Once that's done, we can remove `compile-pass` and work on moving over the `FIXME`-tagged tests to either `check-pass` or remove the `FIXME`.
Repository: pytorch
Issue: Build failure with setup.py
Labels: module: build,triaged

Hi. I was building pytorch with setup.py and after
```
[100%] Built target torch_python
Install the project...
-- Install configuration: "Release"
```
And some output about copying files I got the following error:
```
running build_ext
-- Building with NumPy bindings
Traceback (most recent call last):
  File "setup.py", line 856, in <module>
    'python/serialized_test/data/operator_test/*.zip',
  File "/usr/lib/python3.7/site-packages/setuptools/__init__.py", line 145, in setup
    return distutils.core.setup(**attrs)
  File "/usr/lib/python3.7/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/usr/lib/python3.7/distutils/dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "/usr/lib/python3.7/distutils/command/build.py", line 135, in run
    self.run_command(cmd_name)
  File "/usr/lib/python3.7/distutils/cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "/usr/lib/python3.7/distutils/dist.py", line 985, in run_command
    cmd_obj.run()
  File "setup.py", line 378, in run
    report('-- Detected cuDNN at ' + CUDNN_LIBRARY + ', ' + CUDNN_INCLUDE_DIR)
TypeError: can only concatenate str (not "NoneType") to str
```
I did ```print(CUDNN_LIBRARY, CUDNN_INCLUDE_DIR)``` and the output is ```None None``` but cudnn was found:
```
-- Found CUDNN: /usr/include  
-- Found cuDNN: v7.6.1  (include: /usr/include, library: /usr/lib/libcudnn.so)
``` 
I always build pytorch with just cmake and I wanted to use setup.py instead.
os: arch linux
cudnn version: 7.6.1.34
cuda version: 10.1.168
Repository: terminal
Issue: ConPTY sends two `WINDOW_BUFFER_SIZE_EVENT` messages when the window is restored from maximize
Labels: Product-Conpty,Area-Server,Issue-Bug,Priority-3

I think I found one resize bug. A ConPTY sends two `WINDOW_BUFFER_SIZE_EVENT` messages when the window is restored from maximize, but the first one has the wrong size (not sure of the internals of this, but it appears in conhost/tmux/pwsh, alacritty/pwsh, and Windows Terminal).

Run [this program](https://github.com/parkovski/conutils/blob/master/conevents.cpp) as `conevents -es` in conhost and a different terminal to see the difference; maximize and restore the window. For example, restoring the WinTerm window reports `119 x 46` in the `WINDOW_BUFFER_SIZE_EVENT` message, but `GetConsoleScreenBufferInfo` returns the correct value `119 x 32`.

_Originally posted by @parkovski in https://github.com/microsoft/terminal/issues/1465#issuecomment-506924361_
Repository: flutter
Issue: Flutter run with local engine in profile mode now requires arm64 on 64 bit devices
Labels: team,tool,a: quality,P2,team-tool,triaged-tool

Previously, I was able to do:

```
flutter run --profile --local-engine=android_profile
```

On an arm64 device and it worked.  Now this results in a not found for `libflutter.so`, which it can't find in a `lib/arm64` directory.

If I do

```
flutter run --profile --local-engine=android_profile_arm64
```

It works.

Maybe we should consider defaulting the Android CPU to arm64 at the least if this is WAI.

/cc @chinmaygarde @blasten @jason-simmons
Repository: rust
Issue: Tracking issue for `slice_take`
Labels: T-libs-api,C-tracking-issue,A-slice,I-libs-api-nominated

Feature gate: `#![feature(slice_take)]`

### Public API

```rust
impl<T> [T] {
    fn take<'a, R: OneSidedRange<usize>>(self: &mut &'a Self, range: R) -> Option<&'a Self>;
    fn take_mut<'a, R: OneSidedRange<usize>>(self: &mut &'a mut Self, range: R) -> Option<&'a mut Self>;
    fn take_first<'a>(self: &mut &'a Self) -> Option<&'a T>;
    fn take_first_mut<'a>(self: &mut &'a mut Self) -> Option<&'a mut T>;
    fn take_last<'a>(self: &mut &'a Self) -> Option<&'a T>;
    fn take_last_mut<'a>(self: &mut &'a mut Self) -> Option<&'a mut T>;
}


// core::ops

trait OneSidedRange<T: ?Sized>: RangeBounds<T> {}
impl<T> OneSidedRange<T> for RangeTo<T> where Self: RangeBounds<T>;
impl<T> OneSidedRange<T> for RangeFrom<T> where Self: RangeBounds<T>;
impl<T> OneSidedRange<T> for RangeToInclusive<T> where Self: RangeBounds<T>;
```

### Steps / History

- [ ] #49173
- [ ] #62282
- [ ] #77065
- [x] #88502
- [ ] Final comment period (FCP)
- [ ] Stabilization PR

<!--
Once the feature has gone through a few release cycles and there are no
unresolved questions left, the feature might be ready for stabilization.

If this feature didn't go through the RFC process, a final comment period
(FCP) is always needed before stabilization. This works as follows:

A library API team member can kick off the stabilization process, at which point
the rfcbot will ask all the team members to verify they agree with
stabilization. Once enough members agree and there are no concerns, the final
comment period begins: this issue will be marked as such and will be listed
in the next This Week in Rust newsletter. If no blocking concerns are raised in
that period of 10 days, a stabilzation PR can be opened by anyone.
-->

### Unresolved Questions

<!--
Include any open questions that need to be answered before the feature can be
stabilised. If multiple (unrelated) big questions come up, it can be a good idea
to open a separate issue for each, to make it easier to keep track of the
discussions.

It's useful to link any relevant discussions and conclusions (whether on GitHub,
Zulip, or the internals forum) here.
-->

-
Repository: pytorch
Issue: CPU random number generator is slow
Labels: module: performance,triaged,module: random

## 🐛 Bug

<!-- A clear and concise description of what the bug is. -->

## To Reproduce
```
import torch

from time import perf_counter

def run():
    ys = 0
    with torch.no_grad():
        for _ in range(100):
            ys = ys + torch.rand(256, 20).mm(torch.rand(20, 20)).mean()
            # ys = ys + np.random.rand(256, 20).dot(np.random.rand(20, 20)).mean()

def main():
    for _ in range(100):
        run()
    t0 = 0
    t0 -= perf_counter()
    for _ in range(1000):
        run()
    t0 += perf_counter()
    print(f"time = {t0 / 1000:.6f}")

if __name__ == '__main__':
    main()
```


From @colesbury 's investigation, random number generator is taking ~40% of total time. 
![cpu_slow](https://user-images.githubusercontent.com/5248122/60468423-65a07300-9c0e-11e9-9bf9-ff75b1ff167e.jpg)

cc: @ezyang @roosephu
Repository: pytorch
Issue: Add support for serializing Mkldnn Tensor
Labels: module: serialization,triaged,module: mkldnn

## 🐛 Bug

Currently 

## To Reproduce

```python
import torch

dense_tensor = torch.randn(1, dtype=torch.float)
mkldnn_tensor = dense_tensor.to_mkldnn()
torch.save(mkldnn_tensor, 'mkldnn_tensor.pt')
```

Throws error:
```
RuntimeError                              Traceback (most recent call last)
<ipython-input-6-cca16a2a9070> in <module>
----> 1 torch.save(mkldnn_tensor, 'mkldnn_tensor.pt')

pytorch/torch/serialization.py in save(obj, f, pickle_module, pickle_protocol)
    222         >>> torch.save(x, buffer)
    223     """
--> 224     return _with_file_like(f, "wb", lambda f: _save(obj, f, pickle_module, pickle_protocol))
    225
    226

pytorch/torch/serialization.py in _with_file_like(f, mode, body)
    147         f = open(f, mode)
    148     try:
--> 149         return body(f)
    150     finally:
    151         if new_fd:

pytorch/torch/serialization.py in <lambda>(f)
    222         >>> torch.save(x, buffer)
    223     """
--> 224     return _with_file_like(f, "wb", lambda f: _save(obj, f, pickle_module, pickle_protocol))
    225
    226

pytorch/torch/serialization.py in _save(obj, f, pickle_module, pickle_protocol)
    294     pickler = pickle_module.Pickler(f, protocol=pickle_protocol)
    295     pickler.persistent_id = persistent_id
--> 296     pickler.dump(obj)
    297
    298     serialized_storage_keys = sorted(serialized_storages.keys())

pytorch/torch/tensor.py in __reduce_ex__(self, proto)
     50             return (torch._utils._rebuild_qtensor, args)
     51         else:
---> 52             args = (self.storage(),
     53                     self.storage_offset(),
     54                     tuple(self.size()),
```

## Expected behavior

Mkldnn tensor can be saved via `torch.save` and later restored via `torch.load` (with layout preserved as torch._mkldnn, but without preserving the mkldnn internal layout)
Repository: flutter
Issue: Semantics Tree API should not allow cycles, multi-parent children
Labels: framework,engine,a: accessibility,P2,team-engine,triaged-engine

Today the engine API would allow cycles or multi-parent children, which aren't really valid on any of the platforms we support.

We should add asserts to prevent this.
Repository: flutter
Issue: Platform view accessibility does not respond to taps on Moto G 4
Labels: e: device-specific,platform-android,engine,a: accessibility,a: platform-views,P2,a: plugins,team-android,triaged-android

Running the webview example project on a Moto G 4, tapping on elements within the webview does not focus them. Instead, to give talk back focus to anything within the webview, I have to swipe left/right. Tapping on Flutter widgets, however, does correctly focus them for talk back.

The Moto G 4 that I'm using is running Android 7.0.
Repository: node
Issue: SIGTERM handler does not run if there are no tasks running and exit code is always 0
Labels: confirmed-bug,process

<!--
Thank you for reporting a possible bug in Node.js.

Please fill in as much of the template below as you can.

Version: output of `node -v`
Platform: output of `uname -a` (UNIX), or version and 32 or 64-bit (Windows)
Subsystem: if known, please specify the affected core module name

If possible, please provide code that demonstrates the problem, keeping it as
simple and free of external dependencies as you can.
-->

* **Version**: v11.15.0
* **Platform**: Linux tsundberg-dev 4.18.0-20-generic #21~18.04.1-Ubuntu SMP Wed May 8 08:43:37 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
* **Subsystem**: process

<!-- Please provide more details below this comment. -->
---
To run the following tests paste them into `index.js` and run `node index.js; echo $?`

---
#### Case 1
The following results in an expected output:
```node
process.kill(process.pid, 'SIGTERM')
```
Output:
```
Terminated
143
```
---
#### Case 2
Adding a SIGTERM results in an exit code of 0, and the handler never runs:
```node
process.on('SIGTERM', () => {
    console.error('Handle ran!')
    process.exit(1)
})

process.kill(process.pid, 'SIGTERM')
```
Output:
```
0
```
---
#### Case 3
Adding a timeout or some other task that keeps node alive results in the expected behavior:
```node
process.on('SIGTERM', () => {
    console.error('Handle ran!')
    process.exit(1)
})

process.kill(process.pid, 'SIGTERM')

setTimeout(() => {}, 100000)
```
Output:
```
Handle ran!
1
```
Repository: godot
Issue: Some files and folders are not shown in the editor when a file has this character in its name.
Labels: bug,platform:linuxbsd,platform:macos,topic:editor

<!-- Please search existing issues for potential duplicates before filing yours:
https://github.com/godotengine/godot/issues?q=is%3Aissue
-->

**Godot version:** v3.1.1.stable.official
<!-- Specify commit hash if non-official. -->


**OS/device including version:** Arch Linux, Dell Inspiron 5000 series
<!-- Specify GPU model and drivers if graphics-related. -->


**Issue description:** When the character `$'\220'` (or U+0090) is used in a filename, files and folders in the same directory are no longer shown in the file tree or in "open file" dialogs. Presumably, other strange unicode characters could cause problems as well.

Without the file: 
![2019-07-01-191426_314x422_escrotum](https://user-images.githubusercontent.com/22687698/60471900-a317f700-9c34-11e9-8f5f-30e18de69507.png)

With the file: 
![2019-07-01-191440_317x366_escrotum](https://user-images.githubusercontent.com/22687698/60471914-ab703200-9c34-11e9-8338-0b5c72b12a54.png)


<!-- What happened, and what was expected. -->


**Steps to reproduce:**
1. On a linux computer, create a new file in your project with the command `touch $'\220'`.
2. Observe as part of your project completely disappears from the editor, but is still shown in your normal file manager.


**Minimal reproduction project:** [testProject.tar.gz](https://github.com/godotengine/godot/files/3347612/testProject.tar.gz)

<!-- Recommended as it greatly speeds up debugging. Drag and drop a zip archive to upload it. -->
Repository: rust
Issue: Mutually recursive `async fn`s are hard to make `Send`
Labels: T-compiler,A-async-await,AsyncAwait-Triaged

There are several other related issues to this, but I'm opening this to track this one specifically since it's a pain-- there are workarounds, but it'd be lovely (and should be possible) to make this "just work." The following example compiles just fine without ` + Send`, but adding the `Send` bound causes a cycle error:

```rust
#![feature(async_await)]

use {
    std::{
        future::Future,
        pin::Pin,
    },
};

type BoxFuture = Pin<Box<dyn Future<Output = ()> /* + Send */>>; // adding Send causes a cycle error

async fn foo() -> BoxFuture {
    Box::pin(bar()) as _
}

async fn bar() {
    let _ = foo().await;
}
```

Working around the cycle error is possible, but annoying:

```rust
#![feature(async_await)]

use {
    std::{
        future::Future,
        pin::Pin,
    },
};

type BoxFuture = Pin<Box<dyn Future<Output = ()> + Send>>;

async fn foo() -> BoxFuture {
    box_bar()
}

fn box_bar() -> BoxFuture {
    Box::pin(bar())
}

async fn bar() {
    let _ = foo().await;
}
```

Ideally we wouldn't have a cycle error in either case, since it is possible to see that `foo` must be `Send` without ever looking at the body of `bar`, since `bar` is immediately boxed into a `BoxFuture`.