generate: Properly check assignment within <message>.Decode
This commit is contained in:
parent
7343cf5853
commit
1118b11bcd
@ -246,15 +246,24 @@ func (this *Generator) generateMessage(method uint16, message Message) (n int, e
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateErrorCheck()
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.iprintf("if !tag.Is(")
|
||||
|
||||
nn, err = this.iprintf("if !(")
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateTN(message.Type)
|
||||
nn, err = this.generateCanAssign(message.Type, "tag")
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.printf(") {\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
// TODO skip value using the correct TAPE function and return
|
||||
this.push()
|
||||
nn, err = this.iprintf("nn, err = tape.Skim(decoder, tag)")
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.generateErrorCheck()
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.iprintf("return n, nil")
|
||||
n += nn; if err != nil { return n, err }
|
||||
this.pop()
|
||||
nn, err = this.iprintf("}\n")
|
||||
n += nn; if err != nil { return n, err }
|
||||
|
||||
nn, err = this.generateDecodeValue(message.Type, "this", "tag")
|
||||
n += nn; if err != nil { return n, err }
|
||||
nn, err = this.iprintf("return n, nil\n")
|
||||
|
Loading…
x
Reference in New Issue
Block a user