zorba-coders team mailing list archive
-
zorba-coders team
-
Mailing list archive
-
Message #16600
[Merge] lp:~zorba-coders/zorba/cast-to-simple-type into lp:zorba
Markos Zaharioudakis has proposed merging lp:~zorba-coders/zorba/cast-to-simple-type into lp:zorba.
Commit message:
fixed bug #107640
Requested reviews:
Markos Zaharioudakis (markos-za)
For more details, see:
https://code.launchpad.net/~zorba-coders/zorba/cast-to-simple-type/+merge/141449
fixed bug #107640
--
https://code.launchpad.net/~zorba-coders/zorba/cast-to-simple-type/+merge/141449
Your team Zorba Coders is subscribed to branch lp:zorba.
=== modified file 'src/diagnostics/diagnostic_en.xml'
--- src/diagnostics/diagnostic_en.xml 2012-12-21 22:05:39 +0000
+++ src/diagnostics/diagnostic_en.xml 2012-12-29 06:49:22 +0000
@@ -265,6 +265,10 @@
<value>Cannot cast node to xs:QName</value>
</entry>
+ <entry key="NotationParam_23">
+ <value>$2 can not be promoted to parameter type xs:NOTATION of function $3()</value>
+ </entry>
+
</diagnostic>
<diagnostic code="XQTY0024">
=== modified file 'src/diagnostics/pregenerated/dict_en.cpp'
--- src/diagnostics/pregenerated/dict_en.cpp 2012-12-21 22:05:39 +0000
+++ src/diagnostics/pregenerated/dict_en.cpp 2012-12-29 06:49:22 +0000
@@ -895,6 +895,7 @@
{ "~XPTY0004_NoTreatAs_23", "$2 can not be treated as type $3" },
{ "~XPTY0004_NoTypePromote_23", "$2 can not be promoted to type $3" },
{ "~XPTY0117_NodeCast", "Cannot cast node to xs:QName" },
+ { "~XPTY0117_NotationParam_23", "$2 can not be promoted to parameter type xs:NOTATION of function $3()" },
{ "~XQST0106_CONFLICTING", "conflicting" },
{ "~XQST0106_THE_SAME", "the same" },
{ "~XUDY0021_AttributeName", "\"$3\": attribute with the same name already exists" },
=== modified file 'src/diagnostics/pregenerated/dict_zed_keys.h'
--- src/diagnostics/pregenerated/dict_zed_keys.h 2012-12-21 22:05:39 +0000
+++ src/diagnostics/pregenerated/dict_zed_keys.h 2012-12-29 06:49:22 +0000
@@ -42,6 +42,7 @@
#define ZED_XPTY0004_JSONIQ_SELECTOR "~XPTY0004_JSONIQ_SELECTOR"
#define ZED_XPTY0004_MultiValuedGroupingKey "~XPTY0004_MultiValuedGroupingKey"
#define ZED_XPTY0117_NodeCast "~XPTY0117_NodeCast"
+#define ZED_XPTY0117_NotationParam_23 "~XPTY0117_NotationParam_23"
#define ZED_XQST0106_THE_SAME "~XQST0106_THE_SAME"
#define ZED_XQST0106_CONFLICTING "~XQST0106_CONFLICTING"
#define ZED_FTST0009_BadStopWordsLang "~FTST0009_BadStopWordsLang"
=== modified file 'src/runtime/core/sequencetypes.cpp'
--- src/runtime/core/sequencetypes.cpp 2012-12-28 11:53:57 +0000
+++ src/runtime/core/sequencetypes.cpp 2012-12-29 06:49:22 +0000
@@ -493,6 +493,16 @@
{
assert(theQName != NULL);
+ if (TypeOps::is_equal(theSctx->get_typemanager(),
+ *thePromoteType,
+ *GENV_TYPESYSTEM.NOTATION_TYPE_ONE,
+ loc))
+ {
+ RAISE_ERROR(err::XPTY0117, loc,
+ ERROR_PARAMS(ZED(XPTY0117_NotationParam_23),
+ valueType, theQName->getStringValue()));
+ }
+
RAISE_ERROR(err::XPTY0004, loc,
ERROR_PARAMS(ZED(XPTY0004_NoParamTypePromote_234),
valueType, targetType, theQName->getStringValue()));
=== modified file 'src/types/casting.cpp'
--- src/types/casting.cpp 2012-12-28 11:53:57 +0000
+++ src/types/casting.cpp 2012-12-29 06:49:22 +0000
@@ -2896,9 +2896,14 @@
return result != NULL;
}
- if (TypeOps::is_subtype(itemType, store::XS_UNTYPED_ATOMIC) &&
- ! TypeOps::is_subtype(targetType, store::XS_QNAME))
+ if (TypeOps::is_subtype(itemType, store::XS_UNTYPED_ATOMIC))
{
+ if (TypeOps::is_subtype(targetType, store::XS_QNAME) ||
+ TypeOps::is_subtype(targetType, store::XS_NOTATION))
+ {
+ return false;
+ }
+
// untyped --> target type
castToBuiltinAtomic(result, item, targetType, NULL, loc);
return true;
=== modified file 'src/types/typeimpl.cpp'
--- src/types/typeimpl.cpp 2012-12-28 10:24:59 +0000
+++ src/types/typeimpl.cpp 2012-12-29 06:49:22 +0000
@@ -106,7 +106,7 @@
"xs:ID",
"xs:IDREF",
"xs:ENTITY",
- "UNTYPED_ATOMIC",
+ "xs:untypedAtomic",
"xs:dateTime",
"xs:date",
"xs:time",
Follow ups