test v -live message.v

pull/2978/head
Alexander Medvednikov 2019-12-05 00:14:23 +03:00
parent 2144c162c4
commit e707ac4f28
3 changed files with 25 additions and 7 deletions

View File

@ -3,12 +3,21 @@ module main
import (
os
testing
)
)
fn main() {
args := os.args
args_string := args[1..].join(' ')
if testing.v_build_failing(args_string.all_before('build-examples'), 'examples') {
if testing.v_build_failing(
args_string.all_before('build-examples'), 'examples')
{
exit(1)
}
// Test -live
vexe := args[1]
ret := os.system('$vexe -live examples/hot_reload/message.v')
if ret != 0 {
println('-live message.v failed')
exit(1)
}
}

View File

@ -1236,11 +1236,16 @@ fn (p mut Parser) statement(add_semi bool) string {
}
else {
// panic and exit count as returns since they stop the function
if p.lit == 'panic' || p.lit == 'exit' {
is_panic := p.lit == 'panic' || p.lit == 'exit'
if is_panic {
p.returns = true
}
// `a + 3`, `a(7)`, or just `a`
q = p.bool_expression()
// Fix "control reaches end of non-void function" error
if is_panic && p.cur_fn.typ == 'bool' {
p.genln(';\nreturn false;')
}
}
}
.key_goto {

View File

@ -858,11 +858,15 @@ pub fn is_dir(path string) bool {
// is_link returns a boolean indicating whether the given path is a link.
pub fn is_link(path string) bool {
statbuf := C.stat{}
if C.lstat(path.str, &statbuf) != 0 {
return false
$if windows {
return false // TODO
} $else {
statbuf := C.stat{}
if C.lstat(path.str, &statbuf) != 0 {
return false
}
return int(statbuf.st_mode) & S_IFMT == S_IFLNK
}
return int(statbuf.st_mode) & S_IFMT == S_IFLNK
}
// chdir changes the current working directory to the new directory path.