summaryrefslogtreecommitdiff
path: root/src/libs/qmljs/qmljsinterpreter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QmlJS: Actually print warning for .qmltypes fileKai Koehne2012-03-131-1/+1
| | | | | Change-Id: I93030362168719c126818006839e9fae0ca673ce Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* Removed module names from #include directives.Erik Verbruggen2012-02-151-9/+9
| | | | | | | | Getting the #include directives ready for Qt5. This includes the new-project wizards. Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
* Long live the king!hjk2012-01-261-1/+1
| | | | | Change-Id: I2b72b34c0cfeafc8bdbaf49b83ff723544f2b6e2 Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
* Qt Creator: Compile with Qt 5.Friedemann Kleint2011-12-121-0/+21
| | | | | | | | Introduce #ifdefs for incompatible changes in QAtomicPointer and QAtomicInt. Change-Id: Ice03a2cc8b3aed174e549827cfcf737764c41642 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* QmlJS: Fix highlighting and completion for property declarations.Christian Kamm2011-12-071-1/+13
| | | | | | | | | | | | | When property declarations use a custom type such as property Foo bar we now * highlight Foo as a QML type if it's found * complete bar. as a Foo Change-Id: I82c249646af19bfeb9f5a7a7692f0dc10b009835 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Fix lazy initialization of CppComponentValue::signalScopes.Christian Kamm2011-11-291-1/+1
| | | | | | | Could lead to crashes when two threads initialize it at the same time. Change-Id: Ia8e2c280c89087b1195451948c36a384e1098423 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Add protection against attached types attaching to themselves.Christian Kamm2011-11-291-1/+1
| | | | | | Change-Id: Ib81d5e6baabf5ac8d18411e8936098908de2c2bb Task-number: QTCREATORBUG-6635 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Speed up ValueOwner construction.Christian Kamm2011-11-251-122/+25
| | | | | | | | | | | | | | | | | | | | * Don't build all default values (including the global object) separately for each ValueOwner instance. * Instead, keep all global, immutable values in a single, shared instance. While refactoring, some cases where we *modified* the global object had to be removed: * C++ context properties no longer get injected into the global object, instead they now have their own scope just above the global one. * The Qt object's prototype no longer gets modified in Link. Instead, it's now a reference to the "Qt" object provided in a qmltypes file. * The whole concept of a function 'Activation' that could potentially affect the global object was removed. Change-Id: Id382faf965efa747fcc7a9b0bc2c90429d84d61b Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* QmlJS: Improve completion and hints for functions.Christian Kamm2011-11-161-7/+74
| | | | | | | | | | | * FunctionValues know about optional arguments (for builtins) * ASTFunctionValues only report themselves as variadic if they use the 'arguments' array. * Function argument hint shows optional args and variadic. * Completion automatically adds parentheses. Change-Id: Ib2598600ff8b1ce8c5de3bcabd24a3e171ff3a57 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* QmlJS: Add documentation for QmlJS::Value.Christian Kamm2011-11-151-0/+29
| | | | | | | | | Also: * Remove unnecessary QmlJS:: qualifications in existing documentation. * Remove unnecessary explicit links in the documentation. Change-Id: Icb41941d98b5cfe9d2fb3b3887fafee16635eb13 Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
* Merge remote-tracking branch 'origin/2.4'Eike Ziller2011-11-111-15/+9
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/qmljs/qmljsinterpreter.cpp src/libs/qmljs/qmljsinterpreter.h src/plugins/debugger/qml/scriptconsole.cpp src/plugins/git/gitplugin.cpp src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas.cpp src/plugins/qmlprofiler/canvas/qdeclarativetiledcanvas_p.h Change-Id: Iad59c8d87c72a21c79c047e374c0ab689998af39
| * QmlJS: Fixed attached objects.Christian Kamm2011-11-071-13/+7
| | | | | | | | | | | | Task-number: QTCREATORBUG-6450 Change-Id: Idd8e2ec3550190a137dbf0fe452c8488fb3fe1ad Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
| * all: s/info@qt.nokia.com/qt-info@nokia.com/hjk2011-11-031-2/+2
| | | | | | | | | | Change-Id: If18afb5d4665924e7d9250dccbc60a65e6daa75e Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
* | Merge remote-tracking branch 'origin/2.4'Eike Ziller2011-11-011-8/+24
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/libs/qmljs/qmljsinterpreter.cpp src/libs/qmljs/qmljsinterpreter.h src/plugins/madde/maemopackagecreationstep.cpp src/plugins/projectexplorer/buildmanager.cpp src/plugins/qmljstools/qmljsqtstylecodeformatter.cpp src/plugins/qmljstools/qmljsqtstylecodeformatter.h tests/auto/qml/qmleditor/qmlcodeformatter/tst_qmlcodeformatter.cpp Change-Id: I63ab2ba5dac006c37ccfbae55b023396a4676ff7
| * QmlJS: Avoid an infinite loop if a qmltypes file has a cycle.Christian Kamm2011-10-311-8/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | The qmltypes files shipped with libraries shouldn't, but could define components that form a prototype cycle. Use of the new QmlObjectValue::prototypes() function avoids the code model getting stuck in an infinite loop for these cases. For plain ObjectValues this is already solved by using PrototypeIterator. Change-Id: I0f562672ab99b454bc3a0121c7a1b9eca43476bb Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Support module apis defined by QML modules.Christian Kamm2011-10-211-6/+4
| | | | | | | | | | Change-Id: I18ec9daf8088f7db5ff2da11da14b539f501bab3 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Introduce UnknownValue.Christian Kamm2011-10-181-37/+29
| | | | | | | | | | | | | | To distinguish known-to-be-undefined from a genuinely unknown value. Change-Id: I606b4ea4d726f94553400b8950d3c0a4e76564a8 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Convert more dynamic_casts to value_casts.Christian Kamm2011-10-131-0/+10
| | | | | | | | | | | | | | | | And introduce a good error message for the case when someone forgets the specialization of the value_cast template. Change-Id: Iec55a839e8f5eef5872b1dab8601f66e0e0c88de Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
* | QmlJS: Add more value_casts.Christian Kamm2011-10-121-14/+64
| | | | | | | | | | | | | | | | | | | | And switch all existing dynamic_casts to value_casts. Change-Id: I93b89358e4802080f40b332074c64f4e91a2bc4c Reviewed-on: http://codereview.qt-project.org/6311 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* | QmlJS: Rename QmlObjectValue -> CppComponentValue.Christian Kamm2011-10-121-52/+52
| | | | | | | | | | | | | | | | | | Reviewed-by: Fawzi Mohamed Reviewed-by: Thomas Hartmann Change-Id: Ib89388d5a5678403e4637eec5829f3520637ee27 Reviewed-on: http://codereview.qt-project.org/6310 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com>
* | QmlJS: Set correct scope in signal handlers.Christian Kamm2011-10-121-20/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This means the code model will now offer correct completion and highlighting for arguments of signals in their handlers, example: MouseArea { onClicked: { mou<complete> // now also completes 'mouse' } } Reviewed-by: Fawzi Mohamed Change-Id: I01838ef00e391b13e6e5a832c9ec3cd983689c5b Reviewed-on: http://codereview.qt-project.org/6147 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com>
* | QmlJS checks: Disable some checks when imports failed.Christian Kamm2011-10-121-0/+14
| | | | | | | | | | | | | | | | | | The important error in this case is on the import. Change-Id: I3a547ca7ac44a89aba6819ea80ec52185071408a Reviewed-on: http://codereview.qt-project.org/5879 Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com> Sanity-Review: Christian Kamm <christian.d.kamm@nokia.com>
* | QmlJS: Allow 'var' property type.Christian Kamm2011-10-061-1/+3
|/ | | | | | | | It's new in Qt 5. Change-Id: If3e670d42528ca6996ae280d96077ce744d281d9 Reviewed-on: http://codereview.qt-project.org/6121 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* QmlJS: Support .import directives in js files.Christian Kamm2011-09-281-24/+74
| | | | | | | | | | | * Allow .import... * Fix parsing of JS files when using Lexer::scanDirectives() * Clean up ImportInfo construction. * Rename ImportInfo::id to ImportInfo::as. Change-Id: I888da248f06dc6184db99aa74c3b50d7f2f5e491 Reviewed-on: http://codereview.qt-project.org/5625 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
* QmlJS: Fix crash.Christian Kamm2011-09-271-1/+1
| | | | | | Change-Id: Ieacc7896eaeb478c6bd79a0865280f0cb595101e Reviewed-on: http://codereview.qt-project.org/5619 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Fix threading issue in QmlObjectValue.Christian Kamm2011-09-271-12/+14
| | | | | | | | Still need to get rid of the lock in ValueOwner::registerValue. Change-Id: If9bbc548de54edf52805906aaaf730f5c66573dd Reviewed-on: http://codereview.qt-project.org/5542 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Separate metaObjectRevision from minor version number.Christian Kamm2011-09-261-12/+32
| | | | | | | | | | | | | | | | | | They need not to be identical. Additionally: * Rename ImportInfo::name to path, because that's what it does. * Add ImportInfo::name, for getting the uri with the names separated by dots. * Allow for exportMetaObjectRevisions in qmltypes files. * Allow for exports with an empty type name, as generated by qmlRegisterRevision. They are used for associating meta object revisions with non-exported types. * Rewrite the Qt 4.7 import to QtQuick 1.0 at an early stage. In preparation for the Qt 5 type information update, where Qt 4.7 is gone. Change-Id: Ia287193623d9530a56b9eb8d2481d50aabd94c3e Reviewed-on: http://codereview.qt-project.org/5309 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Fix enum completion with 'as' imports.Christian Kamm2011-09-191-0/+27
| | | | | | Change-Id: Ifc229c23c14a6395c9d3e5f7ec76b9b04678787d Reviewed-on: http://codereview.qt-project.org/5134 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Rework exported C++ type registry.Christian Kamm2011-09-191-168/+130
| | | | | | | | | | | | | | | | The problem was that if you exported A 1.0, A 1.1 and B 1.0 where A is the prototype of B the code model had not enough information to know that, depending on the import, B 1.0's prototype should be A 1.1 or A 1.0. To solve this problem QmlObjectValues now store the import's version as well as the local component version. In the example above B 1.0 would have import version 1.1 if the 1.1 module was imported and thus be able to choose the right prototype. Change-Id: I7ef33f12ca5a528c62b2a8240f4b5720b0ebd4c3 Reviewed-on: http://codereview.qt-project.org/5129 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Change from QMap to QHash for QString keys.Christian Kamm2011-09-191-1/+1
| | | | | | | | | Tests indicate that lookup in QHash<QString, ...> is more performant even for short strings. Change-Id: I8e5a73d0f1a72e202522f397b16901887f9c3591 Reviewed-on: http://codereview.qt-project.org/5070 Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
* QmlJS: When completing enums, add Item.Foo instead of "Foo".Christian Kamm2011-09-151-10/+13
| | | | | | Change-Id: I9a74bd726d9691ca93477916159a80c04c35f52d Reviewed-on: http://codereview.qt-project.org/4987 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Improve completion of signals.Christian Kamm2011-09-141-17/+42
| | | | | | | | | | | | * Change from Reference to FunctionValue: There was no reason for them being References as the argument types never need lookup. * Enumerate in global completion: When you define 'signal foo(int a)' you now get completion for 'foo' and will get the function argument hint popup. Change-Id: Ic348db477a34ba468dfdb690499a9cd8fd605cd2 Reviewed-on: http://codereview.qt-project.org/4774 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Adjust existing code for updated QML parser.Christian Kamm2011-09-141-17/+18
| | | | | | Change-Id: I153723eeb9973be025daf47e317f7b9d076a3c72 Reviewed-on: http://codereview.qt-project.org/4733 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Enable 'follow symbol' for local variables.Christian Kamm2011-09-141-0/+8
| | | | | | | Task-number: QTCREATORBUG-6094 Change-Id: Icf286bc412b48dbd1cb38c47ad7b91040b5aae0f Reviewed-on: http://codereview.qt-project.org/4864 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Fix reference lookup cycles.Christian Kamm2011-09-121-7/+7
| | | | | | | | | | Since several reference lookups involve Evaluate which may cause further reference lookups, we need to be able to pass the existing ReferenceContext to avoid cycles. Change-Id: I2f1eeaad4d6b6ff094413d51077b03c985f6fab4 Reviewed-on: http://codereview.qt-project.org/4653 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Fix lookup for enums.Christian Kamm2011-09-051-26/+39
| | | | | | | | | | * Also look for enums in prototypes. * Report back which QmlObjectValue had the enum. * Fix a bug where enum lookup was always skipped. Change-Id: I9c9fd8f8cf9bd8cc5f1bb5688fef5786267cd794 Reviewed-on: http://codereview.qt.nokia.com/4192 Reviewed-by: Thomas Hartmann <Thomas.Hartmann@nokia.com>
* QmlJS: Add XMLHttpRequest, DB API and JSON completion.Christian Kamm2011-08-091-3/+18
| | | | | | Change-Id: I30773e8879086c1f85d331fabf9380e217b32dd7 Reviewed-on: http://codereview.qt.nokia.com/2745 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Remove Interpreter namespace.Christian Kamm2011-08-081-16/+16
| | | | | | | | | The distinction between QmlJS and QmlJS::Interpreter has always been weak and the extra namespace just added an unnecessary complication. Change-Id: I4db8ef4bd91b5f6bf610a9d23fdbf55bd60250fc Reviewed-on: http://codereview.qt.nokia.com/2743 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Share Context.Christian Kamm2011-08-081-5/+15
| | | | | | | | | | | | Previously Context was not entirely thread safe and had to be copied locally. Now it is thread safe and its lifetime managed by QSharedPointer. The non-safe parts were moved into ScopeChain in a previous commit. Change-Id: I851a93de85cbd6391dbea0fe33b011e2e093addb Reviewed-on: http://codereview.qt.nokia.com/1695 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Split Context and ScopeChain.Christian Kamm2011-08-081-92/+26
| | | | | | | | | | | | Context is created by Link and has information about imports for all Documents in a Snapshot. ScopeChain represents how lookup is done at a specific place in a Document. Change-Id: I874102d57bbaf1a497fa3f27633bed6ee75dcf10 Reviewed-on: http://codereview.qt.nokia.com/1694 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Fix type lookup issue.Christian Kamm2011-07-151-0/+3
| | | | | | | | | 0c0ffab1bbc56e6cc381eeba3dc1227793d766cd accidentally always returned null if the type was not an enum. Change-Id: Ie16d96e59cefa50c345cddb4a053fd8b60ba3cd6 Reviewed-on: http://codereview.qt.nokia.com/1693 Reviewed-by: Leandro T. C. Melo <leandro.melo@nokia.com>
* avoid allocating QmlEnumValues each timeFawzi Mohamed2011-07-131-4/+13
| | | | | | | Change-Id: I61f39f5bafcb2c84e91f5bca4b52010a08ed9f37 Reviewed-on: http://codereview.qt.nokia.com/1592 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Christian Kamm <christian.d.kamm@nokia.com>
* QmlJS: Dump builtins per Qt version.Christian Kamm2011-07-111-17/+5
| | | | | | | Change-Id: I7b5179c4b33c24e83baf0536d158dd48d277637f Reviewed-on: http://codereview.qt.nokia.com/1305 Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Make 'length' property available on all FunctionValues.Christian Kamm2011-07-051-12/+1
| | | | | | Change-Id: I62bb8f41177521db1f3213d6bd804d8e4852560d Reviewed-on: http://codereview.qt.nokia.com/1044 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Remove deprecated enum functions in QmlObjectValue.Christian Kamm2011-07-051-27/+0
| | | | | | Change-Id: I30c1636f4946f465e5924493e561310f506df3d7 Reviewed-on: http://codereview.qt.nokia.com/1043 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Move Context to its own file.Christian Kamm2011-07-051-140/+1
| | | | | | Change-Id: I91331b7039e27e2f57cc19b985c8ed86c955ec9e Reviewed-on: http://codereview.qt.nokia.com/1042 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Enforce Context always being linked.Christian Kamm2011-07-051-9/+3
| | | | | | | | The default way of creating a Context is through Link. Change-Id: Ia81f7ce90ba2b33d02eed432a61be836d404bedd Reviewed-on: http://codereview.qt.nokia.com/1041 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Remove unused methods from ContextChristian Kamm2011-07-051-11/+0
| | | | | | Change-Id: I1e4a013ee11f9747d6936c15bf81e971ca4e4f23 Reviewed-on: http://codereview.qt.nokia.com/1040 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Rename Interpreter::Engine -> ValueOwnerChristian Kamm2011-07-051-962/+110
| | | | | | | | Also move to a separate file. Change-Id: I05910e8cf04a533b5d09a1c16e612e3b99b1d606 Reviewed-on: http://codereview.qt.nokia.com/1039 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>
* QmlJS: Respect the REVISION property for methods and properties.Christian Kamm2011-06-231-2/+7
| | | | | | | Task-number: QTCREATORBUG-3907 Change-Id: Ic2c1f8cafe381e5216ae7ad73502ca0fae20dda0 Reviewed-on: http://codereview.qt.nokia.com/656 Reviewed-by: Fawzi Mohamed <fawzi.mohamed@nokia.com>