mirror of
https://github.com/Dummi26/mers.git
synced 2025-03-10 14:13:52 +01:00
bugfix: changing the implementation of get() to respect references broke some builtin functions which did not account for this
This commit is contained in:
parent
82f2f028fa
commit
68c2b52ad7
@ -380,7 +380,12 @@ impl BuiltinFunction {
|
|||||||
// if vec.is_reference().is_some_and(|v| v) { // unstable
|
// if vec.is_reference().is_some_and(|v| v) { // unstable
|
||||||
if let Some(true) = vec.is_reference() {
|
if let Some(true) = vec.is_reference() {
|
||||||
if let Some(t) = vec.get_any(info) {
|
if let Some(t) = vec.get_any(info) {
|
||||||
el.fits_in(&t, info).is_empty()
|
el.fits_in(
|
||||||
|
&t.dereference()
|
||||||
|
.expect("running get() on &[ ...] should give a reference"),
|
||||||
|
info,
|
||||||
|
)
|
||||||
|
.is_empty()
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
@ -396,7 +401,12 @@ impl BuiltinFunction {
|
|||||||
let (vec, el) = (&input[0], &input[1]);
|
let (vec, el) = (&input[0], &input[1]);
|
||||||
if let Some(true) = vec.is_reference() {
|
if let Some(true) = vec.is_reference() {
|
||||||
if let Some(t) = vec.get_any(info) {
|
if let Some(t) = vec.get_any(info) {
|
||||||
el.fits_in(&t, info).is_empty()
|
el.fits_in(
|
||||||
|
&t.dereference()
|
||||||
|
.expect("running get() on a &[ ...] should give a reference."),
|
||||||
|
info,
|
||||||
|
)
|
||||||
|
.is_empty()
|
||||||
} else {
|
} else {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
@ -613,7 +623,11 @@ impl BuiltinFunction {
|
|||||||
VSingleType::Tuple(vec![]),
|
VSingleType::Tuple(vec![]),
|
||||||
VSingleType::Tuple(vec![v
|
VSingleType::Tuple(vec![v
|
||||||
.get_any(info)
|
.get_any(info)
|
||||||
.expect("cannot use get on this type")]),
|
.expect("cannot use get on this type")
|
||||||
|
.dereference()
|
||||||
|
.expect(
|
||||||
|
"running get_any() on &[ ...] should give a reference...",
|
||||||
|
)]),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user