update []

pull/2760/head
Alexander Medvednikov 2019-11-14 09:53:05 +03:00
parent 4a833d8151
commit 96b530cf85
7 changed files with 41 additions and 40 deletions

View File

@ -65,12 +65,12 @@ struct K {
} }
fn test_empty() { fn test_empty() {
mut chunks := []Chunk mut chunks := []
a := Chunk{} a := Chunk{}
assert chunks.len == 0 assert chunks.len == 0
chunks << a chunks << a
assert chunks.len == 1 assert chunks.len == 1
chunks = []Chunk chunks = []
assert chunks.len == 0 assert chunks.len == 0
chunks << a chunks << a
assert chunks.len == 1 assert chunks.len == 1

View File

@ -2428,13 +2428,14 @@ fn (p mut Parser) array_init() string {
if p.tok != .name && i == 0 && !exp_array { if p.tok != .name && i == 0 && !exp_array {
p.error('specify array type: `[]typ` instead of `[]`') p.error('specify array type: `[]typ` instead of `[]`')
} }
if p.tok == .name && i == 0 { if p.tok == .name && i == 0 &&
p.tokens[p.token_idx-2].line_nr == p.tokens[p.token_idx-1].line_nr { // TODO
// vals.len == 0 { // vals.len == 0 {
if exp_array { if exp_array {
p.error('use `foo = []` instead of `foo = []Type`') p.error('use `foo = []` instead of `foo = []Type`')
} }
typ = p.get_type() typ = p.get_type()
} else if exp_array { } else if exp_array && i == 0 {
// allow `known_array = []` // allow `known_array = []`
typ = p.expected_type[6..] typ = p.expected_type[6..]
} }

View File

@ -67,7 +67,7 @@ pub fn (d mut Digest) write(p_ []byte) int {
d.nx = 0 d.nx = 0
} }
if n >= p.len { if n >= p.len {
p = []byte p = []
} else { } else {
p = p[n..] p = p[n..]
} }
@ -76,7 +76,7 @@ pub fn (d mut Digest) write(p_ []byte) int {
n := p.len &~ (block_size - 1) n := p.len &~ (block_size - 1)
block(mut d, p[..n]) block(mut d, p[..n])
if n >= p.len { if n >= p.len {
p = []byte p = []
} else { } else {
p = p[n..] p = p[n..]
} }

View File

@ -71,7 +71,7 @@ pub fn (d mut Digest) write(p_ []byte) int {
d.nx = 0 d.nx = 0
} }
if n >= p.len { if n >= p.len {
p = []byte p = []
} else { } else {
p = p[n..] p = p[n..]
} }
@ -80,7 +80,7 @@ pub fn (d mut Digest) write(p_ []byte) int {
n := p.len &~ (chunk - 1) n := p.len &~ (chunk - 1)
block(d, p[..n]) block(d, p[..n])
if n >= p.len { if n >= p.len {
p = []byte p = []
} else { } else {
p = p[n..] p = p[n..]
} }

View File

@ -163,7 +163,7 @@ fn (d mut Digest) write(p_ []byte) int {
d.nx = 0 d.nx = 0
} }
if n >= p.len { if n >= p.len {
p = []byte p = []
} else { } else {
p = p[n..] p = p[n..]
} }
@ -172,7 +172,7 @@ fn (d mut Digest) write(p_ []byte) int {
n := p.len &~ (Chunk - 1) n := p.len &~ (Chunk - 1)
block(mut d, p[..n]) block(mut d, p[..n])
if n >= p.len { if n >= p.len {
p = []byte p = []
} else { } else {
p = p[n..] p = p[n..]
} }

View File

@ -2,7 +2,7 @@
import flag import flag
fn test_if_flag_not_given_return_default_values() { fn test_if_flag_not_given_return_default_values() {
mut fp := flag.new_flag_parser([]string) mut fp := flag.new_flag_parser([])
assert false == fp.bool('a_bool', false, '') assert false == fp.bool('a_bool', false, '')
&& 42 == fp.int('an_int', 42, '') && 42 == fp.int('an_int', 42, '')
@ -12,7 +12,7 @@ fn test_if_flag_not_given_return_default_values() {
fn test_could_define_application_name_and_version() { fn test_could_define_application_name_and_version() {
mut fp := flag.new_flag_parser([]string) mut fp := flag.new_flag_parser([])
fp.application('test app') fp.application('test app')
fp.version('0.0.42') fp.version('0.0.42')
fp.description('some text') fp.description('some text')

View File

@ -53,11 +53,11 @@ pub fn (v &Values) get(key string) string {
// a empty []string. // a empty []string.
pub fn (v &Values) get_all(key string) []string { pub fn (v &Values) get_all(key string) []string {
if v.data.size == 0 { if v.data.size == 0 {
return []string return []
} }
vs := v.data[key] vs := v.data[key]
if vs.data.len == 0 { if vs.data.len == 0 {
return []string return []
} }
return vs.data return vs.data
} }
@ -76,7 +76,7 @@ pub fn (v mut Values) set(key, value string) {
pub fn (v mut Values) add(key, value string) { pub fn (v mut Values) add(key, value string) {
mut a := v.data[key] mut a := v.data[key]
if a.data.len == 0 { if a.data.len == 0 {
a.data = []string a.data = []
} }
a.data << value a.data << value
v.data[key] = a v.data[key] = a