diff options
| author | Philip Herron <herron.philip@googlemail.com> | 2025-11-03 16:48:56 +0000 |
|---|---|---|
| committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-11-17 15:58:18 +0100 |
| commit | 1a8eabdb1e5493e0b8c211b19431631a796c9657 (patch) | |
| tree | 9ba30d1eb2f5ee2726b40d12d91bb5a235d9787c /libjava/classpath/gnu/java/beans/decoder/ArrayHandler.java | |
| parent | 0431b50cea7992e51dd33e9224837349425970ba (diff) | |
gccrs: Add support for binding const generic values to paths
Const generics bind values which can be accessed like a normal path but the difference
is that they can be true expression values not just type paths. This patch adds support
to resolving a method inference which passes a generic value into the method and fixes
some missed bugs along the way. The tricky part was that there is a case where in the
return position of a method returning a const param type vs the type of the method
there is a special case in the unify rules so that we unify the specified type of the
const param type not the const param itself.
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc: handle const param values
* typecheck/rust-hir-type-check-item.cc: generate const infer vars when required
* typecheck/rust-type-util.cc (unify_site_and): handle a null param cleanup
* typecheck/rust-tyty-util.cc (TyVar::get_implicit_const_infer_var): helper interface
* typecheck/rust-tyty-util.h: update header prototypes
* typecheck/rust-tyty.cc (BaseType::is_concrete): correctly handle const types
(ConstParamType::get_name): emit the specified type
(ConstParamType::is_equal): fix recursion loop
* typecheck/rust-unify.cc (UnifyRules::go): const infer vars need cleanup too
* typecheck/rust-unify.h: support base generics
gcc/testsuite/ChangeLog:
* rust/execute/torture/const-generics-2.rs: New test.
Signed-off-by: Philip Herron <herron.philip@googlemail.com>
Diffstat (limited to 'libjava/classpath/gnu/java/beans/decoder/ArrayHandler.java')
0 files changed, 0 insertions, 0 deletions
