diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-04-17 14:13:12 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-17 14:13:12 +0000 |
commit | 3ee4bf774c517b25baaec0863550ab6c52f4b120 (patch) | |
tree | df68e45a223e5bf57353118fc780a3f0ce037c45 /gcc/rust/backend | |
parent | 935aff52a66a70e1e96f0a6aa7e0ad37eda3f93c (diff) | |
parent | ee247029acfaee991660ff14c85f7146b9040511 (diff) | |
download | gcc-3ee4bf774c517b25baaec0863550ab6c52f4b120.zip gcc-3ee4bf774c517b25baaec0863550ab6c52f4b120.tar.gz gcc-3ee4bf774c517b25baaec0863550ab6c52f4b120.tar.bz2 |
Merge #377
377: Fix crash when mapping of Generic argument changes. r=philberty a=philberty
When we have a struct Foo <T>(T) but the fntype in impl block is different
fn <X> Bar(a:X) -> Foo<X>(X) { } we must take advantage of the adjustment
code in the substitution mapper.
This affects MethodCallExpr and PathInExpressions where it used to resolve
the root segment and leave the arguments as inference variables when we
lack a segement with generic arguments.
This also fixes a bug in name resolution where the Self keyword resolved
to the struct/type the impl block resolves to but it needed to resolve
to the impl block type explicitly which ensures the parameter mappings
reflect what the parent impl block is.
Fixes: #376
Co-authored-by: Philip Herron <philip.herron@embecosm.com>
Diffstat (limited to 'gcc/rust/backend')
0 files changed, 0 insertions, 0 deletions