parser: do not allow "int?", only "?int"
							parent
							
								
									f27f3515ae
								
							
						
					
					
						commit
						d2d75f3824
					
				| 
						 | 
				
			
			@ -1022,12 +1022,9 @@ fn (p mut Parser) get_type() string {
 | 
			
		|||
		p.register_array(typ)
 | 
			
		||||
	}
 | 
			
		||||
	p.next()
 | 
			
		||||
	if p.tok == .question || is_question {
 | 
			
		||||
	if is_question {
 | 
			
		||||
		typ = 'Option_$typ'
 | 
			
		||||
		p.table.register_type_with_parent(typ, 'Option')
 | 
			
		||||
		if p.tok == .question {
 | 
			
		||||
			p.next()
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// Because the code uses * to see if it's a pointer
 | 
			
		||||
	if typ == 'byteptr' {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -154,17 +154,13 @@ fn (p mut Parser) get_type2() Type {
 | 
			
		|||
	}
 | 
			
		||||
	else if is_arr {
 | 
			
		||||
		typ = 'array_$typ'
 | 
			
		||||
		// p.log('ARR TYPE="$typ" run=$p.pass')
 | 
			
		||||
		// We come across "[]User" etc ?
 | 
			
		||||
		p.register_array(typ)
 | 
			
		||||
	}
 | 
			
		||||
	p.next()
 | 
			
		||||
	if p.tok == .question || is_question {
 | 
			
		||||
	if is_question {
 | 
			
		||||
		typ = 'Option_$typ'
 | 
			
		||||
		p.table.register_type_with_parent(typ, 'Option')
 | 
			
		||||
		if p.tok == .question {
 | 
			
		||||
			p.next()
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if typ.last_index('__') > typ.index('__') {
 | 
			
		||||
		p.error('2 __ in gettype(): typ="$typ"')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ pub fn full_path_to_v() string {
 | 
			
		|||
	return vexec
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub fn run_repl_file(wd string, vexec string, file string) string? {
 | 
			
		||||
pub fn run_repl_file(wd string, vexec string, file string) ?string {
 | 
			
		||||
	fcontent := os.read_file(file) or {	return error('Could not read file $file') }
 | 
			
		||||
	content := fcontent.replace('\r', '')		
 | 
			
		||||
	input := content.all_before('===output===\n')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ import(
 | 
			
		|||
	encoding.binary
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
pub fn int_u64(max u64) u64? {
 | 
			
		||||
pub fn int_u64(max u64) ?u64 {
 | 
			
		||||
	bitlen := bits.len64(max)
 | 
			
		||||
	if bitlen == 0 {
 | 
			
		||||
		return u64(0)
 | 
			
		||||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ pub fn int_u64(max u64) u64? {
 | 
			
		|||
	return n
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn bytes_to_u64(b []byte) []u64 {   
 | 
			
		||||
fn bytes_to_u64(b []byte) []u64 {
 | 
			
		||||
	ws := 64/8
 | 
			
		||||
	mut z := [u64(0)].repeat((b.len + ws - 1) / ws)
 | 
			
		||||
	mut i := b.len
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -206,7 +206,7 @@ pub fn dial(address string, port int) ?Socket {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// send string data to socket
 | 
			
		||||
pub fn (s Socket) send(buf byteptr, len int) int? {
 | 
			
		||||
pub fn (s Socket) send(buf byteptr, len int) ?int {
 | 
			
		||||
	res := int( C.send(s.sockfd, buf, len, 0) )
 | 
			
		||||
	if res < 0 {
 | 
			
		||||
		return error('socket: send failed')
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,10 @@
 | 
			
		|||
import net 
 | 
			
		||||
import net
 | 
			
		||||
 | 
			
		||||
fn test_socket() {
 | 
			
		||||
	mut server := net.listen(0) or {
 | 
			
		||||
		println(err)
 | 
			
		||||
		return
 | 
			
		||||
	}    
 | 
			
		||||
	}
 | 
			
		||||
	server_port := server.get_port()
 | 
			
		||||
	mut client := net.dial('127.0.0.1', server_port) or {
 | 
			
		||||
		println(err)
 | 
			
		||||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ fn test_socket() {
 | 
			
		|||
	$if debug {	println('message send: $message')	}
 | 
			
		||||
	$if debug {	println('send socket: $socket.sockfd')	}
 | 
			
		||||
 | 
			
		||||
	bytes, blen := client.recv(1024) 
 | 
			
		||||
	bytes, blen := client.recv(1024)
 | 
			
		||||
	received := tos(bytes, blen)
 | 
			
		||||
	$if debug {	println('message received: $received')	}
 | 
			
		||||
	$if debug {	println('client: $client.sockfd')	}
 | 
			
		||||
| 
						 | 
				
			
			@ -30,4 +30,4 @@ fn test_socket() {
 | 
			
		|||
	server.close()
 | 
			
		||||
	client.close()
 | 
			
		||||
	socket.close()
 | 
			
		||||
} 
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue