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
Don't probe InferConst
in fold_const
if self.infcx
is None
, deeply_normalize
tys in check_tys_might_be_eq
#124526
base: master
Are you sure you want to change the base?
Conversation
changes to the core type system |
r? lcnr |
This comment has been minimized.
This comment has been minimized.
Some changes occurred in src/tools/compiletest cc @jieyouxu |
@rustbot label -A-testsuite -T-bootstrap |
Im not sure this fix is correct. Whether the paramenv has already been canonicalized or not has nothing to do with whether we can encounter consts with aliases as their type. I would expect the correct fix to be to normalize both types in Sooo we probably want that fn to call |
Co-authored-by: Boxy <supbscripter@gmail.com>
ty::Const
if its ParamEnv
isn't canonicalized yetInferConst
in fold_const
if self.infcx
is None
, deeply_normalize
tys in check_tys_might_be_eq
Ty for the pointers, though non-wf aliases ICEs even without struct Sized<T>(T);
type NonWf = Sized<dyn ToString>;
struct Walk<const W: NonWf> {}
impl Walk<{ Sized("") }> {} https://play.rust-lang.org/?gist=66eb4c5f0a126c73ba8734ef399b639d @rustbot label -A-testsuite -T-bootstrap |
Why the first commit? You didn't update the function that handles tys and also it shouldn't be required for this as in super_combine_tys we have an infcx available for canonicalization |
It's for #119381, whose backtrack is as follow:
Though it may be preferable to (re-)canonicalize |
Fixes #119381, fixes #114456.