summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@theqtcompany.com>2015-07-28 10:42:44 +0200
committerChristian Kandeler <christian.kandeler@theqtcompany.com>2015-07-28 09:14:32 +0000
commit4adc9c2c5626a8adc5e97612c4ef5720ab36e0c2 (patch)
tree15f14017f41011f6029b70f82870131ac3625a99
parent71a039a66a0aa40a17ca69dc72c2cc5093caa24c (diff)
downloadqbs-4adc9c2c5626a8adc5e97612c4ef5720ab36e0c2.tar.gz
Make BuiltinDeclarations::languageVersion() an actual Version.
Change-Id: Ic49e9ab578c8cc4b6e5260a5da2667f934fbdf69 Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
-rw-r--r--src/lib/corelib/api/languageinfo.cpp2
-rw-r--r--src/lib/corelib/language/builtindeclarations.cpp4
-rw-r--r--src/lib/corelib/language/builtindeclarations.h5
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.cpp8
-rw-r--r--src/lib/corelib/language/itemreaderastvisitor.h3
5 files changed, 11 insertions, 11 deletions
diff --git a/src/lib/corelib/api/languageinfo.cpp b/src/lib/corelib/api/languageinfo.cpp
index 66cb3e9ea..204670bef 100644
--- a/src/lib/corelib/api/languageinfo.cpp
+++ b/src/lib/corelib/api/languageinfo.cpp
@@ -57,7 +57,7 @@ QByteArray LanguageInfo::qmlTypeInfo()
result.append(" exports: [ \"qbs/");
result.append(utf8TypeName);
result.append(" ");
- result.append(builtins.languageVersion().toUtf8());
+ result.append(builtins.languageVersion().toString().toUtf8());
result.append("\" ]\n");
result.append(" prototype: \"QQuickItem\"\n");
diff --git a/src/lib/corelib/language/builtindeclarations.cpp b/src/lib/corelib/language/builtindeclarations.cpp
index 1185da584..fbdb20bc7 100644
--- a/src/lib/corelib/language/builtindeclarations.cpp
+++ b/src/lib/corelib/language/builtindeclarations.cpp
@@ -45,7 +45,7 @@ Q_GLOBAL_STATIC(AClassWithPublicConstructor, theInstance)
const char QBS_LANGUAGE_VERSION[] = "1.0";
BuiltinDeclarations::BuiltinDeclarations()
- : m_languageVersion(QLatin1String(QBS_LANGUAGE_VERSION))
+ : m_languageVersion(Version::fromString(QLatin1String(QBS_LANGUAGE_VERSION)))
{
addArtifactItem();
addDependsItem();
@@ -69,7 +69,7 @@ const BuiltinDeclarations &BuiltinDeclarations::instance()
return *theInstance;
}
-QString BuiltinDeclarations::languageVersion() const
+Version BuiltinDeclarations::languageVersion() const
{
return m_languageVersion;
}
diff --git a/src/lib/corelib/language/builtindeclarations.h b/src/lib/corelib/language/builtindeclarations.h
index f39255c8b..acad2d5ee 100644
--- a/src/lib/corelib/language/builtindeclarations.h
+++ b/src/lib/corelib/language/builtindeclarations.h
@@ -34,6 +34,7 @@
#include "itemdeclaration.h"
#include <logging/logger.h>
+#include <tools/version.h>
#include <QByteArray>
#include <QMap>
@@ -48,7 +49,7 @@ class BuiltinDeclarations
public:
static const BuiltinDeclarations &instance();
- QString languageVersion() const;
+ Version languageVersion() const;
bool containsType(const QString &typeName) const;
QStringList allTypeNames() const;
ItemDeclaration declarationsForType(const QString &typeName) const;
@@ -76,7 +77,7 @@ private:
void addTransformerItem();
void addScannerItem();
- QString m_languageVersion;
+ Version m_languageVersion;
QMap<QString, ItemDeclaration> m_builtins;
};
diff --git a/src/lib/corelib/language/itemreaderastvisitor.cpp b/src/lib/corelib/language/itemreaderastvisitor.cpp
index c88340d3e..b949bde1e 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.cpp
+++ b/src/lib/corelib/language/itemreaderastvisitor.cpp
@@ -53,7 +53,6 @@ namespace Internal {
ItemReaderASTVisitor::ItemReaderASTVisitor(ItemReader *reader, ItemReaderResult *result)
: m_reader(reader)
, m_readerResult(result)
- , m_languageVersion(readImportVersion(BuiltinDeclarations::instance().languageVersion()))
, m_file(FileContext::create())
, m_item(0)
, m_sourceValue(0)
@@ -497,10 +496,11 @@ void ItemReaderASTVisitor::checkImportVersion(const AST::SourceLocation &version
const QString importVersionString = m_file->content().mid(versionToken.offset, versionToken.length);
const Version importVersion = readImportVersion(importVersionString,
toCodeLocation(versionToken));
- if (Q_UNLIKELY(importVersion != m_languageVersion))
+ if (Q_UNLIKELY(importVersion != BuiltinDeclarations::instance().languageVersion()))
throw ErrorInfo(Tr::tr("Incompatible qbs language version %1. This is version %2.").arg(
- importVersionString, BuiltinDeclarations::instance().languageVersion()),
- toCodeLocation(versionToken));
+ importVersionString,
+ BuiltinDeclarations::instance().languageVersion().toString()),
+ toCodeLocation(versionToken));
}
void ItemReaderASTVisitor::inheritItem(Item *dst, const Item *src)
diff --git a/src/lib/corelib/language/itemreaderastvisitor.h b/src/lib/corelib/language/itemreaderastvisitor.h
index 5f777f1bf..60b1fdd94 100644
--- a/src/lib/corelib/language/itemreaderastvisitor.h
+++ b/src/lib/corelib/language/itemreaderastvisitor.h
@@ -35,7 +35,6 @@
#include "filecontext.h"
#include <parser/qmljsastvisitor_p.h>
-#include <tools/version.h>
#include <QHash>
@@ -44,6 +43,7 @@ namespace Internal {
class ItemReader;
struct ItemReaderResult;
+class Version;
class ItemReaderASTVisitor : public QbsQmlJS::AST::Visitor
{
@@ -82,7 +82,6 @@ private:
ItemReader *m_reader;
ItemReaderResult *m_readerResult;
- const Version m_languageVersion;
FileContextPtr m_file;
QHash<QStringList, QString> m_typeNameToFile;
Item *m_item;