Skip to content

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

New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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