[yast-commit] r64125 - in /trunk/core/libycp: src/YExpression.cc testsuite/tests/values/List3.err testsuite/tests/values/List3.out testsuite/tests/values/List3.ycp

Author: mvidner Date: Thu May 26 19:00:35 2011 New Revision: 64125 URL: http://svn.opensuse.org/viewcvs/yast?rev=64125&view=rev Log: A nil (type cast failure) in a list literal will not make the whole list nil (bnc#694520). Added: trunk/core/libycp/testsuite/tests/values/List3.err trunk/core/libycp/testsuite/tests/values/List3.out trunk/core/libycp/testsuite/tests/values/List3.ycp (with props) Modified: trunk/core/libycp/src/YExpression.cc Modified: trunk/core/libycp/src/YExpression.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/src/YExpression.cc?re... ============================================================================== --- trunk/core/libycp/src/YExpression.cc (original) +++ trunk/core/libycp/src/YExpression.cc Thu May 26 19:00:35 2011 @@ -741,13 +741,15 @@ YCPValue value = element->code->evaluate (cse); if (value.isNull()) - { - return value; - } - else - { - list->add (value); + { + if (cse) { + return value; // expression is not a constant + } + else { + value = YCPVoid(); + } } + list->add (value); element = element->next; } return list; Added: trunk/core/libycp/testsuite/tests/values/List3.err URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/value... ============================================================================== --- trunk/core/libycp/testsuite/tests/values/List3.err (added) +++ trunk/core/libycp/testsuite/tests/values/List3.err Thu May 26 19:00:35 2011 @@ -0,0 +1,12 @@ +Parsed: +---------------------------------------------------------------------- +{ + // any number + // list <string> l + // filename: "tests/values/List3.ycp" + any number = 42; + list <string> l = ["an invalid element in a list literal:", /* any -> string */number, "should not invalidate the entire list"]; + return l; +} +---------------------------------------------------------------------- +[Interpreter] tests/values/List3.ycp:4 Can't convert value '42' to type 'string' Added: trunk/core/libycp/testsuite/tests/values/List3.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/value... ============================================================================== --- trunk/core/libycp/testsuite/tests/values/List3.out (added) +++ trunk/core/libycp/testsuite/tests/values/List3.out Thu May 26 19:00:35 2011 @@ -0,0 +1 @@ +(["an invalid element in a list literal:", nil, "should not invalidate the entire list"]) Added: trunk/core/libycp/testsuite/tests/values/List3.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/value... ============================================================================== --- trunk/core/libycp/testsuite/tests/values/List3.ycp (added) +++ trunk/core/libycp/testsuite/tests/values/List3.ycp Thu May 26 19:00:35 2011 @@ -0,0 +1,8 @@ +// bnc#694520 +{ + any number = 42; + list<string> l = ["an invalid element in a list literal:", + (string) number, // fails + "should not invalidate the entire list"]; + return l; +} -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
mvidner@svn2.opensuse.org