charstring pattern restriction and empty string
Submitted by G??bor Szalai
Link to original bug (#568340)
Description
The following pattern subtyping not matches to ""
type charstring api_prefix (pattern "(/?+)#(0,1)")
var api_prefix vl_p1 := "/a/b/c/d" // OK var api_prefix vl_p2 := "" // error: "" is not a valid value for type `charstring' which has subtype pattern ((/?+)#(,1))
But the pattern allow ""
log(match("", pattern "(/?+)#(0,1)")) -> "" with pattern "(/?+)#(,1)" matched
module proba{
type charstring api_prefix (pattern "(/?+)#(0,1)")
function f1(){ var api_prefix vl_p1 := "/a/b/c/d" var api_prefix vl_p2 := ""
}
control{ var charstring chr:="/a/b/c/d"
log(match(chr, pattern "(/?+)#(0,1)")) // OK - matched chr:="a/b/c/d" log(match(chr, pattern "(/?+)#(0,1)")) // OK - not matched
chr:="" log(match(chr, pattern "(/?+)#(0,1)")) // OK - matched log(match("", pattern "(/?+)#(0,1)")) // OK - matched
}
}
Version: 7.1.0