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

struct reference mutable function argument builder problem #21265

Open
Eliyaan opened this issue Apr 12, 2024 · 0 comments
Open

struct reference mutable function argument builder problem #21265

Eliyaan opened this issue Apr 12, 2024 · 0 comments
Labels
Bug This tag is applied to issues which reports bugs.

Comments

@Eliyaan
Copy link
Contributor

Eliyaan commented Apr 12, 2024

Describe the bug

When the struct reference is a mutable function argument it outputs a builder error and a warning.

Reproduction Steps

@[heap]
struct Client {
mut:
  next &Client
  prev &Client

}

fn init_vm(mut head &Client) {
  	for c := head; c == unsafe{nil}; c = c.next { 

	}
}

fn main() {
	mut head := &Client(unsafe{nil})
   	init_vm(mut head)
}
@[heap]
struct Client {
mut:
  next &Client
  prev &Client

}

fn init_vm(mut head &Client) {
  	for c := head; c; c = c.next { 

	}
}

fn main() {
	mut head := &Client(unsafe{nil})
   	init_vm(mut head)
}

Expected Behavior

It not to output a builder error nor a warning.

Current Behavior

issue.v:11:39: warning: cannot assign a reference to a value (this will be an error soon) left=Client false right=Client true ptr=true
    9 | 
   10 | fn init_vm(mut head &Client) {
   11 |       for c := head; c == unsafe{nil}; c = c.next { 
      |                                          ^
   12 | 
   13 |     }
==================
/tmp/v_1000/issue.01HV8TCY7TQM1F0E8ZW6X6ETY7.tmp.c:13024: error: cannot convert 'struct main__Client' to 'unsigned long'
...
==================
(Use `v -cg` to print the entire error message)

builder error

Possible Solution

No response

Additional Information/Context

No response

V version

V 0.4.5 423c39c

Environment details (OS name and version, etc.)

V full version: V 0.4.5 294f7e4.423c39c
OS: linux, Linux version 6.6.13-200.fc39.x86_64 (mockbuild@72f11b2996ed4699b0f705186172808f) (gcc (GCC) 13.2.1 20231205 (Red Hat 13.2.1-6), GNU ld version 2.40-13.fc39) #1 SMP PREEMPT_DYNAMIC Sat Jan 20 18:03:28 UTC 2024
Processor: 4 cpus, 64bit, little endian, Intel(R) Pentium(R) Gold 7505 @ 2.00GHz

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.

@Eliyaan Eliyaan added the Bug This tag is applied to issues which reports bugs. label Apr 12, 2024
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.
Projects
None yet
Development

No branches or pull requests

1 participant