vlang / v

Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
MIT License
35.8k stars 2.17k forks source link

checker: wrong assert pass. missing checker error #22793

Open enghitalo opened 5 days ago

enghitalo commented 5 days ago

Describe the bug

t should already be de-referenced, right?

Reproduction Steps

fn test_main() {
    la := 'lalala'
    a(&la)
}

fn a[T](t &T) {
    println(t)
    dump(t)
    assert *t == 'lalala'
}

Expected Behavior

checker error in assert *t == 'lalala'

Current Behavior

assert pass

Possible Solution

No response

Additional Information/Context

No response

V version

V 0.4.8 31d6c47

Environment details (OS name and version, etc.)

Linux

[!NOTE] You can use the 👍 reaction to increase the issue's priority for developers.

Please note that only the 👍 reaction to the issue itself counts as a vote. Other reactions and those to comments will not be taken into account.

Huly®: V_0.6-21239

enghitalo commented 5 days ago

Would works, I guess

fn test_main() {
    la := 'lalala'
    la2 := &la
    la3 := &la2
    a(la3)
}

fn a[T](t &T) {
    println(t)
    dump(t)
    assert *t == 'lalala'
}