STR-338: strc prints "SSL_printnl: argument not a list" to stderr for unclear reasons.
Compiler reports for many tools:
SSL_printnl: argument not a list: Anno(Op(“Conc”,[Var(“l1”),Var(“l2”)]),Wld)
Submitted on 15 July 2005 at 00:11
SSL_printnl: argument not a list: Anno(Op(“Conc”,[Wld,Wld]),Wld)
Issue Log
STR-338, martin:
Message is from incorrect error reporting for Conc in match. Conc in match and build will be allowed and desugar list matching will generate runtime check.[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfId_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfId_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfId_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListStarOfStringPart_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfStringPart_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfStringPart_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfStringPart_0(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListStarOfCharClass_1(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfCharClass_1(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfCharClass_1(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
[ desugar-list-matching | error ] concatentation in match in definition is-ListPlusOfCharClass_1(0,0)
Anno(Op(“Conc”,[Wld,Wld]),Wld)
STR-338, visser:
The problem was caused by an erroneous use of the ‘error’ strategy. The error reported was the use of a Conc term in a match. Since this excluded the use of this constructor everywhere, this is no longer an error. Also, the use of Conc in builds is extended to terms in which the arguments of Conc are not proper lists. The new library strategy makeConc is used to concatenate if the arguments are lists and construct a Conc node otherwise.
constructed
Log in to post comments