Skip to content

[Experiment] Check that corresponding trait goal holds when projection is rigid #139763

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Conversation

compiler-errors
Copy link
Member

r? @ghost

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Apr 13, 2025
@compiler-errors
Copy link
Member Author

@bors try

bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 13, 2025
…lver, r=<try>

[Experiment] Check that corresponding trait goal holds when projection is rigid

r? `@ghost`
@bors
Copy link
Collaborator

bors commented Apr 13, 2025

⌛ Trying commit cd4572a with merge 44e31de...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-llvm-19 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
#19 exporting to docker image format
#19 sending tarball 19.7s done
#19 DONE 32.8s
##[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', '--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
---
  Number of decisions:   4447
  longest path:          1159 (code:    152)
  longest backtrack:       66 (code:    428)
Shared 86733 out of 152951 states by creating 14756 new states, saving 71977
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc: In function ‘rtx_def* extract_bit_field_1(rtx, poly_uint64, poly_uint64, int, rtx, machine_mode, machine_mode, bool, bool, rtx_def**)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc:1864:45: warning: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ may be used uninitialized [-Wmaybe-uninitialized]
 1864 |       rtx sub = extract_bit_field_as_subreg (mode1, op0, imode,
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
 1865 |                                              bitsize, bitnum);
      |                                              ~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/expmed.cc:1824:19: note: ‘*(unsigned int*)((char*)&imode + offsetof(scalar_int_mode, scalar_int_mode::m_mode))’ was declared here
 1824 |   scalar_int_mode imode;
      |                   ^~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gimple-range-gori.cc: In member function ‘void range_def_chain::dump(FILE*, basic_block, const char*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gimple-range-gori.cc:319:19: warning: format not a string literal and no format arguments [-Wformat-security]
  319 |           fprintf (f, prefix);
      |           ~~~~~~~~^~~~~~~~~~~
---
                 from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/region-model.h:33,
                 from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:39:
In constructor ‘ana::byte_range::byte_range(ana::byte_offset_t, ana::byte_size_t)’,
    inlined from ‘virtual text_art::table ana::string_literal_spatial_item::make_table(const ana::bit_to_table_map&, text_art::style_manager&) const’ at /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:1812:18:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/store.h:312:5: warning: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]’ may be used uninitialized [-Wmaybe-uninitialized]
  312 |     m_size_in_bytes (size_in_bytes)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc: In member function ‘virtual text_art::table ana::string_literal_spatial_item::make_table(const ana::bit_to_table_map&, text_art::style_manager&) const’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/analyzer/access-diagram.cc:1808:28: note: ‘size_in_bytes.generic_wide_int<fixed_wide_int_storage<128> >::fixed_wide_int_storage<128>.fixed_wide_int_storage<128>::val[1]’ was declared here
 1808 |                byte_size_t size_in_bytes
      |                            ^~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/diagnostic.cc: In function ‘void fancy_abort(const char*, int, const char*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/diagnostic.cc:1677:15: warning: format not a string literal and no format arguments [-Wformat-security]
 1677 |       fnotice (stderr, diagnostic_kind_text[DK_ICE]);
---
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc:7930:9: warning: ignoring return value of ‘ssize_t write(int, const void*, size_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 7930 |   write (fd, "\n\n", 2);
      |   ~~~~~~^~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc: In member function ‘void driver::final_actions() const’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/gcc.cc:9307:13: warning: ignoring return value of ‘int truncate(const char*, __off_t)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 9307 |     truncate(totruncate_file, 0);
      |     ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-playback.h:31,
                 from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-builtins.cc:24:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-recording.h: In member function ‘virtual bool gcc::jit::recording::type::is_same_type_as(gcc::jit::recording::type*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-recording.h:640:20: warning: suggest parentheses around ‘&&’ within ‘||’ [-Wparentheses]
---
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc: In function ‘void lto_resolution_read(splay_tree, FILE*, lto_file*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2091:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 2091 |   fscanf (resolution, " ");   /* Read white space.  */
      |   ~~~~~~~^~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2093:9: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 2093 |   fread (obj_name, sizeof (char), name_len, resolution);
      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/lto/lto-common.cc:2113:10: warning: ignoring return value of ‘int fscanf(FILE*, const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
 2113 |   fscanf (resolution, "%u", &num_symbols);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/gcc/jit/jit-recording.cc:32:
---
Applying io_quotes_use            to linux/blkzoned.h
Applying io_quotes_use            to linux/ipmi.h
Applying io_quotes_use            to linux/psp-dbc.h
Applying io_quotes_use            to linux/bt-bmc.h
Applying io_quotes_use            to linux/tps6594_pfsm.h
Applying io_quotes_use            to linux/cxl_mem.h
Applying io_quotes_use            to linux/wmi.h
Applying io_quotes_use            to linux/auto_fs.h
Applying io_quotes_use            to linux/mmtimer.h
Applying io_quotes_use            to linux/f2fs.h
Applying io_quotes_use            to linux/vhost.h
---
Applying io_quotes_use            to sound/asound.h
Applying io_quotes_use            to sound/compress_offload.h
Applying hpux8_bogus_inlines      to math.h
Applying pthread_incomplete_struct_argument to pthread.h
Fixed:  pthread.h
Applying io_quotes_use            to misc/mrvl_cn10k_dpi.h
Applying io_quotes_use            to misc/ocxl.h
Applying io_quotes_use            to misc/cxl.h
Applying io_quotes_use            to misc/xilinx_sdfec.h
Applying io_quotes_def            to unicode/platform.h
Applying sun_malloc               to malloc.h
Applying io_quotes_use            to scsi/cxlflash_ioctl.h
---
Applying machine_name             to x86_64-linux-gnu/bits/unistd_ext.h
Applying io_quotes_use            to x86_64-linux-gnu/asm/mtrr.h
Applying io_quotes_use            to x86_64-linux-gnu/asm/amd_hsmp.h
Applying machine_name             to openssl/e_os2.h
Applying io_quotes_use            to drm/xe_drm.h
Applying io_quotes_use            to drm/radeon_drm.h
Applying io_quotes_use            to drm/panfrost_drm.h
Applying io_quotes_use            to drm/etnaviv_drm.h
Applying io_quotes_use            to drm/lima_drm.h
Applying io_quotes_use            to drm/qaic_accel.h
Applying io_quotes_use            to drm/vc4_drm.h
Applying io_quotes_use            to drm/i915_drm.h
Applying io_quotes_use            to drm/omap_drm.h
Applying io_quotes_use            to drm/pvr_drm.h
Applying io_quotes_use            to drm/amdgpu_drm.h
Applying io_quotes_use            to drm/vgem_drm.h
Applying io_quotes_use            to drm/msm_drm.h
Applying io_quotes_use            to drm/v3d_drm.h
Applying io_quotes_use            to drm/exynos_drm.h
Applying io_quotes_use            to drm/nouveau_drm.h
Applying io_quotes_use            to drm/drm.h
Applying io_quotes_use            to drm/habanalabs_accel.h
Applying io_quotes_use            to drm/tegra_drm.h
Applying io_quotes_use            to rdma/rdma_user_ioctl.h
cc1: note: self-tests are not enabled in this build
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/c++tools/server.cc: In function ‘void server(bool, int, module_resolver*)’:
/checkout/obj/build/x86_64-unknown-linux-gnu/gcc/src/c++tools/server.cc:620:10: warning: ignoring return value of ‘int pipe(int*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
---
error: /checkout/tests/ui/associated-types/hr-associated-type-bound-2.rs:1: unexpected ERROR: '1:1: 9:2: implementation of `X` is not general enough'

error: 4 unexpected errors found, 0 expected errors not found
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/associated-types/hr-associated-type-bound-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/associated-types/hr-associated-type-bound-2" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line   1: 1:1: 1:1: implementation of `X` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `X` is not general enough
ERROR     line   1: 1:1: 9:2: implementation of `X` is not general enough
---
error: /checkout/tests/ui/associated-types/hr-associated-type-bound-1.rs:7: unexpected ERROR: '7:9: 7:28: implementation of `X` is not general enough'

error: 17 unexpected errors found, 0 expected errors not found
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/associated-types/hr-associated-type-bound-1.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/associated-types/hr-associated-type-bound-1" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line   1: 1:1: 1:1: implementation of `X` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `X` is not general enough
ERROR     line   1: 1:1: 9:2: implementation of `X` is not general enough
---
error: /checkout/tests/ui/associated-types/hr-associated-type-bound-object.rs:1: unexpected ERROR: '1:1: 6:2: implementation of `X` is not general enough'

error: 4 unexpected errors found, 0 expected errors not found
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/associated-types/hr-associated-type-bound-object.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/associated-types/hr-associated-type-bound-object" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line   1: 1:1: 1:1: implementation of `X` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `X` is not general enough
ERROR     line   1: 1:1: 6:2: implementation of `X` is not general enough
---
errors differ from expected

---- [ui] tests/ui/associated-types/hr-associated-type-bound-param-1.rs stdout ----

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 11:2: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 11:2: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 11:2: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 11:2: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:1: unexpected ERROR: '1:1: 1:1: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:3: unexpected ERROR: '3:8: 3:19: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: lifetime bound not satisfied [E0478]'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: lifetime bound not satisfied [E0478]'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: lifetime bound not satisfied [E0478]'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: lifetime bound not satisfied [E0478]'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:8: 8:9: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:8: 8:9: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:8: 8:9: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:8: 8:9: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:20: 8:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:20: 8:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:20: 8:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:20: 8:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: lifetime may not live long enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: higher-ranked subtype error'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:8: unexpected ERROR: '8:5: 8:29: higher-ranked subtype error'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:9: unexpected ERROR: '9:9: 9:25: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:9: unexpected ERROR: '9:9: 9:25: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:9: unexpected ERROR: '9:9: 9:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:9: unexpected ERROR: '9:9: 9:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:9: unexpected ERROR: '9:9: 9:28: implementation of `Y` is not general enough'

error: /checkout/tests/ui/associated-types/hr-associated-type-bound-param-1.rs:9: unexpected ERROR: '9:9: 9:28: implementation of `Y` is not general enough'

error: 41 unexpected errors found, 0 expected errors not found
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/associated-types/hr-associated-type-bound-param-1.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/associated-types/hr-associated-type-bound-param-1" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 11:2: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 11:2: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 11:2: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 11:2: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   3: 3:8: 3:19: implementation of `Y` is not general enough
ERROR     line   8: 8:5: 8:29: lifetime bound not satisfied [E0478]
ERROR     line   8: 8:5: 8:29: lifetime bound not satisfied [E0478]
ERROR     line   8: 8:5: 8:29: lifetime bound not satisfied [E0478]
ERROR     line   8: 8:5: 8:29: lifetime bound not satisfied [E0478]
ERROR     line   8: 8:8: 8:9: implementation of `Y` is not general enough
ERROR     line   8: 8:8: 8:9: implementation of `Y` is not general enough
ERROR     line   8: 8:8: 8:9: implementation of `Y` is not general enough
ERROR     line   8: 8:8: 8:9: implementation of `Y` is not general enough
ERROR     line   8: 8:20: 8:28: implementation of `Y` is not general enough
ERROR     line   8: 8:20: 8:28: implementation of `Y` is not general enough
ERROR     line   8: 8:20: 8:28: implementation of `Y` is not general enough
ERROR     line   8: 8:20: 8:28: implementation of `Y` is not general enough
ERROR     line   8: 8:5: 8:29: lifetime may not live long enough
ERROR     line   8: 8:5: 8:29: higher-ranked subtype error
ERROR     line   8: 8:5: 8:29: higher-ranked subtype error
ERROR     line   9: 9:9: 9:25: implementation of `Y` is not general enough
ERROR     line   9: 9:9: 9:25: implementation of `Y` is not general enough
ERROR     line   9: 9:9: 9:28: implementation of `Y` is not general enough
ERROR     line   9: 9:9: 9:28: implementation of `Y` is not general enough
ERROR     line   9: 9:9: 9:28: implementation of `Y` is not general enough
ERROR     line   9: 9:9: 9:28: implementation of `Y` is not general enough
---

thread '[ui] tests/ui/associated-types/hr-associated-type-bound-param-1.rs' panicked at src/tools/compiletest/src/runtest.rs:802:13:
errors differ from expected

---
error: /checkout/tests/ui/associated-types/hr-associated-type-projection-1.rs:8: unexpected ERROR: '8:20: 8:26: implementation of `UnsafeCopy` is not general enough'

error: 49 unexpected errors found, 0 expected errors not found
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/associated-types/hr-associated-type-projection-1.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/associated-types/hr-associated-type-projection-1" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line   1: 1:1: 1:1: implementation of `UnsafeCopy` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `UnsafeCopy` is not general enough
ERROR     line   1: 1:1: 1:1: implementation of `UnsafeCopy` is not general enough
---
error: /checkout/tests/ui/higher-ranked/trait-bounds/issue-62203-hrtb-ice.rs:25: unexpected ERROR: '25:8: 25:9: implementation of `Ty` is not general enough'

error: 2 unexpected errors found, 0 expected errors not found
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/higher-ranked/trait-bounds/issue-62203-hrtb-ice.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/higher-ranked/trait-bounds/issue-62203-hrtb-ice" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line  25: 25:8: 25:9: implementation of `Ty` is not general enough
ERROR     line  25: 25:8: 25:9: implementation of `Ty` is not general enough
---
---
---- [ui] tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6.rs stdout ----

error: test compilation failed although it shouldn't!
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/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6.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/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6" "-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: implementation of `Unpack` is not general enough
##[error]  --> /checkout/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6.rs:70:8
   |
LL |     fn with<F>(self, f: F) -> Backed<'a, ()>
   |        ^^^^ implementation of `Unpack` is not general enough
   |
   = note: `U` must implement `Unpack<'0>`, for any lifetime `'0`...
   = note: ...but it actually implements `Unpack<'b>`

error: implementation of `Unpack` is not general enough
##[error]  --> /checkout/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6.rs:70:8
   |
LL |     fn with<F>(self, f: F) -> Backed<'a, ()>
   |        ^^^^ implementation of `Unpack` is not general enough
   |
   = note: `U` must implement `Unpack<'0>`, for any lifetime `'0`...
   = note: ...but it actually implements `Unpack<'b>`
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: implementation of `Unpack` is not general enough
##[error]  --> /checkout/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6.rs:70:8
   |
LL |     fn with<F>(self, f: F) -> Backed<'a, ()>
   |        ^^^^ implementation of `Unpack` is not general enough
   |
   = note: `U` must implement `Unpack<'0>`, for any lifetime `'0`...
   = note: ...but it actually implements `Unpack<'b>`
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: implementation of `Unpack` is not general enough
##[error]  --> /checkout/tests/ui/higher-ranked/trait-bounds/normalize-under-binder/issue-62529-6.rs:70:8
   |
LL |     fn with<F>(self, f: F) -> Backed<'a, ()>
   |        ^^^^ implementation of `Unpack` is not general enough
   |
   = note: `U` must implement `Unpack<'0>`, for any lifetime `'0`...
   = note: ...but it actually implements `Unpack<'b>`
   = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no`

error: aborting due to 4 previous errors
------------------------------------------


---- [ui] tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs stdout ----

error: /checkout/tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs:17: unexpected ERROR: '17:1: 17:57: the trait bound `T: Iterate<'a>` is not satisfied [E0277]'

error: 1 unexpected errors found, 0 expected errors not found
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/specialization/fuzzed/fuzzing-ice-134905.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/specialization/fuzzed/fuzzing-ice-134905" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line  17: 17:1: 17:57: the trait bound `T: Iterate<'a>` is not satisfied [E0277]
---

thread '[ui] tests/ui/specialization/fuzzed/fuzzing-ice-134905.rs' panicked at src/tools/compiletest/src/runtest.rs:802:13:
errors differ from expected

---- [ui] tests/ui/specialization/issue-38091-2.rs stdout ----

error: `build-fail` test is required to pass check build, but check build failed
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/specialization/issue-38091-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/specialization/issue-38091-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 -------------------------------
warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
##[warning]  --> /checkout/tests/ui/specialization/issue-38091-2.rs:4:12
   |
---

error[E0275]: overflow evaluating the requirement `T: Iterate<'_>`
##[error]  --> /checkout/tests/ui/specialization/issue-38091-2.rs:20:1
   |
LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
note: required for `T` to implement `Check`
  --> /checkout/tests/ui/specialization/issue-38091-2.rs:20:13
   |
LL | impl<'a, T> Check for T where <T as Iterate<'a>>::Ty: Valid {}
   |             ^^^^^     ^                               ----- unsatisfied trait bound introduced here
note: required for `T` to implement `Iterate<'a>`
  --> /checkout/tests/ui/specialization/issue-38091-2.rs:11:13
   |
LL | impl<'a, T> Iterate<'a> for T
   |             ^^^^^^^^^^^     ^
LL | where
---


---- [ui] tests/ui/specialization/issue-38091.rs stdout ----

error: /checkout/tests/ui/specialization/issue-38091.rs:18: unexpected ERROR: '18:1: 18:60: overflow evaluating the requirement `T: Iterate<'_>` [E0275]'

error: 1 unexpected errors found, 0 expected errors not found
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/specialization/issue-38091.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/specialization/issue-38091" "-A" "unused" "-A" "internal_features" "-Crpath" "-Cdebuginfo=0" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers"

--- unexpected errors (from JSON output) ---
ERROR     line  18: 18:1: 18:60: overflow evaluating the requirement `T: Iterate<'_>` [E0275]
---

thread '[ui] tests/ui/specialization/issue-38091.rs' panicked at src/tools/compiletest/src/runtest.rs:802:13:
errors differ from expected

@bors
Copy link
Collaborator

bors commented Apr 13, 2025

☀️ Try build successful - checks-actions
Build commit: 44e31de (44e31dee3cf6f37b4f652572897bb0eb25c477ee)

@compiler-errors
Copy link
Member Author

@craterbot check

@craterbot
Copy link
Collaborator

👌 Experiment pr-139763 created and queued.
🤖 Automatically detected try build 44e31de
🔍 You can check out the queue and this experiment's details.

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-crater Status: Waiting on a crater run to be completed. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 13, 2025
@craterbot
Copy link
Collaborator

🚧 Experiment pr-139763 is now running

ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot
Copy link
Collaborator

🎉 Experiment pr-139763 is completed!
📊 1822 regressed and 4 fixed (614366 total)
📰 Open the full report.

⚠️ If you notice any spurious failure please add them to the denylist!
ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more

@craterbot craterbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-crater Status: Waiting on a crater run to be completed. labels Apr 14, 2025
@compiler-errors
Copy link
Member Author

As expected, 1 quadrillion regressions. These will almost certainly need to be fixed in the new solver.

matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Apr 16, 2025
Don't require rigid alias's trait to hold

See test for write-up. TL;DR is that we don't need the trait bound to hold, since we enforce it during WF.

I think this is preferable to introducing (if we even could do so) a more specific hack around coroutine interiors, higher ranked types, etc, since this is just a manifestation of more pervasive issues w/ lifetime erasure in coroutines. This just doesn't manifest in the old solver b/c it doesn't try to prove `T: Trait` holds when rigidly projecting `<T as Trait>::Assoc`.

It's pretty clear that this affects quite a few traits (rust-lang#139763), so I think this needs fixing.

r? lcnr

Fixes rust-lang/trait-system-refactor-initiative#177
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 17, 2025
Rollup merge of rust-lang#139828 - compiler-errors:rigid-trait, r=lcnr

Don't require rigid alias's trait to hold

See test for write-up. TL;DR is that we don't need the trait bound to hold, since we enforce it during WF.

I think this is preferable to introducing (if we even could do so) a more specific hack around coroutine interiors, higher ranked types, etc, since this is just a manifestation of more pervasive issues w/ lifetime erasure in coroutines. This just doesn't manifest in the old solver b/c it doesn't try to prove `T: Trait` holds when rigidly projecting `<T as Trait>::Assoc`.

It's pretty clear that this affects quite a few traits (rust-lang#139763), so I think this needs fixing.

r? lcnr

Fixes rust-lang/trait-system-refactor-initiative#177
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request Apr 19, 2025
Don't require rigid alias's trait to hold

See test for write-up. TL;DR is that we don't need the trait bound to hold, since we enforce it during WF.

I think this is preferable to introducing (if we even could do so) a more specific hack around coroutine interiors, higher ranked types, etc, since this is just a manifestation of more pervasive issues w/ lifetime erasure in coroutines. This just doesn't manifest in the old solver b/c it doesn't try to prove `T: Trait` holds when rigidly projecting `<T as Trait>::Assoc`.

It's pretty clear that this affects quite a few traits (rust-lang/rust#139763), so I think this needs fixing.

r? lcnr

Fixes rust-lang/trait-system-refactor-initiative#177
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants