Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

checker: mutability of if-expression branch returns is not enforced #22653

Open
zeozeozeo opened this issue Oct 25, 2024 · 1 comment · May be fixed by #22663
Open

checker: mutability of if-expression branch returns is not enforced #22653

zeozeozeo opened this issue Oct 25, 2024 · 1 comment · May be fixed by #22663
Assignees
Labels
Bug This tag is applied to issues which reports bugs. Status: Confirmed This bug has been confirmed to be valid by a contributor. Unit: Checker Bugs/feature requests, that are related to the type checker.

Comments

@zeozeozeo
Copy link
Contributor

zeozeozeo commented Oct 25, 2024

V doctor:

V full version: V 0.4.8 5c65e58.a454f06
OS: windows, Microsoft Windows 10 Pro v19045 64-bit
Processor: 10 cpus, 64bit, little endian, 

getwd: C:\Users\user\Downloads
vexe: C:\Users\user\Desktop\Code\v\v.exe
vexe mtime: 2024-10-25 17:08:19

vroot: OK, value: C:\Users\user\Desktop\Code\v
VMODULES: OK, value: C:\Users\user\.vmodules
VTMP: OK, value: C:\Users\user\AppData\Local\Temp\v_0

Git version: git version 2.42.0.windows.1
Git vroot status: weekly.2024.43-30-ga454f064
.git/config present: true

CC version: Error: 'cc' is not recognized as an internal or external command,

operable program or batch file.


thirdparty/tcc status: thirdparty-windows-amd64 b425ac82

What did you do?
./v -g -o vdbg cmd/v && ./vdbg test.v

fn main() {
    arr := [1, 2, 3] // declared as immutable!
    mut arr_mut := if true { arr } else { []int{} }
    arr_mut[0] = 999
    println(arr) // [999, 2, 3]
}

What did you expect to see?

Compilation error saying that arr is declared as immutable (assigning immutable arr to mutable arr_mut should not be allowed).

What did you see instead?

[999, 2, 3]

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-21102

@heyimtcn
Copy link
Contributor

it should force cloning the immutable array

@felipensp felipensp self-assigned this Oct 26, 2024
@felipensp felipensp added Bug This tag is applied to issues which reports bugs. Status: Confirmed This bug has been confirmed to be valid by a contributor. Unit: Checker Bugs/feature requests, that are related to the type checker. labels Oct 26, 2024
@felipensp felipensp linked a pull request Oct 26, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug This tag is applied to issues which reports bugs. Status: Confirmed This bug has been confirmed to be valid by a contributor. Unit: Checker Bugs/feature requests, that are related to the type checker.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants