zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #05761
[Merge] lp:~zorba-coders/zorba/markos-scratch into lp:zorba
Markos Zaharioudakis has proposed merging lp:~zorba-coders/zorba/markos-scratch into lp:zorba.
Requested reviews:
Markos Zaharioudakis (markos-za)
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/markos-scratch/+merge/95950
Fixed bug #867024
--
https://code.launchpad.net/~zorba-coders/zorba/markos-scratch/+merge/95950
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'ChangeLog'
--- ChangeLog 2012-03-01 21:22:16 +0000
+++ ChangeLog 2012-03-05 17:06:29 +0000
@@ -17,6 +17,7 @@
of the annotations map in expressions.
* Fixed bug 909126 (bug in cloning of var_expr)
* Fixed bug in destruction of exit_catcher_expr
+ * Fixed bug #867024 (error messages)
* Types-related optimizations for runtime operators (comparisons, FnBoolean, Or, And,
Compare, instance-of, cast, castable, treat, promote).
* Fixed bug #911585 (management of variables during eval)
=== modified file 'src/compiler/translator/translator.cpp'
--- src/compiler/translator/translator.cpp 2012-02-29 17:15:09 +0000
+++ src/compiler/translator/translator.cpp 2012-03-05 17:06:29 +0000
@@ -3157,8 +3157,7 @@
{
if (theSctx->xquery_version() < StaticContextConsts::xquery_version_3_0)
{
- RAISE_ERROR(err::XPST0003, loc,
- ERROR_PARAMS("functions and variables annotations only available in XQuery 1.1 or later"));
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_Annotations)));
}
lAnns->accept(*this);
@@ -3916,7 +3915,7 @@
if (theSctx->xquery_version() <= StaticContextConsts::xquery_version_1_0)
RAISE_ERROR(err::XPST0003, loc,
- ERROR_PARAMS(ZED(XQueryVersionAtLeast10_2), theSctx->xquery_version()));
+ ERROR_PARAMS(ZED(XPST0003_XQueryVersionAtLeast30_2), theSctx->xquery_version()));
theHaveContextItemDecl = true;
@@ -5333,12 +5332,10 @@
return NULL;
}
- if ( !theSctx->is_feature_set(feature::scripting) )
+ if (!theSctx->is_feature_set(feature::scripting))
{
- throw XQUERY_EXCEPTION(
- err::XPST0003,
- ERROR_LOC( v.get_location() )
- );
+ RAISE_ERROR(zerr::ZXQP0050_FEATURE_NOT_AVAILABLE, v.get_location(),
+ ERROR_PARAMS(ZED(ZXQP0050_Scripting)));
}
bool topLevel = v.isTopLevel();
@@ -5354,14 +5351,14 @@
push_scope();
- ulong numScopes = theAssignedVars.size();
+ csize numScopes = theAssignedVars.size();
theAssignedVars.resize(numScopes + 1);
- ulong numExprs = v.size();
+ csize numExprs = v.size();
bool declaresVars = false;
- for (ulong i = 0; i < numExprs; ++i)
+ for (csize i = 0; i < numExprs; ++i)
{
v[i]->accept(*this);
@@ -5469,12 +5466,10 @@
{
TRACE_VISIT();
- if ( !theSctx->is_feature_set(feature::scripting) )
+ if (!theSctx->is_feature_set(feature::scripting))
{
- throw XQUERY_EXCEPTION(
- err::XPST0003,
- ERROR_LOC( v.get_location() )
- );
+ RAISE_ERROR(zerr::ZXQP0050_FEATURE_NOT_AVAILABLE, v.get_location(),
+ ERROR_PARAMS(ZED(ZXQP0050_Scripting)));
}
return no_state;
}
@@ -5772,7 +5767,7 @@
v.is_non_10())
{
RAISE_ERROR(err::XPST0003, loc,
- ERROR_PARAMS(ZED(XQueryVersionAtLeast10_2), theSctx->xquery_version()));
+ ERROR_PARAMS(ZED(XPST0003_XQueryVersionAtLeast30_2), theSctx->xquery_version()));
}
rchandle<flwor_expr> flwor = new flwor_expr(theRootSctx, loc, v.is_general());
@@ -5877,7 +5872,7 @@
if (v.has_allowing_empty())
{
if (theSctx->xquery_version() < StaticContextConsts::xquery_version_3_0)
- RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(OuterForClause11)));
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_OuterForClause11)));
theFlworClausesStack.push_back(NULL);
}
@@ -6087,9 +6082,7 @@
TRACE_VISIT();
if (theSctx->xquery_version() < StaticContextConsts::xquery_version_3_0)
- throw XQUERY_EXCEPTION(
- err::XPST0003, ERROR_PARAMS( ZED( WindowClause11 ) ), ERROR_LOC( loc )
- );
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_WindowClause11)));
return no_state;
}
@@ -6708,9 +6701,7 @@
TRACE_VISIT ();
if (theSctx->xquery_version() < StaticContextConsts::xquery_version_3_0)
- throw XQUERY_EXCEPTION(
- err::XPST0003, ERROR_PARAMS( ZED( CountClause11 ) ), ERROR_LOC( loc )
- );
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_CountClause11)));
return no_state;
}
@@ -6774,9 +6765,7 @@
if (theSctx->xquery_version() < StaticContextConsts::xquery_version_3_0)
{
- throw XQUERY_EXCEPTION(err::XPST0003,
- ERROR_PARAMS(ZED(SwitchExpr11)),
- ERROR_LOC(loc));
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_SwitchExpr11)));
}
v.get_switch_expr()->accept(*this);
@@ -7175,9 +7164,7 @@
if (theSctx->xquery_version() < StaticContextConsts::xquery_version_3_0)
{
- throw XQUERY_EXCEPTION(err::XPST0003,
- ERROR_PARAMS(ZED(TryCatchExpr11)),
- ERROR_LOC(loc));
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_TryCatchExpr11)));
}
theTryStack.push_back(&v);
@@ -10388,11 +10375,8 @@
TRACE_VISIT();
if ( !theSctx->is_feature_set(feature::hof) )
{
- throw XQUERY_EXCEPTION(
- zerr::ZXQP0050_FEATURE_NOT_AVAILABLE,
- ERROR_PARAMS( "higher-order functions (hof)" ),
- ERROR_LOC( v.get_location() )
- );
+ RAISE_ERROR(zerr::ZXQP0050_FEATURE_NOT_AVAILABLE, v.get_location(),
+ ERROR_PARAMS("higher-order functions (hof)" ));
}
return no_state;
}
@@ -11418,7 +11402,7 @@
utf8::to_upper(target_str, &target_upper);
if (target_upper == "XML")
- throw XQUERY_EXCEPTION(err::XPST0003, ERROR_LOC(loc));
+ RAISE_ERROR(err::XPST0003, loc, ERROR_PARAMS(ZED(XPST0003_PiTarget)));
expr_t target = new const_expr(theRootSctx, loc, target_str);
expr_t content = new const_expr(theRootSctx, loc, v.get_pi_content().str());
@@ -12487,7 +12471,8 @@
#ifndef ZORBA_NO_FULL_TEXT
-template<typename FTNodeType> bool flatten( ftnode *n ) {
+template<typename FTNodeType> bool flatten( ftnode *n )
+{
if ( FTNodeType *const n2 = dynamic_cast<FTNodeType*>( n ) ) {
typename FTNodeType::ftnode_list_t &list = n2->get_node_list();
typename FTNodeType::ftnode_list_t::iterator i = list.begin();
@@ -12502,7 +12487,8 @@
}
#endif /* ZORBA_NO_FULL_TEXT */
-void *begin_visit (const FTAnd& v) {
+void *begin_visit (const FTAnd& v)
+{
TRACE_VISIT ();
#ifndef ZORBA_NO_FULL_TEXT
push_ftstack( NULL ); // sentinel
@@ -12510,7 +12496,8 @@
return no_state;
}
-void end_visit (const FTAnd& v, void* /*visit_state*/) {
+void end_visit (const FTAnd& v, void* /*visit_state*/)
+{
TRACE_VISIT_OUT ();
#ifndef ZORBA_NO_FULL_TEXT
ftand::ftnode_list_t list;
@@ -12530,35 +12517,46 @@
#endif /* ZORBA_NO_FULL_TEXT */
}
-void *begin_visit (const FTAnyallOption& v) {
- TRACE_VISIT ();
- // nothing to do
- return no_state;
-}
-
-void end_visit (const FTAnyallOption& v, void* /*visit_state*/) {
- TRACE_VISIT_OUT ();
- // nothing to do
-}
-
-void *begin_visit (const FTBigUnit& v) {
- TRACE_VISIT ();
- // nothing to do
- return no_state;
-}
-
-void end_visit (const FTBigUnit& v, void* /*visit_state*/) {
- TRACE_VISIT_OUT ();
- // nothing to do
-}
-
-void *begin_visit (const FTCaseOption& v) {
- TRACE_VISIT ();
- // nothing to do
- return no_state;
-}
-
-void end_visit (const FTCaseOption& v, void* /*visit_state*/) {
+
+void *begin_visit (const FTAnyallOption& v)
+{
+ TRACE_VISIT ();
+ // nothing to do
+ return no_state;
+}
+
+
+void end_visit (const FTAnyallOption& v, void* /*visit_state*/)
+{
+ TRACE_VISIT_OUT ();
+ // nothing to do
+}
+
+
+void *begin_visit (const FTBigUnit& v)
+{
+ TRACE_VISIT ();
+ // nothing to do
+ return no_state;
+}
+
+
+void end_visit (const FTBigUnit& v, void* /*visit_state*/)
+{
+ TRACE_VISIT_OUT ();
+ // nothing to do
+}
+
+void *begin_visit (const FTCaseOption& v)
+{
+ TRACE_VISIT ();
+ // nothing to do
+ return no_state;
+}
+
+
+void end_visit (const FTCaseOption& v, void* /*visit_state*/)
+{
TRACE_VISIT_OUT ();
#ifndef ZORBA_NO_FULL_TEXT
ftmatch_options *const mo = dynamic_cast<ftmatch_options*>( top_ftstack() );
@@ -12571,7 +12569,9 @@
#endif /* ZORBA_NO_FULL_TEXT */
}
-void *begin_visit (const FTContainsExpr& v) {
+
+void *begin_visit (const FTContainsExpr& v)
+{
TRACE_VISIT ();
#ifdef ZORBA_NO_FULL_TEXT
throw XQUERY_EXCEPTION(
@@ -12581,7 +12581,8 @@
return no_state;
}
-void end_visit (const FTContainsExpr& v, void* /*visit_state*/) {
+void end_visit (const FTContainsExpr& v, void* /*visit_state*/)
+{
TRACE_VISIT_OUT ();
#ifndef ZORBA_NO_FULL_TEXT
expr_t ftignore = NULL;
@@ -13326,10 +13327,8 @@
std::map<zstring, zstring> modulesStack;
if (typeid(root) != typeid(MainModule))
- throw XQUERY_EXCEPTION(
- err::XPST0003, ERROR_PARAMS( ZED( ModuleDeclNotInMain ) ),
- ERROR_LOC( root.get_location() )
- );
+ RAISE_ERROR(err::XPST0003, root.get_location(),
+ ERROR_PARAMS(ZED(ModuleDeclNotInMain)));
ModulesInfo minfo(ccb);
=== modified file 'src/diagnostics/diagnostic_en.xml'
--- src/diagnostics/diagnostic_en.xml 2012-02-29 20:55:00 +0000
+++ src/diagnostics/diagnostic_en.xml 2012-03-05 17:06:29 +0000
@@ -39,7 +39,40 @@
It is a static error if an expression is not a valid instance of the
grammar.
</comment>
+
<value>invalid expression${: 1}</value>
+
+ <entry key="XQueryVersionAtLeast30_2">
+ <value>"$2": XQuery version must be at least 3.0</value>
+ </entry>
+
+ <entry key="OuterForClause11">
+ <value>"outer-for" clause only available in XQuery 3.0 or later</value>
+ </entry>
+
+ <entry key="WindowClause11">
+ <value>"window" clause only available in XQuery 3.0 or later</value>
+ </entry>
+
+ <entry key="CountClause11">
+ <value>"count" clause only available in XQuery 3.0 or later</value>
+ </entry>
+
+ <entry key="SwitchExpr11">
+ <value>"switch" expressions only available in XQuery 3.0 or later</value>
+ </entry>
+
+ <entry key="TryCatchExpr11">
+ <value>"try/catch" expressions only available in XQuery 3.0 or later</value>
+ </entry>
+
+ <entry key="Anotations">
+ <value>function and variable annotations only available in XQuery 3.0 or later</value>
+ </entry>
+
+ <entry key="PiTarget">
+ <value>"XML" not allowed as target of a direct processing-instruction constructor</value>
+ </entry>
</diagnostic>
<diagnostic code="XPTY0004">
@@ -1674,7 +1707,12 @@
</diagnostic>
<diagnostic code="ZXQP0050" name="FEATURE_NOT_AVAILABLE">
+
<value>"$1": feature not available</value>
+
+ <entry key="Scripting">
+ <value>scripting</value>
+ </entry>
</diagnostic>
<diagnostic code="ZXQP0060" name="OPTION_NOT_KNOWN">
@@ -2626,10 +2664,6 @@
<value>collection iterator not open</value>
</entry>
- <entry key="CountClause11">
- <value>"count" clause only available in XQuery 1.1 or later</value>
- </entry>
-
<entry key="DefaultCollation">
<value>default collation</value>
</entry>
@@ -3046,10 +3080,6 @@
<value>"$2": operation not possible with parameters of type "$3" and "$4"</value>
</entry>
- <entry key="OuterForClause11">
- <value>"outer-for" clause only available in XQuery 1.1 or later</value>
- </entry>
-
<entry key="ParserInitFailed">
<value>parser initialization failed</value>
</entry>
@@ -3134,18 +3164,10 @@
<value>sum not possible with parameters of type "$2" and "$3"</value>
</entry>
- <entry key="SwitchExpr11">
- <value>"switch" expressions only available in XQuery 1.1 or later</value>
- </entry>
-
<entry key="TrailingChar_3">
<value>trailing '$3'</value>
</entry>
- <entry key="TryCatchExpr11">
- <value>"try/catch" expressions only available in XQuery 1.1 or later</value>
- </entry>
-
<entry key="TwoDecimalFormatsSameName_2">
<value>"$2": two decimal formats with this name</value>
</entry>
@@ -3266,18 +3288,10 @@
<value>undeclared variable</value>
</entry>
- <entry key="WindowClause11">
- <value>"window" clause only available in XQuery 1.1 or later</value>
- </entry>
-
<entry key="XMLSchema">
<value>XML schema</value>
</entry>
- <entry key="XQueryVersionAtLeast10_2">
- <value>"$2": XQuery version must be at least 1.0</value>
- </entry>
-
<entry key="XUST0002_Transform">
<value>transform expression witn non-updating or vacuous modify clause</value>
</entry>
=== modified file 'src/diagnostics/pregenerated/dict_en.cpp'
--- src/diagnostics/pregenerated/dict_en.cpp 2012-02-29 20:55:00 +0000
+++ src/diagnostics/pregenerated/dict_en.cpp 2012-03-05 17:06:29 +0000
@@ -474,7 +474,6 @@
{ "~CloneNotImplemented", "clone() not implemented for expression" },
{ "~ClosingBraceWithoutOpen", "'}' encountered without '{' first" },
{ "~CollectionIteratorNotOpen", "collection iterator not open" },
- { "~CountClause11", "\"count\" clause only available in XQuery 1.1 or later" },
{ "~DefaultCollation", "default collation" },
{ "~DivisionNoINF", "division can not have +-INF dividend" },
{ "~DivisionNoNaN", "division can not involve NaN" },
@@ -581,7 +580,6 @@
{ "~OpNodeBeforeMustHaveNodes", "op:node-before() must have nodes as parameters" },
{ "~OperationNotDef_23", "$2 not defined for type \"$3\"" },
{ "~OperationNotPossibleWithTypes_234", "\"$2\": operation not possible with parameters of type \"$3\" and \"$4\"" },
- { "~OuterForClause11", "\"outer-for\" clause only available in XQuery 1.1 or later" },
{ "~ParseFragmentOptionCombinationNotAllowed", "specifying both $2 and $3 is an error" },
{ "~ParseFragmentOptionDSLNotAllowed", "if the e option is specified, none of the options d, s, or l may be enabled" },
{ "~ParserInitFailed", "parser initialization failed" },
@@ -605,9 +603,7 @@
{ "~StingLiteral", "string literal" },
{ "~StringValue", "string value" },
{ "~SumImpossibleWithTypes_23", "sum not possible with parameters of type \"$2\" and \"$3\"" },
- { "~SwitchExpr11", "\"switch\" expressions only available in XQuery 1.1 or later" },
{ "~TrailingChar_3", "trailing '$3'" },
- { "~TryCatchExpr11", "\"try/catch\" expressions only available in XQuery 1.1 or later" },
{ "~TwoDecimalFormatsSameName_2", "\"$2\": two decimal formats with this name" },
{ "~TwoDefaultDecimalFormats", "two default decimal formats" },
{ "~TypeIsNotSubtype", "item type is not a subtype of \"$3\"" },
@@ -678,12 +674,18 @@
{ "~Variable", "variable" },
{ "~VariabledHasNoValue", "variable has no value" },
{ "~VariabledUndeclared", "undeclared variable" },
- { "~WindowClause11", "\"window\" clause only available in XQuery 1.1 or later" },
{ "~XMLSchema", "XML schema" },
+ { "~XPST0003_Anotations", "function and variable annotations only available in XQuery 3.0 or later" },
+ { "~XPST0003_CountClause11", "\"count\" clause only available in XQuery 3.0 or later" },
+ { "~XPST0003_OuterForClause11", "\"outer-for\" clause only available in XQuery 3.0 or later" },
+ { "~XPST0003_PiTarget", "\"XML\" not allowed as target of a direct processing-instruction constructor" },
+ { "~XPST0003_SwitchExpr11", "\"switch\" expressions only available in XQuery 3.0 or later" },
+ { "~XPST0003_TryCatchExpr11", "\"try/catch\" expressions only available in XQuery 3.0 or later" },
+ { "~XPST0003_WindowClause11", "\"window\" clause only available in XQuery 3.0 or later" },
+ { "~XPST0003_XQueryVersionAtLeast30_2", "\"$2\": XQuery version must be at least 3.0" },
{ "~XPTY0004_FormatNumber_2", "\"the first parameter to the format-number() function is of type $2, which is not allowed" },
{ "~XQST0106_CONFLICTING", "conflicting" },
{ "~XQST0106_THE_SAME", "the same" },
- { "~XQueryVersionAtLeast10_2", "\"$2\": XQuery version must be at least 1.0" },
{ "~XUST0001_CONCAT", "comma expression with updating and non-updating branches" },
{ "~XUST0001_Generic", "updating expression illegal here" },
{ "~XUST0001_IF", "conditional expression with updating and non-updating branch" },
@@ -699,6 +701,7 @@
{ "~ZXQD0004_NON_NEGATIVE", "given value must be non-negative ($2)" },
{ "~ZXQD0004_NOT_WITHIN_RANGE", "not within allowed range ($2)" },
{ "~ZXQP0004_TypeOps_is_in_scope_ForFunctionItemTypes", "TypeOps::is_in_scope() for function-item types" },
+ { "~ZXQP0050_Scripting", "scripting" },
{ "~ZeroLenURI", "zero-length URI (and no base URI given)" },
{ "~Zorba API error", "Zorba API error" },
{ "~Zorba data-definition error", "Zorba data-definition error" },
Follow ups