Re: Doubt about compiler error of `has_value` with arrays
[email protected] Thu, 13 Mar 2025 12:16:36 -0400
| Newsgroups | gmane.comp.lang.pike.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Marcos!
If you're using hilfe, you may occasionally notice that perfectly legal
code doesn't work. That's a result of the "magic" that makes incremental
compilation and evaluation in hilfe possible. I think this is one of
those occasions. I'm sure that someone with understanding of how hilfe
works under the covers can provide more details, or possibly a fix.
In the meantime, you can get around this error by using the following:
> int x;
> array y = ({ 1, 2, 3, 4 });
> x = has_value(y, 5);
(2) Result: 0
Hope this helps.
Best,
Bill
[email protected]
On 2025-03-13 12:07, Marcos Cruz wrote:
> I'm using Pike v8.0 release 1738 on Debian 12.9.
>
> I got this:
>
> ```
> int x;
> x = has_value(({ 1, 2, 3, 4 }), -100); // result: 0
> x = has_value(({ 1, 2, 3, 4 }), 0); // result: 0
> x = has_value(({ 1, 2, 3, 4 }), 4); // result: 1
> x = has_value(({ 1, 2, 3, 4 }), 5);
> Compiler Error: 1: Bad argument 2 to has_value.
> Compiler Error: 1: Expected: int(0..4).
> Compiler Error: 1: Got : int(5..5).
> ```
>
> I expected a result of 0 also with numbers greater than 4, after the
> documentation
> (http://pike.lysator.liu.se/generated/manual/modref/ex/predef_3A_3A/has_value.html#has_value).
>
> Is it a bug or am I missing something?
>
> Thank you in advance.