Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c2c6b91388
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
f8a25e5 to
aeec92d
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: aeec92d371
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
...es/fe/tests/fixtures/crash_regressions/trait_constraints_missing_core_effect_ref_c5d7f979.fe
Show resolved
Hide resolved
|
Some good stuff in here, but also some cases that are papering over real bugs by working around panics. These panics let the fuzzer find bugs; if we just remove them all with fallbacks the fuzzing becomes useless. |
a50f8fd to
3992bb3
Compare
e51641c to
5892bcc
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5892bcc750
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@g-r-a-n-t Do you mind if I push a few commits to this branch? |
Please do. |
57eb711 to
20b6efd
Compare
7fe04e1 to
ed9aca8
Compare
Co-authored-by: Sean Billig <sean.billig@gmail.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8cadca2522
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
< BEA4 ul dir="auto">If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| let folded_inst_keys = inference_keys(db, &folded_inst); | ||
| let folded_ty_keys = inference_keys(db, &folded_ty); | ||
| if folded_inst_keys.is_subset(&lhs_keys) && folded_ty_keys.is_subset(&lhs_keys) { |
There was a problem hiding this comment.
Keep bound-carried generics when resolving associated types
In find_associated_type, this new lhs_keys filter drops any candidate whose projection still mentions a generic that comes from the trait bound rather than from Self. That breaks valid cases like where U: Trait<T> followed by U::Assoc: after unification, folded_ty still contains T, so the candidate is discarded and the path resolves as “not found” even though the bound uniquely defines the associated type. The same pattern affects nested projections that depend on extra bound arguments.
Useful? React with 👍 / 👎.
| let (expected_base, _) = expected_ty.decompose_ty_app(db); | ||
| let (resolved_base, _) = ty_id.decompose_ty_app(db); | ||
| if expected_base == resolved_base { |
There was a problem hiding this comment.
Preserve explicit type arguments in constructor patterns
This base-type check is broad enough to fire for explicitly written generic patterns like Foo<bool> against a Foo<i32> scrutinee. Once it does, the branch below rewrites the constructor to expected_ty, so exhaustiveness/reachability analysis treats the invalid arm as if it were Foo<i32>. That can produce bogus unreachable pattern or missing-arm diagnostics whenever a struct/tuple pattern names the right constructor with the wrong type arguments.
Useful? React with 👍 / 👎.
eff91898ehir: avoid self-assumptions in trait headerstrait_header_assoc_projection_recursive_bound.feaccc364f6hir: recover trait-ref and assoc-bound cycles as diagnosticslower_trait_ref, makes recursive bound expansion safer, keeps unnamed impl methods from poisoning trait collection, and covers the affected crash-regression paths.499d4ead,1670ec70,acb16143,a8d7d78c,assoc_ty_cycle11316942bhir: harden associated-type resolution and normalizationb02aa0c9,c2482ead,7856b3f9f2250a523hir: harden malformed impl and pattern analysisunreachable!()paths during analysis.a64bec5e,76e16ce9,25d24f34,b8fc85b7e81f3c594mir/index: avoid scalar address-space lookup on by-value indexingd51fafedfmir: short-circuit diagnostics and lowering on invalid HIRmir_borrow_operand_not_place.fe,mir_match_lowering_non_ref_projection_d58afcf7.fe,mir_value_address_space_fallback_143863d4.fe,monomorphize_failed_instantiate_from_parse_error.fe,monomorphize_unlowered_hir_expr_survives.fe,monomorphize_unresolved_trait_method.fe6195de534tests: minimize coverage-only crash fixtureshir_pretty_print_missing_param_name_5ecc2069.feand related coverage-only fixture cleanup8cadca252tests: refresh inline Fe snippets for current parser syntaxcrates/codegen/src/sonatina/tests.rs,crates/mir/src/transform.rs, parser-facing fixtures