Incompletely allow overloaded call from opaque when self type bottoms out in infer by compiler-errors · Pull Request #140496 · rust-lang/rust (original) (raw)

#18 exporting to docker image format
#18 sending tarball 21.0s done
#18 DONE 26.5s
##[endgroup]
Setting extra environment values for docker:  --env ENABLE_GCC_CODEGEN=1 --env GCC_EXEC_PREFIX=/usr/lib/gcc/
[CI_JOB_NAME=x86_64-gnu-llvm-19]
[CI_JOB_NAME=x86_64-gnu-llvm-19]
debug: `DISABLE_CI_RUSTC_IF_INCOMPATIBLE` configured.
---
sccache: Listening on address 127.0.0.1:4226
##[group]Configure the build
configure: processing command line
configure: 
configure: build.configure-args := ['--build=x86_64-unknown-linux-gnu', '--llvm-root=/usr/lib/llvm-19', '--enable-llvm-link-shared', '--set', 'rust.randomize-layout=true', '--set', 'rust.thin-lto-import-instr-limit=10', '--set', 'build.print-step-timings', '--enable-verbose-tests', '--set', 'build.metrics', '--enable-verbose-configure', '--enable-sccache', '--disable-manage-submodules', '--enable-locked-deps', '--enable-cargo-native-static', '--set', 'rust.codegen-units-std=1', '--set', 'dist.compression-profile=balanced', '--dist-compression-formats=xz', '--set', 'rust.lld=false', '--disable-dist-src', '--release-channel=nightly', '--enable-debug-assertions', '--enable-overflow-checks', '--enable-llvm-assertions', '--set', 'rust.verify-llvm-ir', '--set', 'rust.codegen-backends=llvm,cranelift,gcc', '--set', 'llvm.static-libstdcpp', '--set', 'gcc.download-ci-gcc=true', '--enable-new-symbol-mangling']
configure: build.build          := x86_64-unknown-linux-gnu
configure: target.x86_64-unknown-linux-gnu.llvm-config := /usr/lib/llvm-19/bin/llvm-config
configure: llvm.link-shared     := True
configure: rust.randomize-layout := True
configure: rust.thin-lto-import-instr-limit := 10
---
To only update this specific test, also pass `--test-args issues/issue-15965.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/issues/issue-15965.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/issues/issue-15965" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0618]: expected function, found `_`
##[error]  --> /checkout/tests/ui/issues/issue-15965.rs:3:9
   |
---
------------------------------------------


---- [ui] tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs stdout ----
Saved the actual stderr to "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2/unboxed-closures-failed-recursive-fn-2.stderr"
diff of stderr:

- error[E0282]: type annotations needed for `Option<_>`
-   --> $DIR/unboxed-closures-failed-recursive-fn-2.rs:8:9
+ error[E0618]: expected function, found `_`
+   --> $DIR/unboxed-closures-failed-recursive-fn-2.rs:17:32
3    |
+ LL |                     Some(c) => {
+    |                          - `c` has type `_`
+ LL |                         return c();
+    |                                ^--
+    |                                |
+    |                                call expression requires function
+ 
+ error[E0308]: mismatched types
+   --> $DIR/unboxed-closures-failed-recursive-fn-2.rs:25:20
+    |
4 LL |     let mut closure0 = None;
-    |         ^^^^^^^^^^^^
+    |                        ---- expected due to this value
6 ...
- LL |                         return c();
-    |                                --- type must be known at this point
+ LL |         closure0 = || vec;
+    |                    ^^^^^^ expected `Option<_>`, found closure
9    |
- help: consider giving `closure0` an explicit type, where the placeholders `_` are specified
+    = note: expected enum `Option<_>`
+            found closure `{closure@$DIR/unboxed-closures-failed-recursive-fn-2.rs:25:20: 25:22}`
+ help: try wrapping the expression in `Some`
11    |
- LL |     let mut closure0: Option<T> = None;
-    |                     +++++++++++
+ LL |         closure0 = Some(|| vec);
+    |                    +++++      +
14 
- error: aborting due to 1 previous error
+ error: aborting due to 2 previous errors
16 
---

Note: some mismatched output was normalized before being compared
-   --> /checkout/tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs:17:32
-   --> /checkout/tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs:25:20
-            found closure `{closure@/checkout/tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs:25:20: 25:22}`
+ error[E0618]: expected function, found `_`
+   --> $DIR/unboxed-closures-failed-recursive-fn-2.rs:17:32
+ LL |                     Some(c) => {
+    |                          - `c` has type `_`
+ LL |                         return c();
+    |                                ^--
+    |                                |
+    |                                call expression requires function
+ 
+ error[E0308]: mismatched types
+   --> $DIR/unboxed-closures-failed-recursive-fn-2.rs:25:20
+    |
+    |                        ---- expected due to this value
+ LL |         closure0 = || vec;
+    |                    ^^^^^^ expected `Option<_>`, found closure
+    = note: expected enum `Option<_>`
+            found closure `{closure@$DIR/unboxed-closures-failed-recursive-fn-2.rs:25:20: 25:22}`
+ help: try wrapping the expression in `Some`
+ LL |         closure0 = Some(|| vec);
+    |                    +++++      +
+ error: aborting due to 2 previous errors
+ Some errors have detailed explanations: E0308, E0618.
+ For more information about an error, try `rustc --explain E0308`.


The actual stderr differed from the expected stderr.
To update references, rerun the tests and pass the `--bless` flag
To only update this specific test, also pass `--test-args unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs`

error: 1 errors occurred comparing output.
status: exit status: 1
command: env -u RUSTC_LOG_COLOR RUSTC_ICE="0" RUST_BACKTRACE="short" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/cargo" "-Z" "ignore-directory-in-diagnostics-source-blocks=/checkout/vendor" "--sysroot" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2" "--target=x86_64-unknown-linux-gnu" "--check-cfg" "cfg(test,FALSE)" "--error-format" "json" "--json" "future-incompat" "-Ccodegen-units=1" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-Zwrite-long-types-to-disk=no" "-Cstrip=debuginfo" "--emit" "metadata" "-C" "prefer-dynamic" "--out-dir" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"
stdout: none
--- stderr -------------------------------
error[E0618]: expected function, found `_`
##[error]  --> /checkout/tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs:17:32
   |
---
   |
LL |     let mut closure0 = None;
   |                        ---- expected due to this value
...
LL |         closure0 = || vec;
   |                    ^^^^^^ expected `Option<_>`, found closure
   |
   = note: expected enum `Option<_>`
           found closure `{closure@/checkout/tests/ui/unboxed-closures/unboxed-closures-failed-recursive-fn-2.rs:25:20: 25:22}`
help: try wrapping the expression in `Some`
   |
LL |         closure0 = Some(|| vec);
   |                    +++++      +

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0308, E0618.