diff options
-rw-r--r-- | src/core/model/Typesystem.cpp | 9 | ||||
-rw-r--r-- | src/core/model/Typesystem.hpp | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/src/core/model/Typesystem.cpp b/src/core/model/Typesystem.cpp index 6ae92b4..17d81dd 100644 --- a/src/core/model/Typesystem.cpp +++ b/src/core/model/Typesystem.cpp @@ -666,8 +666,13 @@ bool ReferenceType::doBuild(Variant &data, Logger &logger, throw LoggableException("Reference must be a valid identifier", data); } + data = Variant{}; + return true; } - return false; + + // Throw an exception if no valid data is given + throw LoggableException( + "Expected object or string for constructing a reference", data); } bool ReferenceType::doCheckIsa(Handle<const Type> type) const @@ -676,6 +681,8 @@ bool ReferenceType::doCheckIsa(Handle<const Type> type) const return type->isa(&RttiTypes::ReferenceType); } +Variant ReferenceType::create() const { return Variant{}; } + Handle<Descriptor> ReferenceType::getDescriptor() { return descriptor; } void ReferenceType::setDescriptor(Handle<Descriptor> descriptor) diff --git a/src/core/model/Typesystem.hpp b/src/core/model/Typesystem.hpp index ce3cee0..3d869d9 100644 --- a/src/core/model/Typesystem.hpp +++ b/src/core/model/Typesystem.hpp @@ -1034,7 +1034,7 @@ public: * * @return a null reference. */ - Variant create() const override { return Variant{}; } + Variant create() const override; /** * Returns the descriptor containing the ontological type of which an |