compiler: detect and error on public init function & remove empty init functions
parent
065ce39577
commit
a06e2298f0
|
@ -222,6 +222,10 @@ fn (p mut Parser) fn_decl() {
|
|||
f.name = p.check_name()
|
||||
}
|
||||
f.fn_name_token_idx = p.cur_tok_index()
|
||||
// init fn
|
||||
if f.name == 'init' && f.is_public {
|
||||
p.error('init function cannot be public')
|
||||
}
|
||||
// C function header def? (fn C.NSMakeRect(int,int,int,int))
|
||||
is_c := f.name == 'C' && p.tok == .dot
|
||||
// Just fn signature? only builtin.v + default build mode
|
||||
|
|
|
@ -4,18 +4,13 @@
|
|||
|
||||
module http
|
||||
|
||||
|
||||
#flag windows -I @VROOT/thirdparty/vschannel
|
||||
#flag -l ws2_32
|
||||
#flag -l crypt32
|
||||
#flag -l secur32
|
||||
#flag -l ws2_32, crypt32, secur32
|
||||
|
||||
#include "vschannel.c"
|
||||
|
||||
fn C.new_tls_context() C.TlsContext
|
||||
|
||||
fn init() int { return 1 }
|
||||
|
||||
fn (req &Request) ssl_do(port int, method, host_name, path string) ?Response {
|
||||
mut ctx := C.new_tls_context()
|
||||
C.vschannel_init(&ctx)
|
||||
|
|
|
@ -6,8 +6,6 @@ module net
|
|||
#include <netdb.h>
|
||||
#include <errno.h>
|
||||
|
||||
fn init() int { return 1 }
|
||||
|
||||
fn error_code() int {
|
||||
return C.errno
|
||||
}
|
||||
|
|
|
@ -20,13 +20,12 @@ const (
|
|||
WSA_V22 = 0x202 // C.MAKEWORD(2, 2)
|
||||
)
|
||||
|
||||
fn init() int {
|
||||
fn init() {
|
||||
mut wsadata := C.WSAData{}
|
||||
res := C.WSAStartup(WSA_V22, &wsadata)
|
||||
if res != 0 {
|
||||
panic('socket: WSAStartup failed')
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
fn error_code() int {
|
||||
|
|
Loading…
Reference in New Issue