diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index b781d68102d..038b887ae65 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -455,6 +455,30 @@ bool contains(const C &container, R S::*member) return anyOf(container, std::mem_fn(member)); } +template +[[nodiscard]] bool contains(const T (&array)[Size], const V &value) +{ + auto begin = std::begin(array); + auto end = std::end(array); + + auto found = std::find(begin, end, value); + + return found != end; +} + +////////////////// +// containsInSorted +///////////////// + +template +[[nodiscard]] bool containsInSorted(const C &container, const V &value) +{ + auto begin = std::begin(container); + auto end = std::end(container); + + return std::binary_search(begin, end, value); +} + ////////////////// // findOr ///////////////// diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index af144282058..8f7e64f470f 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -551,17 +551,15 @@ static QString replaceIllegalPropertyNameChars(const QString &str) return ret; } -static bool idIsQmlKeyWord(const QString &id) +static bool idIsQmlKeyWord(QStringView id) { - static const QSet keywords = {"as", "break", "case", "catch", - "continue", "debugger", "default", "delete", - "do", "else", "finally", "for", - "function", "if", "import", "in", - "instanceof", "new", "return", "switch", - "this", "throw", "try", "typeof", - "var", "void", "while", "with"}; + static constexpr std::u16string_view keywords[] = { + u"as", u"break", u"case", u"catch", u"continue", u"debugger", u"default", + u"delete", u"do", u"else", u"finally", u"for", u"function", u"if", + u"import", u"in", u"instanceof", u"new", u"return", u"switch", u"this", + u"throw", u"try", u"typeof", u"var", u"void", u"while", u"with"}; - return keywords.contains(id); + return Utils::contains(keywords, std::u16string_view{id.utf16(), Utils::usize(id)}); } QString RewriterView::auxiliaryDataAsQML() const