29#include <QtCore/QMultiMap>
31#include <QtCore/QString>
32#include <QtCore/QStringView>
33#include <QtCore/QDebug>
34#include <QtCore/QDateTime>
35#include <QtCore/QMutex>
36#include <QtCore/QCborValue>
37#include <QtCore/QTimeZone>
38#include <QtQml/private/qqmljssourcelocation_p.h>
39#include <QtQmlCompiler/private/qqmljsscope_p.h>
103struct IsMultiMap : std::false_type
107template<
typename Key,
typename T>
113struct IsMap : std::false_type
117template<
typename Key,
typename T>
118struct IsMap<
QMap<
Key, T>> : std::true_type
122template<
typename... Ts>
125template<
typename T,
typename =
void>
126struct IsDomObject : std::false_type
131struct IsDomObject<T, void_t<decltype(T::kindValue)>> : std::true_type
135template<
typename T,
typename =
void>
136struct IsInlineDom : std::false_type
141struct IsInlineDom<T, void_t<decltype(T::kindValue)>>
142 : std::integral_constant<bool, domTypeCanBeInline(T::kindValue)>
147struct IsInlineDom<T *, void_t<
decltype(T::kindValue)>> : std::true_type
152struct IsInlineDom<
std::shared_ptr<T>, void_t<decltype(T::kindValue)>> : std::true_type
157struct IsSharedPointerToDomObject : std::false_type
162struct IsSharedPointerToDomObject<
std::shared_ptr<T>> : IsDomObject<T>
166template<
typename T,
typename =
void>
167struct IsList : std::false_type
172struct IsList<T, void_t<typename T::
value_type>> : std::true_type
182 T *
data() {
return reinterpret_cast<T *
>(
this); }
183 const T *
data()
const {
return reinterpret_cast<const T *
>(
this); }
192 o.data()->copyTo(
data());
209 virtual DomKind domKind()
const;
219 virtual DomItem containingObject(
263 constexpr static DomType kindValue = DomType::Empty;
295 Path m_pathFromOwner;
301 constexpr static DomType kindValue = DomType::Map;
333 constexpr static DomType kindValue = DomType::List;
369 LookupFunction m_lookup;
371 IteratorFunction m_iterator;
378 constexpr static DomType kindValue = DomType::ListP;
382 :
DomElement(pathFromOwner), m_pList(pList), m_elType(elType)
410 "ListPT does not have the same size as ListPBase");
412 "ListPT does not have the same size as ListPBase");
415 for (
void *
p : pList)
435 constexpr static DomType kindValue = DomType::ListP;
439 :
list(
ListPT<T>(pathFromOwner, pList, elType, options))
456 constexpr static DomType kindValue = DomType::ConstantData;
483 constexpr static DomType kindValue = DomType::SimpleObjectWrap;
489 template <
typename T>
492 if (
m_options & SimpleWrapOption::ValueType) {
493 if (m_value.metaType() == QMetaType::fromType<T>())
494 return reinterpret_cast<const T *
>(m_value.constData());
497 return m_value.value<T *>();
501 template <
typename T>
504 if (
m_options & SimpleWrapOption::ValueType) {
505 if (m_value.metaType() == QMetaType::fromType<T>())
506 return reinterpret_cast<T *
>(m_value.data());
509 return m_value.value<T *>();
523 friend class TestDomItem;
526 SimpleWrapOptions options = SimpleWrapOption::None)
551 return mutableAsT()->iterateDirectSubpaths(self, visitor);
566 static_assert(!std::is_same_v<T, T>,
"wrapping of unexpected type");
580 Q_ASSERT_X(
false,
"SimpleObjectWrap",
"wrapping of unexpected type");
588 "Size mismatch in SimpleObjectWrapT");
590 "Size mismatch in SimpleObjectWrapT");
597 "Size mismatch in SimpleObjectWrapT");
599 "Size mismatch in SimpleObjectWrapT");
613 constexpr static DomType kindValue = DomType::SimpleObjectWrap;
631 using BaseT = std::decay_t<T>;
637 quintptr(0), SimpleWrapOption::ValueType);
639 qCWarning(domLog) <<
"Unexpected object to wrap in SimpleObjectWrap: "
642 "simple wrap of unexpected object");
654 constexpr static DomType kindValue = DomType::Reference;
680template<
typename Info>
707 std::optional<QQmlJSScope::Ptr> m_scope;
717 template<
typename... T>
718 using VariantOfPointer = std::variant<ScriptElement::PointerType<T>...>;
720 template<
typename T,
typename Variant>
721 struct TypeIsInVariant;
723 template<
typename T,
typename... Ts>
724 struct TypeIsInVariant<T,
std::
variant<Ts...>> :
public std::disjunction<std::is_same<T, Ts>...>
739 static_assert(TypeIsInVariant<T, ScriptElementT>::value,
740 "Cannot construct ScriptElementVariant from T, as it is missing from the "
759 return std::shared_ptr<ScriptElement>(
766 operator bool()
const {
return m_data.has_value(); }
772 std::visit(visitor, *m_data);
779 std::visit(visitor, *m_data);
781 std::optional<ScriptElementT>
data() {
return m_data; }
785 std::optional<ScriptElementT> m_data;
823using TopT = std::variant<std::shared_ptr<DomEnvironment>, std::shared_ptr<DomUniverse>>;
826 std::variant<std::shared_ptr<ModuleIndex>, std::shared_ptr<MockOwner>,
827 std::shared_ptr<ExternalItemInfoBase>, std::shared_ptr<ExternalItemPairBase>,
828 std::shared_ptr<QmlDirectory>, std::shared_ptr<QmldirFile>,
829 std::shared_ptr<JsFile>, std::shared_ptr<QmlFile>,
830 std::shared_ptr<QmltypesFile>, std::shared_ptr<GlobalScope>,
831 std::shared_ptr<ScriptExpression>, std::shared_ptr<AstComments>,
832 std::shared_ptr<LoadInfo>, std::shared_ptr<AttachedInfo>,
833 std::shared_ptr<DomEnvironment>, std::shared_ptr<DomUniverse>>;
871 std::weak_ptr<DomEnvironment>
environment()
const {
return m_environment; }
874 std::optional<InMemoryContents>
content()
const {
return m_content; }
875 DomCreationOptions
options()
const {
return m_options; }
878 std::weak_ptr<DomEnvironment> m_environment;
881 std::optional<InMemoryContents> m_content;
882 DomCreationOptions m_options;
904 return std::visit(
f, this->m_element);
909 return std::visit(
f, this->m_element);
912 explicit operator bool()
const {
return m_kind != DomType::Empty; }
919 if (m_kind == DomType::ConstantData)
920 return std::get<ConstantData>(m_element).domKind();
974 if (hasAnnotations())
975 return field(Fields::annotations);
981 ResolveOptions options = ResolveOption::None,
Path fullPath =
Path(),
1020 WriteOutChecks extraChecks = WriteOutCheck::Default);
1023 VisitOptions options = VisitOption::Default,
1027 VisitPrototypesOptions options = VisitPrototypesOption::Normal,
1031 VisitPrototypesOptions options = VisitPrototypesOption::Normal,
1036 VisitPrototypesOptions options = VisitPrototypesOption::Normal,
1042 LookupOptions = LookupOption::Normal,
ErrorHandler h =
nullptr,
1047 LookupOptions = LookupOption::Normal,
ErrorHandler h =
nullptr,
1050 LookupType type = LookupType::Symbol, LookupOptions = LookupOption::Normal,
1056 LookupOptions = LookupOption::Normal,
1059 LookupOptions = LookupOption::Normal,
ErrorHandler errorHandler =
nullptr);
1078 int nBackups = 2,
int indent = 0,
FileWriter *fw =
nullptr);
1083 return self.toString();
1103 template<
typename T>
1106 template<
typename T>
1112 template<
typename T>
1115 template<
typename T>
1118 template<
typename T>
1124 template<
typename F>
1127 template<
typename F>
1131 return this->dvValueLazy(visitor,
PathEls::Field(
f), valueF, options);
1144 return dvItem(visitor,
c, [
c,
this, referencedObject]() {
1145 return this->subReferenceItem(
c, referencedObject);
1150 return dvItem(visitor,
c, [
c,
this,
paths]() {
return this->subReferencesItem(
c,
paths); });
1162 return visitor(
c,
it);
1172 return DomItem(m_top, m_owner, m_ownerPath,
obj);
1181 template<
typename Owner>
1189 template<
typename T>
1191 template<
typename T>
1196 template<
typename T>
1198 template<
typename T>
1210 LoadOptions loadOptions,
1211 std::optional<DomType>
fileType = std::optional<DomType>());
1225 template<
typename T,
typename std::enable_if<std::is_base_of_v<DomBase, T>,
bool>::type = true>
1228 if (m_kind == T::kindValue) {
1230 return std::get<SimpleObjectWrap>(m_element)->as<T>();
1232 return static_cast<T
const *
>(
base());
1237 template<
typename T,
typename std::enable_if<!std::is_base_of_v<DomBase, T>,
bool>::type = true>
1240 if (m_kind == T::kindValue) {
1242 return std::get<SimpleObjectWrap>(m_element)->as<T>();
1247 template<
typename T>
1248 std::shared_ptr<T> ownerAs();
1250 template<
typename Owner,
typename T>
1254 static_assert(IsInlineDom<std::decay_t<T>>
::value,
"Expected an inline item or pointer");
1258 template<
typename Owner>
1262 return DomItem(m_top, owner, ownerPath, owner.get());
1265 template<
typename T>
1269 using BaseT = std::decay_t<T>;
1270 static_assert(!std::is_same_v<BaseT, ElementT>,
1271 "variant not supported, pass in the stored types");
1272 static_assert(IsInlineDom<BaseT>::value,
"expected either a pointer or an inline item");
1273 if constexpr (IsSharedPointerToDomObject<BaseT>::value) {
1276 return DomItem(m_top, m_owner, m_ownerPath,
base);
1282 template <typename T, typename std::enable_if<std::is_base_of<DomBase, T>::value,
bool>
::type =
true>
1284 if (m_kind == T::kindValue) {
1288 return static_cast<T *
>(mutableBase());
1293 template <typename T, typename std::enable_if<!std::is_base_of<DomBase, T>::value,
bool>
::type =
true>
1295 if (m_kind == T::kindValue) {
1296 Q_ASSERT(domTypeIsObjWrap(m_kind) || domTypeIsValueWrap(m_kind));
1297 return static_cast<SimpleObjectWrapBase *
>(mutableBase())->mutableAs<T>();
1301 DomBase *mutableBase();
1303 template<
typename Env,
typename Owner>
1308 template<
typename Env,
typename Owner,
typename T,
1309 typename = std::enable_if_t<IsInlineDom<std::decay_t<T>>
::value>>
1310 DomItem(Env env, Owner owner, Path ownerPath, T
el)
1311 : m_top(env), m_owner(owner), m_ownerPath(ownerPath), m_element(
el)
1313 using BaseT = std::decay_t<T>;
1314 if constexpr (std::is_pointer_v<BaseT>) {
1315 if (!
el ||
el->kind() == DomType::Empty) {
1317 m_kind = DomType::Empty;
1320 m_ownerPath = Path();
1321 m_element =
Empty();
1323 using DomT = std::remove_pointer_t<BaseT>;
1325 m_kind = DomT::kindValue;
1328 static_assert(!std::is_same_v<BaseT, ElementT>,
1329 "variant not supported, pass in the internal type");
1330 m_kind =
el->kind();
1346 friend class TestDomItem;
1348 DomType m_kind = DomType::Empty;
1349 std::optional<TopT> m_top;
1350 std::optional<OwnerT> m_owner;
1379 return self.copy(ll);
1523 if (std::holds_alternative<std::shared_ptr<AttachedInfo>>(*m_owner))
1524 return std::static_pointer_cast<T>(
1525 std::get<std::shared_ptr<AttachedInfo>>(*m_owner));
1527 if (std::holds_alternative<std::shared_ptr<ExternalItemInfoBase>>(*m_owner))
1528 return std::static_pointer_cast<T>(
1529 std::get<std::shared_ptr<ExternalItemInfoBase>>(*m_owner));
1531 if (std::holds_alternative<std::shared_ptr<ExternalItemPairBase>>(*m_owner))
1532 return std::static_pointer_cast<T>(
1533 std::get<std::shared_ptr<ExternalItemPairBase>>(*m_owner));
1535 if (std::holds_alternative<std::shared_ptr<T>>(*m_owner)) {
1536 return std::get<std::shared_ptr<T>>(*m_owner);
1541 Q_ASSERT_X(
false,
"DomItem::ownerAs",
"unexpected non owning value in ownerAs");
1543 return std::shared_ptr<T> {};
1549 static_assert(I > 0,
"");
1558 ->
decltype(
t.writeOut(self, lw))
1560 t.writeOut(self, lw);
1566 qCWarning(writeOutLog) <<
"Ignoring writeout to wrapped object not supporting it ("
1567 <<
typeid(T).
name();
1578 writeOutWrap<T>(*asT(), self, lw);
1587 explicit operator bool()
const
1589 return bool(m_owner);
1598 if (m_pathFromOwner)
1599 return MutableDomItem(m_owner, m_pathFromOwner.split().pathToSource);
1608 if (m_pathFromOwner)
1675 int nBackups = 2,
int indent = 0,
FileWriter *fw =
nullptr)
1694 return item().commitToBase(validEnvPtr);
1745 return addPreComment(comment, regionName.
toString());
1750 return addPostComment(comment, regionName.
toString());
1757 m_owner(owner), m_pathFromOwner(pathFromOwner)
1760 m_owner(
item.owner()), m_pathFromOwner(
item.pathFromOwner())
1763 std::shared_ptr<DomTop>
topPtr() {
return m_owner.topPtr(); }
1766 template<
typename T>
1769 return item().as<T>();
1772 template <
typename T>
1774 Q_ASSERT(!m_owner || !m_owner.owningItemPtr()->frozen());
1775 return item().mutableAs<T>();
1778 template<
typename T>
1781 return m_owner.ownerAs<T>();
1788 return o1.m_owner == o2.m_owner && o1.m_pathFromOwner == o2.m_pathFromOwner;
1797 Path m_pathFromOwner;
1802template<
typename K,
typename T>
1805 T **valuePtr =
nullptr)
1809 if (
it != mmap.
end()) {
1814 <<
" that contains aleready multiple entries in" << mapPathFromOwner;
1817 v.updatePathFromOwner(newPath);
1827 while (it2 != mmap.
end() && it2.
key() ==
key) {
1833 v.updatePathFromOwner(newPath);
1845 Path newPath = listPathFromOwner.
index(idx);
1846 T &targetV =
list[idx];
1847 targetV.updatePathFromOwner(newPath);
1853template <
typename T,
typename K = QString>
1862 if (
i > 0 &&
name !=
it.key()) {
1865 el->updatePathFromOwner(pName.
index(--
i));
1879 el->updatePathFromOwner(pName.
index(--
i));
1882template <
typename T>
1889 (
it++)->updatePathFromOwner(newPath.
index(
i++));
2004 using BaseT = std::remove_cv_t<std::remove_reference_t<T>>;
2008 BaseT> || std::is_base_of_v<QCborArray, BaseT> || std::is_base_of_v<QCborMap, BaseT>) {
2009 return DomItem(m_top, m_owner, m_ownerPath,
2011 }
else if constexpr (std::is_same_v<DomItem, BaseT>) {
2014 }
else if constexpr (IsList<T>::value && !std::is_convertible_v<BaseT, QStringView>) {
2015 return subListItem(List::fromQList<typename BaseT::value_type>(
2018 typename T::value_type &
v) {
return list.subValueItem(
p,
v, options); }));
2019 }
else if constexpr (IsSharedPointerToDomObject<BaseT>::value) {
2031 using BaseT = std::remove_cv_t<std::remove_reference_t<T>>;
2032 if constexpr (std::is_same_v<BaseT, ConstantData>) {
2033 return this->
copy(value);
2034 }
else if constexpr (std::is_base_of_v<QCborValue, BaseT>) {
2035 return DomItem(m_top, m_owner, m_ownerPath,
2039 m_top, m_owner, m_ownerPath,
2048 auto lazyWrap = [
this, &
c, &
value, options]() {
2049 return this->subValueItem<T>(
c,
value, options);
2051 return visitor(
c, lazyWrap);
2058 auto lazyWrap = [
this, &
c, &valueF, options]() {
2059 return this->subValueItem<decltype(valueF())>(
c, valueF(), options);
2061 return visitor(
c, lazyWrap);
2067 using BaseT = std::decay_t<T>;
2068 if constexpr (std::is_same_v<QString, BaseT> || std::is_arithmetic_v<BaseT>) {
2070 }
else if constexpr (std::is_same_v<SourceLocation, BaseT>) {
2072 }
else if constexpr (std::is_same_v<BaseT, Reference>) {
2074 "wrapping a reference object, probably an error (wrap the target path instead)");
2075 return this->
copy(obj);
2076 }
else if constexpr (std::is_same_v<BaseT, ConstantData>) {
2078 }
else if constexpr (std::is_same_v<BaseT, Map>) {
2080 }
else if constexpr (std::is_same_v<BaseT, List>) {
2082 }
else if constexpr (std::is_base_of_v<ListPBase, BaseT>) {
2084 }
else if constexpr (std::is_same_v<BaseT, SimpleObjectWrap>) {
2086 }
else if constexpr (IsDomObject<BaseT>::value) {
2091 return this->
copy(&obj);
2094 <<
" in DomItem::wrap, not using a shared_ptr for an "
2095 <<
"OwningItem, or unexpected wrapped object?";
2098 }
else if constexpr (IsSharedPointerToDomObject<BaseT>::value) {
2102 Q_ASSERT_X(
false,
"DomItem::wrap",
"shared_ptr with non owning item");
2105 }
else if constexpr (IsMultiMap<BaseT>::value) {
2106 if constexpr (std::is_same_v<typename BaseT::key_type, QString>) {
2107 return subMapItem(Map::fromMultiMapRef<typename BaseT::mapped_type>(
2110 Q_ASSERT_X(
false,
"DomItem::wrap",
"non string keys not supported (try .toString()?)");
2112 }
else if constexpr (IsMap<BaseT>::value) {
2113 if constexpr (std::is_same_v<typename BaseT::key_type, QString>) {
2114 return subMapItem(Map::fromMapRef<typename BaseT::mapped_type>(
2117 typename BaseT::mapped_type &
el) {
return map.wrap(
p,
el); }));
2119 Q_ASSERT_X(
false,
"DomItem::wrap",
"non string keys not supported (try .toString()?)");
2121 }
else if constexpr (IsList<BaseT>::value) {
2122 if constexpr (IsDomObject<typename BaseT::value_type>::value) {
2123 return subListItem(List::fromQListRef<typename BaseT::value_type>(
2126 typename BaseT::value_type &
el) {
return list.wrap(
p,
el); }));
2128 Q_ASSERT_X(
false,
"DomItem::wrap",
"Unsupported list type T");
2132 qCWarning(domLog) <<
"Cannot wrap " <<
typeid(BaseT).
name();
2133 Q_ASSERT_X(
false,
"DomItem::wrap",
"Do not know how to wrap type T");
2141 auto lazyWrap = [
this, &
c, &
obj]() {
return this->wrap<T>(
c,
obj); };
2142 return visitor(
c, lazyWrap);
2173 return self.iterateDirectSubpaths(visitor);
2202 if (
c.kind() == Path::Kind::Field)
2203 res.append(
c.name());
2212 self.iterateDirectSubpaths(
2214 if (
c.kind() == Path::Kind::Field &&
c.checkName(
name)) {
2227 if (
c.kind() == Path::Kind::Index) {
2228 index_type i = c.index() + 1;
2240 self.iterateDirectSubpaths(
2242 if (
c.kind() == Path::Kind::Index &&
c.index() ==
index) {
2255 if (
c.kind() == Path::Kind::Key)
2256 res.insert(
c.name());
2265 self.iterateDirectSubpaths(
2267 if (
c.kind() == Path::Kind::Key &&
c.checkName(
name)) {
2278 return DomItem(m_top, m_owner, m_ownerPath,
list);
2283 return DomItem(m_top, m_owner, m_ownerPath,
map);
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
static QDateTime currentDateTimeUtc()
qsizetype size() const noexcept
const_reference at(qsizetype i) const noexcept
void reserve(qsizetype size)
void append(parameter_type t)
bool contains(const Key &key) const
key_iterator keyBegin() const
key_iterator keyEnd() const
key_iterator keyBegin() const
key_iterator keyEnd() const
iterator find(const Key &key)
iterator insert(const Key &key, const T &value)
const_iterator cend() const
Attached info creates a tree to attach extra info to DomItems.
DomKind domKind() const override
QCborValue value() const override
quintptr id() const override
DomType kind() const override
ConstantData(Path pathFromOwner, QCborValue value, Options options=Options::MapIsMap)
ConstantData & operator*()
const ConstantData & operator*() const
bool iterateDirectSubpaths(DomItem &self, DirectVisitor) override
const ConstantData * operator->() const
ConstantData * operator->()
virtual DomItem field(DomItem &self, QStringView name) const
virtual DomItem index(DomItem &self, index_type index) const
virtual DomType kind() const =0
virtual DomKind domKind() const
virtual void dump(DomItem &, Sink sink, int indent, FilterT filter) const
virtual DomItem containingObject(DomItem &self) const
bool iterateDirectSubpathsConst(DomItem &self, DirectVisitor) const
virtual QString canonicalFilePath(DomItem &self) const
virtual void writeOut(DomItem &self, OutWriter &lw) const
virtual Path pathFromOwner(DomItem &self) const =0
virtual bool iterateDirectSubpaths(DomItem &self, DirectVisitor visitor)=0
virtual QSet< QString > const keys(DomItem &self) const
virtual quintptr id() const
virtual Path canonicalPath(DomItem &self) const =0
virtual index_type indexes(DomItem &self) const
virtual QCborValue value() const
virtual QList< QString > fields(DomItem &self) const
virtual ~DomBase()=default
virtual DomItem key(DomItem &self, QString name) const
Path pathFromOwner(DomItem &self) const override
DomElement & operator=(const DomElement &)=default
DomElement(const DomElement &o)=default
Path canonicalPath(DomItem &self) const override
DomElement(Path pathFromOwner=Path())
DomItem containingObject(DomItem &self) const override
virtual void updatePathFromOwner(Path newPath)
Path pathFromOwner() const
Represents a consistent set of types organized in modules, it is the top level of the DOM.
DomItem operator[](QStringView component)
bool visitPrototypeChain(function_ref< bool(DomItem &)> visitor, VisitPrototypesOptions options=VisitPrototypesOption::Normal, ErrorHandler h=nullptr, QSet< quintptr > *visited=nullptr, QList< Path > *visitedRefs=nullptr)
DomItem(std::shared_ptr< DomUniverse >)
bool visitKeys(function_ref< bool(QString, DomItem &)> visitor)
DomItem wrap(const PathEls::PathComponent &c, T &obj)
std::shared_ptr< OwningItem > owningItemPtr()
bool isCanonicalChild(DomItem &child)
DomItem subLocationItem(const PathEls::PathComponent &c, SourceLocation loc, QStringView code=QStringView())
static ErrorGroup domErrorGroup
DomItem qmlObject(GoTo option=GoTo::Strict, FilterUpOptions options=FilterUpOptions::ReturnOuter)
DomItem operator[](index_type i)
DomItem key(QString name)
DomItem fileLocationsTree()
bool dvValue(DirectVisitor visitor, const PathEls::PathComponent &c, T value, ConstantData::Options options=ConstantData::Options::MapIsMap)
QList< QString > fields()
DomItem rootQmlObject(GoTo option=GoTo::Strict)
DomItem proceedToScope(ErrorHandler h=nullptr, QList< Path > *visitedRefs=nullptr)
static ErrorGroups myResolveErrors()
DomItem writeOut(QString path, int nBackups=2, const LineWriterOptions &opt=LineWriterOptions(), FileWriter *fw=nullptr, WriteOutChecks extraChecks=WriteOutCheck::Default)
QDateTime lastDataUpdateAt()
QString internalKindStr() const
bool dvReference(DirectVisitor visitor, const PathEls::PathComponent &c, Path referencedObject)
bool visitLookup(QString symbolName, function_ref< bool(DomItem &)> visitor, LookupType type=LookupType::Symbol, LookupOptions=LookupOption::Normal, ErrorHandler errorHandler=nullptr, QSet< quintptr > *visited=nullptr, QList< Path > *visitedRefs=nullptr)
std::shared_ptr< T > ownerAs()
FileWriter::Status dump(QString path, function_ref< bool(DomItem &, const PathEls::PathComponent &, DomItem &)> filter=noFilter, int nBackups=2, int indent=0, FileWriter *fw=nullptr)
static ErrorGroups myErrors()
DomItem subMapItem(const Map &map)
bool visitDirectAccessibleScopes(function_ref< bool(DomItem &)> visitor, VisitPrototypesOptions options=VisitPrototypesOption::Normal, ErrorHandler h=nullptr, QSet< quintptr > *visited=nullptr, QList< Path > *visitedRefs=nullptr)
bool visitScopeChain(function_ref< bool(DomItem &)> visitor, LookupOptions=LookupOption::Normal, ErrorHandler h=nullptr, QSet< quintptr > *visited=nullptr, QList< Path > *visitedRefs=nullptr)
bool dvReferencesField(DirectVisitor visitor, QStringView f, QList< Path > paths)
function< void(Path, DomItem &, DomItem &)> Callback
bool visitSubSymbolsNamed(QString name, function_ref< bool(DomItem &)> visitor)
void loadBuiltins(std::function< void(Path, DomItem &, DomItem &)> callback=nullptr, ErrorHandler=nullptr)
void dump(Sink, int indent=0, function_ref< bool(DomItem &, const PathEls::PathComponent &, DomItem &)> filter=noFilter)
QList< DomItem > lookup(QString symbolName, LookupType type=LookupType::Symbol, LookupOptions=LookupOption::Normal, ErrorHandler errorHandler=nullptr)
DomItem writeOutForFile(OutWriter &ow, WriteOutChecks extraChecks)
std::shared_ptr< DomTop > topPtr()
std::optional< QQmlJSScope::Ptr > semanticScope()
bool dvItem(DirectVisitor visitor, const PathEls::PathComponent &c, function_ref< DomItem()> it)
QList< DomItem > values()
DomItem operator[](const char16_t *component)
DomItem key(QStringView name)
DomItem scope(FilterUpOptions options=FilterUpOptions::ReturnOuter)
void loadModuleDependency(QString uri, Version v, std::function< void(Path, DomItem &, DomItem &)> callback=nullptr, ErrorHandler=nullptr)
bool iterateErrors(function_ref< bool(DomItem source, ErrorMessage msg)> visitor, bool iterate, Path inPath=Path())
DomItem subDataItem(const PathEls::PathComponent &c, T value, ConstantData::Options options=ConstantData::Options::MapIsMap)
DomItem wrapField(QStringView f, T &obj)
DomItem copy(Owner owner, Path ownerPath, T base)
bool iterateDirectSubpaths(DirectVisitor v)
DomItem child(index_type i)
bool visitLookup1(QString symbolName, function_ref< bool(DomItem &)> visitor, LookupOptions=LookupOption::Normal, ErrorHandler h=nullptr, QSet< quintptr > *visited=nullptr, QList< Path > *visitedRefs=nullptr)
DomItem get(ErrorHandler h=nullptr, QList< Path > *visitedRefs=nullptr)
bool dvValueLazyField(DirectVisitor visitor, QStringView f, F valueF, ConstantData::Options options=ConstantData::Options::MapIsMap)
MutableDomItem makeCopy(CopyOption option=CopyOption::EnvConnected)
DomItem copy(Owner owner, Path ownerPath)
void loadPendingDependencies()
bool iterateSubOwners(function_ref< bool(DomItem &owner)> visitor)
DomItem subListItem(const List &list)
void writeOut(OutWriter &lw)
DomItem filterUp(function_ref< bool(DomType k, DomItem &)> filter, FilterUpOptions options)
bool visitTree(Path basePath, ChildrenVisitor visitor, VisitOptions options=VisitOption::Default, ChildrenVisitor openingVisitor=emptyChildrenVisitor, ChildrenVisitor closingVisitor=emptyChildrenVisitor)
DomItem containingObject()
DomItem subValueItem(const PathEls::PathComponent &c, T value, ConstantData::Options options=ConstantData::Options::MapIsMap)
DomItem component(GoTo option=GoTo::Strict)
bool commitToBase(std::shared_ptr< DomEnvironment > validPtr=nullptr)
DomItem path(QString p, ErrorHandler h=&defaultErrorHandler)
DomItem subReferencesItem(const PathEls::PathComponent &c, QList< Path > paths)
PropertyInfo propertyInfoWithName(QString name)
bool visitLocalSymbolsNamed(QString name, function_ref< bool(DomItem &)> visitor)
DomItem subObjectWrapItem(SimpleObjectWrap obj)
DomItem lookupFirst(QString symbolName, LookupType type=LookupType::Symbol, LookupOptions=LookupOption::Normal, ErrorHandler errorHandler=nullptr)
DomItem subScriptElementWrapperItem(const ScriptElementVariant &obj)
DomItem operator[](int i)
DomItem subDataItemField(QStringView f, T value, ConstantData::Options options=ConstantData::Options::MapIsMap)
friend QMLDOM_EXPORT bool operator==(const DomItem &, const DomItem &)
friend class ConstantData
DomItem goToFile(const QString &filePath)
DomItem subReferenceItem(const PathEls::PathComponent &c, Path referencedObject)
bool dvReferences(DirectVisitor visitor, const PathEls::PathComponent &c, QList< Path > paths)
DomItem index(index_type)
DomItem path(Path p, ErrorHandler h=&defaultErrorHandler)
bool dvWrap(DirectVisitor visitor, const PathEls::PathComponent &c, T &obj)
bool visitStaticTypePrototypeChains(function_ref< bool(DomItem &)> visitor, VisitPrototypesOptions options=VisitPrototypesOption::Normal, ErrorHandler h=nullptr, QSet< quintptr > *visited=nullptr, QList< Path > *visitedRefs=nullptr)
void clearErrors(ErrorGroups groups=ErrorGroups({}), bool iterate=true)
std::optional< QQmlJSScope::Ptr > nearestSemanticScope()
void writeOutPre(OutWriter &lw)
bool resolve(Path path, Visitor visitor, ErrorHandler errorHandler, ResolveOptions options=ResolveOption::None, Path fullPath=Path(), QList< Path > *visitedRefs=nullptr)
DomItem path(QStringView p, ErrorHandler h=&defaultErrorHandler)
InternalKind internalKind() const
void loadFile(const FileToLoad &file, std::function< void(Path, DomItem &, DomItem &)> callback, LoadOptions loadOptions, std::optional< DomType > fileType=std::optional< DomType >())
QSet< QString > localSymbolNames(LocalSymbolsTypes lTypes=LocalSymbolsType::All)
QSet< QString > propertyInfoNames()
static DomItem fromCode(QString code, DomType fileType=DomType::QmlFile)
bool dvWrapField(DirectVisitor visitor, QStringView f, T &obj)
DomItem fileObject(GoTo option=GoTo::Strict)
bool dvValueField(DirectVisitor visitor, QStringView f, T value, ConstantData::Options options=ConstantData::Options::MapIsMap)
DomItem(std::shared_ptr< DomEnvironment >)
QString canonicalFilePath()
bool dvItemField(DirectVisitor visitor, QStringView f, function_ref< DomItem()> it)
DomItem field(QStringView name)
DomItem operator[](const QString &component)
bool visitIndexes(function_ref< bool(DomItem &)> visitor)
bool dvReferenceField(DirectVisitor visitor, QStringView f, Path referencedObject)
DomItem operator[](Path path)
ErrorHandler errorHandler()
void addError(ErrorMessage msg)
DomItem subOwnerItem(const PathEls::PathComponent &c, Owner o)
bool visitUp(function_ref< bool(DomItem &)> visitor)
void writeOutPost(OutWriter &lw)
bool dvValueLazy(DirectVisitor visitor, const PathEls::PathComponent &c, F valueF, ConstantData::Options options=ConstantData::Options::MapIsMap)
QList< DomItem > getAll(ErrorHandler h=nullptr, QList< Path > *visitedRefs=nullptr)
Represents a set of parsed/loaded modules libraries and a plugins.
Path pathFromOwner(DomItem &self) const override
const Empty & operator*() const
const Empty * operator->() const
DomType kind() const override
bool iterateDirectSubpaths(DomItem &self, DirectVisitor) override
Path canonicalPath(DomItem &self) const override
DomItem containingObject(DomItem &self) const override
quintptr id() const override
void dump(DomItem &, Sink s, int indent, function_ref< bool(DomItem &, const PathEls::PathComponent &, DomItem &)> filter) const override
convenience macro creating a new ErrorGroup and registering its groupId as translatable string
Represents a set of tags grouping a set of related error messages.
Represents an error message connected to the dom.
Represents and maintains a mapping between elements and their location in a file.
FileToLoad(const std::weak_ptr< DomEnvironment > &environment, const QString &canonicalPath, const QString &logicalPath, std::optional< InMemoryContents > content, DomCreationOptions options)
QString logicalPath() const
QString canonicalPath() const
DomCreationOptions options() const
std::optional< InMemoryContents > content() const
std::weak_ptr< DomEnvironment > environment() const
static FileToLoad fromMemory(const std::weak_ptr< DomEnvironment > &environment, const QString &path, const QString &data, DomCreationOptions options=None)
static FileToLoad fromFileSystem(const std::weak_ptr< DomEnvironment > &environment, const QString &canonicalPath, DomCreationOptions options=None)
quintptr id() const override
void writeOut(DomItem &self, OutWriter &ow, bool compact) const
bool iterateDirectSubpaths(DomItem &self, DirectVisitor v) override
void writeOut(DomItem &self, OutWriter &ow) const override
virtual void copyTo(ListPBase *) const
virtual void moveTo(ListPBase *) const
DomType kind() const override
index_type indexes(DomItem &) const override
ListPBase(Path pathFromOwner, const QList< void * > &pList, QString elType)
void moveTo(ListPBase *t) const override
DomItem index(DomItem &self, index_type index) const override
void copyTo(ListPBase *t) const override
bool iterateDirectSubpaths(DomItem &self, DirectVisitor v) override
ListPT(Path pathFromOwner, QList< T * > pList, QString elType=QString(), ListOptions options=ListOptions::Normal)
static constexpr DomType kindValue
const ListPBase * operator->() const
ListP(Path pathFromOwner, QList< T * > pList, QString elType=QString(), ListOptions options=ListOptions::Normal)
const ListPBase & operator*() const
std::function< index_type(DomItem &)> Length
index_type indexes(DomItem &self) const override
DomType kind() const override
static List fromQList(Path pathFromOwner, QList< T > list, std::function< DomItem(DomItem &, const PathEls::PathComponent &, T &)> elWrapper, ListOptions options=ListOptions::Normal)
bool iterateDirectSubpaths(DomItem &self, DirectVisitor) override
const List & operator*() const
static List fromQListRef(Path pathFromOwner, QList< T > &list, std::function< DomItem(DomItem &, const PathEls::PathComponent &, T &)> elWrapper, ListOptions options=ListOptions::Normal)
DomItem index(DomItem &self, index_type index) const override
void writeOut(DomItem &self, OutWriter &ow) const override
std::function< bool(DomItem &, function_ref< bool(index_type, function_ref< DomItem()>)>)> IteratorFunction
List(Path pathFromOwner, LookupFunction lookup, Length length, IteratorFunction iterator, QString elType)
quintptr id() const override
const List * operator->() const
void dump(DomItem &, Sink s, int indent, function_ref< bool(DomItem &, const PathEls::PathComponent &, DomItem &)>) const override
std::function< DomItem(DomItem &, index_type)> LookupFunction
void writeOut(DomItem &self, OutWriter &ow, bool compact) const
QSet< QString > const keys(DomItem &self) const override
const Map * operator->() const
bool iterateDirectSubpaths(DomItem &self, DirectVisitor) override
Map(Path pathFromOwner, LookupFunction lookup, Keys keys, QString targetType)
const Map & operator*() const
std::function< DomItem(DomItem &, QString)> LookupFunction
std::function< QSet< QString >(DomItem &)> Keys
quintptr id() const override
DomItem key(DomItem &self, QString name) const override
DomType kind() const override
friend bool operator==(const MutableDomItem o1, const MutableDomItem &o2)
MutableDomItem environment()
MutableDomItem annotations()
MutableDomItem setAnnotations(QList< QmlObject > annotations)
MutableDomItem addChild(QmlObject child)
MutableDomItem setMethods(QMultiMap< QString, MethodInfo > functionDefs)
MutableDomItem setNextScopePath(Path nextScopePath)
MutableDomItem setBindings(QMultiMap< QString, Binding > bindings)
MutableDomItem globalScope()
QString internalKindStr()
MutableDomItem bindings()
MutableDomItem(DomItem item)
MutableDomItem addMethod(MethodInfo functionDef, AddOption option=AddOption::Overwrite)
MutableDomItem addPostComment(const Comment &comment, QString regionName=QString())
void setSemanticScope(const QQmlJSScope::Ptr &scope)
std::shared_ptr< T > ownerAs()
MutableDomItem setCode(QString code)
MutableDomItem propertyDefs()
MutableDomItem fileObject(GoTo option=GoTo::Strict)
MutableDomItem operator[](const char16_t *component)
MutableDomItem addAnnotation(QmlObject child)
MutableDomItem setPropertyDefs(QMultiMap< QString, PropertyDefinition > propertyDefs)
MutableDomItem key(QStringView name)
MutableDomItem operator[](const QString &component)
ErrorHandler errorHandler()
MutableDomItem operator[](index_type i)
bool commitToBase(std::shared_ptr< DomEnvironment > validEnvPtr=nullptr)
MutableDomItem field(QStringView name)
void writeOut(OutWriter &lw)
MutableDomItem containingObject()
MutableDomItem container()
MutableDomItem refreshed()
MutableDomItem path(const QString &p)
QString canonicalFilePath()
MutableDomItem addPostComment(const Comment &comment, QStringView regionName)
MutableDomItem setChildren(QList< QmlObject > children)
std::shared_ptr< DomTop > topPtr()
MutableDomItem key(QString name)
QSet< QString > const keys()
MutableDomItem qmlObject(GoTo option=GoTo::Strict, FilterUpOptions fOptions=FilterUpOptions::ReturnOuter)
void dump(Sink s, int indent=0, function_ref< bool(DomItem &, const PathEls::PathComponent &, DomItem &)> filter=noFilter)
QList< QString > const fields()
MutableDomItem addPreComment(const Comment &comment, QStringView regionName)
MutableDomItem component(GoTo option=GoTo::Strict)
MutableDomItem path(const Path &p)
QQmlJSScope::Ptr semanticScope()
MutableDomItem makeCopy(CopyOption option=CopyOption::EnvConnected)
MutableDomItem operator[](const Path &path)
MutableDomItem addPreComment(const Comment &comment, QString regionName=QString())
FileWriter::Status dump(QString path, function_ref< bool(DomItem &, const PathEls::PathComponent &, DomItem &)> filter=noFilter, int nBackups=2, int indent=0, FileWriter *fw=nullptr)
MutableDomItem index(index_type i)
MutableDomItem child(index_type i)
QDateTime lastDataUpdateAt()
MutableDomItem addPropertyDef(PropertyDefinition propertyDef, AddOption option=AddOption::Overwrite)
MutableDomItem children()
MutableDomItem(DomItem owner, Path pathFromOwner)
std::shared_ptr< OwningItem > owningItemPtr()
MutableDomItem universe()
friend bool operator!=(const MutableDomItem &o1, const MutableDomItem &o2)
MutableDomItem rootQmlObject(GoTo option=GoTo::Strict)
MutableDomItem addPrototypePath(Path prototypePath)
MutableDomItem fileLocations()
void addError(ErrorMessage msg)
MutableDomItem writeOut(QString path, int nBackups=2, const LineWriterOptions &opt=LineWriterOptions(), FileWriter *fw=nullptr)
MutableDomItem operator[](QStringView component)
MutableDomItem setScript(std::shared_ptr< ScriptExpression > exp)
MutableDomItem path(QStringView p)
MutableDomItem addBinding(Binding binding, AddOption option=AddOption::Overwrite)
virtual std::shared_ptr< OwningItem > doCopy(DomItem &self) const =0
QDateTime createdAt() const
Path pathFromOwner(DomItem &) const override final
virtual QDateTime lastDataUpdateAt() const
Path canonicalPath(DomItem &self) const override=0
QBasicMutex * mutex() const
void addErrorLocal(ErrorMessage msg)
virtual bool frozen() const
void clearErrors(ErrorGroups groups=ErrorGroups({}))
OwningItem(const OwningItem &&)=delete
bool iterateErrors(DomItem &self, function_ref< bool(DomItem source, ErrorMessage msg)> visitor, Path inPath=Path())
virtual int revision() const
Path pathFromOwner() const
QDateTime frozenAt() const
OwningItem(int derivedFrom, QDateTime lastDataUpdateAt)
DomItem containingObject(DomItem &self) const override
QMultiMap< Path, ErrorMessage > localErrors() const
OwningItem & operator=(const OwningItem &&)=delete
bool iterateDirectSubpaths(DomItem &self, DirectVisitor) override
virtual void refreshedDataAt(QDateTime tNew)
virtual void addError(DomItem &self, ErrorMessage msg)
std::shared_ptr< OwningItem > makeCopy(DomItem &self) const
virtual bool iterateSubOwners(DomItem &self, function_ref< bool(DomItem &owner)> visitor)
static int nextRevision()
OwningItem(int derivedFrom=0)
OwningItem(const OwningItem &o)
Path key(QString name) const
Path path(Path toAdd, bool avoidToAddAsBase=false) const
Path index(index_type i) const
Reference(Path referredObject=Path(), Path pathFromOwner=Path(), const SourceLocation &loc=SourceLocation())
QList< QString > fields(DomItem &self) const override
DomItem index(DomItem &, index_type) const override
QSet< QString > const keys(DomItem &) const override
quintptr id() const override
bool iterateDirectSubpaths(DomItem &self, DirectVisitor) override
const Reference & operator*() const
DomItem key(DomItem &, QString) const override
DomItem get(DomItem &self, ErrorHandler h=nullptr, QList< Path > *visitedRefs=nullptr) const
QList< DomItem > getAll(DomItem &self, ErrorHandler h=nullptr, QList< Path > *visitedRefs=nullptr) const
DomType kind() const override
const Reference * operator->() const
index_type indexes(DomItem &) const override
DomItem field(DomItem &self, QStringView name) const override
const DomBase & operator*() const
const DomBase * operator->() const
static constexpr DomType kindValue
ScriptElementVariant element()
ScriptElementDomWrapper(const ScriptElementVariant &element)
Use this to contain any script element.
void visitConst(F &&visitor) const
void setData(ScriptElementT data)
static ScriptElementVariant fromElement(T element)
std::optional< ScriptElementT > data()
ScriptElement::PointerType< ScriptElement > base() const
Returns a pointer to the virtual base for virtual method calls.
VariantOfPointer< ScriptElements::BlockStatement, ScriptElements::IdentifierExpression, ScriptElements::ForStatement, ScriptElements::BinaryExpression, ScriptElements::VariableDeclarationEntry, ScriptElements::Literal, ScriptElements::IfStatement, ScriptElements::GenericScriptElement, ScriptElements::VariableDeclaration, ScriptElements::ReturnStatement > ScriptElementT
SimpleWrapOptions m_options
SimpleObjectWrapBase(Path pathFromOwner, QVariant value, quintptr idValue, DomType kind=kindValue, SimpleWrapOptions options=SimpleWrapOption::None)
virtual void moveTo(SimpleObjectWrapBase *) const
bool iterateDirectSubpaths(DomItem &, DirectVisitor) override
DomKind domKind() const final override
virtual void copyTo(SimpleObjectWrapBase *) const
SimpleObjectWrapBase()=delete
DomType kind() const final override
quintptr id() const final override
void writeOut(DomItem &self, OutWriter &lw) const override
void moveTo(SimpleObjectWrapBase *target) const override
SimpleObjectWrapT(Path pathFromOwner, QVariant v, quintptr idValue, SimpleWrapOptions o)
static constexpr DomType kindValue
void copyTo(SimpleObjectWrapBase *target) const override
bool iterateDirectSubpaths(DomItem &self, DirectVisitor visitor) override
const SimpleObjectWrapBase & operator*() const
static SimpleObjectWrap fromObjectRef(Path pathFromOwner, T &value)
SimpleObjectWrapBase & operator*()
SimpleObjectWrap()=delete
const SimpleObjectWrapBase * operator->() const
SimpleObjectWrapBase * operator->()
QString toString() const
Returns a deep copy of this string view's data as a QString.
\macro QT_RESTRICTED_CAST_FROM_ASCII
void * data()
Returns a pointer to the contained object as a generic void* that can be written to.
static auto fromValue(T &&value) noexcept(std::is_nothrow_copy_constructible_v< T > &&Private::CanUseInternalSpace< T >) -> std::enable_if_t< std::conjunction_v< std::is_copy_constructible< T >, std::is_destructible< T > >, QVariant >
QMetaType metaType() const
const void * constData() const
QMap< QString, QString > map
[6]
list append(new Employee("Blackpool", "Stephen"))
QSet< QString >::iterator it
constexpr bool domTypeIsOwningItem(DomType)
constexpr bool domTypeIsValueWrap(DomType k)
std::function< void(const ErrorMessage &)> ErrorHandler
QDebug operator<<(QDebug d, AST::Node *n)
bool noFilter(DomItem &, const PathEls::PathComponent &, DomItem &)
bool operator!=(const Version &v1, const Version &v2)
Path insertUpdatableElementInMultiMap(Path mapPathFromOwner, QMultiMap< K, T > &mmap, K key, const T &value, AddOption option=AddOption::KeepExisting, T **valuePtr=nullptr)
DomKind kind2domKind(DomType k)
bool emptyChildrenVisitor(Path, DomItem &, bool)
auto writeOutWrap(const T &t, DomItem &self, OutWriter &lw, rank< 1 >) -> decltype(t.writeOut(self, lw))
constexpr bool domTypeIsUnattachedOwningItem(DomType)
QMLDOM_EXPORT QString domTypeToString(DomType k)
std::variant< Empty, Map, List, ListP, ConstantData, SimpleObjectWrap, Reference, ScriptElementDomWrapper, GlobalComponent *, JsResource *, QmlComponent *, QmltypesComponent *, EnumDecl *, MockObject *, ModuleScope *, AstComments *, AttachedInfo *, DomEnvironment *, DomUniverse *, ExternalItemInfoBase *, ExternalItemPairBase *, GlobalScope *, JsFile *, QmlDirectory *, QmlFile *, QmldirFile *, QmlObject *, QmltypesFile *, LoadInfo *, MockOwner *, ModuleIndex *, ScriptExpression * > ElementT
constexpr bool domTypeIsScriptElement(DomType)
std::variant< std::shared_ptr< ModuleIndex >, std::shared_ptr< MockOwner >, std::shared_ptr< ExternalItemInfoBase >, std::shared_ptr< ExternalItemPairBase >, std::shared_ptr< QmlDirectory >, std::shared_ptr< QmldirFile >, std::shared_ptr< JsFile >, std::shared_ptr< QmlFile >, std::shared_ptr< QmltypesFile >, std::shared_ptr< GlobalScope >, std::shared_ptr< ScriptExpression >, std::shared_ptr< AstComments >, std::shared_ptr< LoadInfo >, std::shared_ptr< AttachedInfo >, std::shared_ptr< DomEnvironment >, std::shared_ptr< DomUniverse > > OwnerT
QMLDOM_EXPORT bool domTypeIsScope(DomType k)
constexpr bool domTypeIsDomElement(DomType)
QMLDOM_EXPORT bool domTypeIsExternalItem(DomType k)
constexpr bool domTypeCanBeInline(DomType k)
std::variant< std::shared_ptr< DomEnvironment >, std::shared_ptr< DomUniverse > > TopT
QMLDOM_EXPORT QCborValue locationToData(SourceLocation loc, QStringView strValue=u"")
QMLDOM_EXPORT QMap< DomType, QString > domTypeToStringMap()
void updatePathFromOwnerQList(QList< T > &list, Path newPath)
QMLDOM_EXPORT bool domTypeIsTopItem(DomType k)
bool operator==(const Version &v1, const Version &v2)
constexpr bool domTypeIsObjWrap(DomType k)
@ UpdatedScriptExpression
QMLDOM_EXPORT QString domKindToString(DomKind k)
QMLDOM_EXPORT bool domTypeIsContainer(DomType k)
QMLDOM_EXPORT QMap< DomKind, QString > domKindToStringMap()
void updatePathFromOwnerMultiMap(QMultiMap< K, T > &mmap, Path newPath)
Path appendUpdatableElementInQList(Path listPathFromOwner, QList< T > &list, const T &value, T **vPtr=nullptr)
Combined button and popup list for selecting options.
SharedPointerFileDialogOptions m_options
#define Q_DECLARE_TR_FUNCTIONS(context)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction function
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
#define Q_DECLARE_FLAGS(Flags, Enum)
#define qCWarning(category,...)
#define Q_DECLARE_LOGGING_CATEGORY(name)
GLenum GLsizei GLsizei GLint * values
[15]
GLsizei const GLfloat * v
[13]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLuint GLenum GLsizei length
GLdouble GLdouble GLdouble GLdouble top
GLsizei const GLuint * paths
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLfloat GLfloat GLfloat GLfloat h
GLsizei GLsizei GLchar * source
GLsizei const GLchar *const * path
GLsizei GLenum GLboolean sink
static qreal component(const QPointF &point, unsigned int i)
#define Q_ASSERT_X(cond, x, msg)
static QT_BEGIN_NAMESPACE QAsn1Element wrap(quint8 type, const QAsn1Element &child)
static QString canonicalPath(const QString &rootPath)
QLatin1StringView QLatin1String
static FileType fileType(const QFileInfo &fi)
QList< QPair< QString, QString > > Map
A common base class for all the script elements.
void setSemanticScope(const QQmlJSScope::Ptr &scope)
std::shared_ptr< T > PointerType
std::optional< QQmlJSScope::Ptr > semanticScope()
virtual void createFileLocations(std::shared_ptr< AttachedInfoT< FileLocations > > fileLocationOfOwner)=0
SubclassStorage & operator=(const SubclassStorage &o)
SubclassStorage(const SubclassStorage &&o)
SubclassStorage(const SubclassStorage &o)
SubclassStorage(const T *el)