summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/LookupContext.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Replace GPL-3.0 with GPL-3.0-onlyKai Köhne2023-01-101-1/+1
| | | | | | | | | | | | | GPL-3.0 is deprecated by SPDX. Change done by find . -type f -exec perl -pi -e 's/LicenseRef-Qt-Commercial OR GPL-3.0(?!-)/LicenseRef-Qt-Commercial OR GPL-3.0-only/g' {} \; Change-Id: If316a498e3f27d2030b86d4e7743b3237ce09939 Reviewed-by: Lucie Gerard <lucie.gerard@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CppEditor: More migration to FilePathhjk2022-12-141-2/+2
| | | | | Change-Id: I261b713671e00bb567f61b4ee5ecf6fa83473bff Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Merge remote-tracking branch 'origin/9.0'Eike Ziller2022-12-121-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/plugins/cppeditor/cppelementevaluator.cpp src/plugins/vcsbase/vcsbaseclient.cpp Change-Id: I31e03b063240416280f5ca88c31f432911d5c67e
| * CppTypeHierarchy: Don't keep pointers to temp objectsJarek Kobus2022-12-071-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When building type hierarchy the pointers to list elements were put into queue. Later, the list was modified and it was possible that list detaches causing stored pointers to be invalid. Simplify building type hierarchy by adding helper recursive methods. Fixes: QTCREATORBUG-28529 Change-Id: I240513fc097536d2175e2242766127b92aaa6a82 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* | CPlusPlus: Do not try to qualify the names of template parametersChristian Kandeler2022-12-011-0/+2
| | | | | | | | | | | | | | | | | | | | These always appear as written. Task-number: QTCREATORBUG-28186 Change-Id: Iea8cc99ee6c17c1320817977fdb96ae1f730bc45 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | CppEditor: Another name minimalization fixChristian Kandeler2022-12-011-30/+43
| | | | | | | | | | | | | | | | | | ... involving using declarations. See also aae3ce15aa72631e290b4eb6d0e163706b10390b. Fixes: QTCREATORBUG-28386 Change-Id: I4171dce7b4e34b41c4a894e3bb34b3f62f82ac0f Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* | CppEditor: Proliferate FilePath usehjk2022-11-241-8/+6
|/ | | | | | | | | | | This includes one functional change: It drops some cleaning of the path used to create the CppDocument, which is now assumed to be done on the caller side. Change-Id: I5e2a182028e4d5b56282ad85f4a5c665f081754f Reviewed-by: Christian Stenger <christian.stenger@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Port from qAsConst() to std::as_const()Marc Mutz2022-10-071-2/+2
| | | | | | | | | | | | | | We've been requiring C++17 since Qt 6.0, and our qAsConst use finally starts to bother us (QTBUG-99313), so time to port away from it now. Since qAsConst has exactly the same semantics as std::as_const (down to rvalue treatment, constexpr'ness and noexcept'ness), there's really nothing more to it than a global search-and-replace. Task-number: QTBUG-99313 Change-Id: I88edd91395849574436299b8badda21bb93bea39 Reviewed-by: hjk <hjk@qt.io>
* CppEditor: Remove extra CPlusPlus::Class memberChristian Kandeler2022-09-161-4/+1
| | | | | | | | | | | | | | | | | | | Amends 0fab5956ea91dc0ee40b4d99605ec26a3720c5c8. We want to avoid carrying these eight bytes ber Class instance around. Instead, we now just replace the (anonymous) struct name with the typedef'ed one. Note that in C (but not C++), this is possible: struct S {}; typedef struct {} S; struct S s1; S s2; However, our code model has never respected the extra struct namespace, so it can already not distinguish between occurrences of "S" and "struct S". Change-Id: I55feafea7d3a4a5848e10f7011f633a2ce0f626e Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* CppEditor: Store typedefed name for anonymous structsChristian Kandeler2022-09-151-1/+4
| | | | | | | | | ... and use it as the struct display name in some places. Fixes: QTCREATORBUG-26611 Change-Id: I1b127f5705307a0fabd2441ff871162c882927a5 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Use SPDX license identifiersLucie Gérard2022-08-261-24/+2
| | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Task-number: QTBUG-67283 Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Utils: More porting.h related changeshjk2022-07-141-2/+0
| | | | | Change-Id: I528a6950dfa6e09eb7f7ada265c8c41dba816bfd Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* Utils: Collapse most of porting,hhjk2022-07-131-2/+2
| | | | | | | | | Taking the Qt 6 branches, leaving some dummies until downstream adapted. Change-Id: Ib9b86568d73c341c8f740ba497c3cbfab830d8a1 Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CPlusPlus: Drop the OverView::operator() overloadshjk2022-06-281-5/+6
| | | | | | | | | Use the named members instead. The operator() versions have been used only in a handful places, not using them makes things clearer on the user code side. Change-Id: I9b44371e094d498ff6ebfa9ecbe32f8654a63d4d Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CPlusPlus: Inline more simple Type related functionshjk2022-06-281-4/+4
| | | | | Change-Id: I2103e8047b385b438e58072e8a2689f1889d2724 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CPlusPlus: Inline some simple central functionshjk2022-06-241-28/+28
| | | | | | | | | | | | | Depending on context, callgrind sees contributions of >8% to the total cost of project parsing for these functions. The functional are actualy executed executed out-of-line, often for a function body of one "payload" instruction only. Inlining removes the call/endbr64/ret overhead. Change-Id: I6886f08e322fcaa4e0f54d424279e0a8c24e4718 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CPlusPlus: Remove foreach / Q_FOREACH usageArtem Sokolovskii2022-05-301-2/+2
| | | | | | Task-number: QTCREATORBUG-27464 Change-Id: I62e27bca141a529ac220211f8b31e78be0f7e855 Reviewed-by: hjk <hjk@qt.io>
* CPlusPlus: Remove foreach / Q_FOREACH usageArtem Sokolovskii2022-05-201-19/+32
| | | | | | | | Task-number: QTCREATORBUG-27464 Change-Id: Idbcedd9f9a2e148cb18e53c9dc0b82b52b372d64 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Remove unused local variable in LookupContext::fullyQualifiedNameIhor Ivlev2022-05-121-1/+0
| | | | | | Change-Id: Icbec0969eab0651481ca752541dbee98fb363630 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* CppEditor: Fix "insert def from decl" for template return typesChristian Kandeler2021-10-271-15/+2
| | | | | | Fixes: QTCREATORBUG-26397 Change-Id: Ia215f2c2b5da708b0fd7c894987683b305f4ccec Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* Fix qHash-related size compatibility warnings by MSVCOrgad Shaneh2021-10-201-2/+3
| | | | | | Change-Id: I3b7981ce78b67db4b996f99682284a0b911d8cd7 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* CplusPlus: Fix minimal name constructionChristian Kandeler2021-02-091-4/+4
| | | | | | | | | ... when creating the constructor implementation for a derived class. We would erroneously strip off the class name. Amends aae3ce15aa. Change-Id: I62c800d490626e8cb9416829633f9ef7b0c666cd Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* CplusPlus: Fix minimal name constructionChristian Kandeler2021-01-291-12/+46
| | | | | | | | | | | | | | | | | | ... when using declarations are involved. Second attempt. I have a suspicion that this is not the "correct" approach, however: a) It appears to fix the problem. b) It does not break any tests. c) It's rather high in the call tree, so there's a low likelihood of breaking something else. d) Considering the hacky-looking pre-existing code dealing with using declarations (e.g. LookupContext::lookupByUsing()), it seems quite possible that there is no "correct" way with the current infrastructure. Fixes: QTCREATORBUG-14524 Change-Id: I28c6e53137c21ce158bbd03b92b3db39146116d5 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* CPlusPlus: Revert name minimization fixChristian Kandeler2021-01-291-8/+2
| | | | | | | This effetively reverts 87ec0f349f, which had unwanted side effects. Change-Id: I03438c18f43b07a6560416af746132bc4471fbb7 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* CplusPlus: Fix minimal name constructionChristian Kandeler2021-01-281-2/+9
| | | | | | | | ... when using declarations are involved. Fixes: QTCREATORBUG-14524 Change-Id: I0c391b88628f40973b6f601e60c64263f62a88a0 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* CppEditor: Support decl/def switch for conversion operatorsChristian Kandeler2020-11-231-3/+19
| | | | | | Fixes: QTCREATORBUG-21168 Change-Id: I515fe146a679e007c96fa8d23f1457dadf07db3c Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* CppEditor: Remove using namespace quickfix: Don't insert inline namespacesLeander Schulten2020-11-191-6/+13
| | | | | Change-Id: If386d31de723ca928d3c50f55e32205c50937b0a Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* C++: Fix auto variable resolving for template class constructor callVolodymyr Zibarov2020-06-221-0/+4
| | | | | | | | | | | | | | | | | | | | Code snippet: template<class T> struct MyStruct { int value; }; int main() { auto s = MyStruct<int>(); s.value; // "value" is not found } This fixes find usages for unique_ptr declared as auto like this: auto ptr = std::unique_ptr<MyStruct>(new MyStruct()); ptr->value; Also fixes in-place constructors: std::unique_ptr<MyStruct>(new MyStruct())->value; Fixes: QTCREATORBUG-15364 Change-Id: I8d452a77fe85e63665ec8d4c4afbcf8aad063121 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix clang warnings about unwanted copies in range loopsChristian Kandeler2020-06-041-2/+1
| | | | | Change-Id: I11ae3317fd251a463809ee48917d2daf0f8b43d1 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
* C++: fix built-in code model to work with shared_ptr on MSVC 2017Volodymyr Zibarov2020-05-291-25/+93
| | | | | | | | | | | | | | | | | | | | | | | These changes target Find Usages feature to work with shared_ptr. Improve libs/3rdparty/cplusplus and plugins/cplusplus: parse __declspec() attribute, call to variadic function template without specified template arguments, if constexpr, c++11 attributes [[value]], function templates with default parameters, resolve order for function vs template with default parameter, template operator->() with default arguments, template specialization with numeric values, find best partial specialization, fix partial specialization for non-first specialized argument Fixes: QTCREATORBUG-7866 Fixes: QTCREATORBUG-20781 Fixes: QTCREATORBUG-22857 Fixes: QTCREATORBUG-17825 Change-Id: I31a080f7729edfb2ee9650f1aff48daeba5a673b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Nikolai Kosjar <pinaceae.pinus@gmail.com>
* Use isEmpty() instead of count() or size()Alessandro Portale2020-01-201-1/+1
| | | | | Change-Id: I0a89d2808c6d041da0dc41ea5aea58e6e8759bb4 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* Some clang-tidy -use-modernize-nullptrhjk2019-08-011-40/+40
| | | | | Change-Id: I1bed5e85a5b7948d08502a72a10f80baa075c204 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
* Standardize on int for line and column valueshjk2019-07-261-32/+32
| | | | | | | | | | | | | | | Recently tons of warnings show up for presumably "problematic" singned <-> unsigned and size conversions. The Qt side uses 'int', and that's the biggest 'integration surface' for us, so instead of establishing some internal boundary between signed and unsigned areas, push that boundary out of creator core code, and use 'int' everywhere. Because it reduces friction further, also do it in libcplusplus. Change-Id: I84f3b79852c8029713e7ea6f133ffb9ef7030a70 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
* More Utils::toSet/toListhjk2019-07-041-1/+3
| | | | | | | ... and unrelated cosmetic changes. Change-Id: I591b17fd5289831e701b683f8fb47816efd1fa67 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
* Fix warning: "Don't call QVector::first() on temporary QList/QVector"Alessandro Portale2019-01-281-1/+1
| | | | | | | [-Wclazy-detaching-temporary] Change-Id: I23f5cbd80bb92d3f9f1bfb5ae07493818958c5b0 Reviewed-by: hjk <hjk@qt.io>
* C++: Limit number of nested class instantiationsNikolai Kosjar2017-08-081-0/+2
| | | | | | | | | ...to avoid out of memory crashes. Task-number: QTCREATORBUG-18649 Change-Id: I5e121bf4be0fd0c01a97a182ed07ee7552fb68ac Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* C++: Fix crash for invalid codeNikolai Kosjar2017-07-061-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | ...due to indirect recursion: ... CPlusPlus::ClassOrNamespace::lookupType LookupContext.cpp 833 0x7fffd6c954cc CPlusPlus::ClassOrNamespace::nestedType LookupContext.cpp 1364 0x7fffd6c94bc6 CPlusPlus::ClassOrNamespace::lookupType_helper LookupContext.cpp 955 0x7fffd6c9517f CPlusPlus::ClassOrNamespace::lookupType_helper LookupContext.cpp 983 0x7fffd6c952ad CPlusPlus::ClassOrNamespace::lookupType LookupContext.cpp 833 0x7fffd6c954cc CPlusPlus::ClassOrNamespace::nestedType LookupContext.cpp 1364 0x7fffd6c94bc6 CPlusPlus::ClassOrNamespace::lookupType_helper LookupContext.cpp 955 0x7fffd6c9517f CPlusPlus::ClassOrNamespace::lookupType_helper LookupContext.cpp 983 0x7fffd6c952ad CPlusPlus::ClassOrNamespace::lookupType LookupContext.cpp 833 0x7fffd6c954cc ... ClassOrNamespace::lookupType(const Name *) already guards with a list of entries already processed, but some calls deeper the list is not passed on and lookupType() starts again with an empty list. Handle that case, too. Task-number: QTCREATORBUG-18499 Change-Id: Iab8978f6ac1d0aea16f49b3547415f43de887b07 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
* Use qEnvironmentVariableIsEmpty or qEnvironmentVariableIsSet directlyMontel Laurent2017-04-191-1/+1
| | | | | | | | Change-Id: I4f2e61e4bade9e7b4518d144db8163e596ab6264 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Tobias Hunger <tobias.hunger@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
* C++: Avoid inline namespaces in generated codeNikolai Kosjar2017-02-231-2/+37
| | | | | | | Task-number: QTCREATORBUG-16086 Change-Id: Ic2f3fd38ae6cc93725bc214c24320f40a0a519a8 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
* C++: Remove concurrent access to TemplateNameIdNikolai Kosjar2016-11-041-7/+8
| | | | | | | | | | | | | | | | | | | The modification of the TemplateNameId changed "global state" because the TemplateNameId is potentially accessed by multiple threads doing lookup (access to same document and thus same symbol names). Depending on the thread scheduling and access to ClassOrNamespace::_specializations, the changed TemplateNameId "suddenly" led to inconsistent results of TemplateNameId::Compare and thus broke the std::map assertions. Get rid of the const_cast, the setter and simply construct a temporary TemplateNameId with isSpecializaton = true. Task-number: QTCREATORBUG-14911 Change-Id: Ie381d132cc0d06af351ace4257773637d1ebee4e Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* CPlusPlus: fix gcc warningNikita Baryshnikov2016-05-131-2/+2
| | | | | | | this 'if' clause does not guard Change-Id: I004cb72dff2213738c59701d99748d7338991105 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* C++: Guard against parent binding loopNikolai Kosjar2016-04-271-4/+14
| | | | | | Task-number: QTCREATORBUG-16146 Change-Id: Ib2a790954517859acd7ca5f16c7d889d28208fb0 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Update License according to agreement with Free Qt FoundationTobias Hunger2016-01-191-17/+12
| | | | | | | * Update remaining files in src Change-Id: I1896f17fcf34f71c3310c87899fb5171b8e4afb1 Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
* C++: Revert lookup to 3.4.2Nikolai Kosjar2015-11-191-724/+639
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...which was least buggy. The bugs fixed by the changes we revert here (highlighting/completion for code involving templates) were minor compared to ones we currently have. Those bugs will be addressed by the clang code model anyway. Relevant commits were collected via: $ cd ${QTC}/src/libs/cplusplus $ git log \ --no-merges \ --format=oneline \ v3.4.2..HEAD \ -- LookupContext.* ResolveExpression.* TypeResolver.* TypeOfExpression.* \ ../../plugins/cpptools/cppcompletion_test.cpp From this list the following were skipped due to irrelevance: 88c5b47e535d91f3db99882d5b50b263b46f223c # CppTools: Minor cleanup in completion tests e5255a1f5cac284c4f0d4a85203878c84da86e85 # CppTools: Add a test for ObjC not replacing dot with arrow 5b12c8d63a30e281274cdc267efabead2c736bd8 # CppTools: Support ObjC in member access operator tests 9fef4fb9ca4e65e20ff13b98bcf15e3c6232fdfb # CPlusPlus: Fix warnings about overriding visit(...) methods There were only minor conflicts while reverting those. This changes touches so many files because there were quite some cleanups and renames after the 3.4.2 release. Task-number: QTCREATORBUG-14889 Task-number: QTCREATORBUG-15211 Task-number: QTCREATORBUG-15213 Task-number: QTCREATORBUG-15257 Task-number: QTCREATORBUG-15264 Task-number: QTCREATORBUG-15291 Task-number: QTCREATORBUG-15329 Change-Id: I01f759f8f35ecb4228928a4f22086e279c1a5435 Reviewed-by: Marco Bubke <marco.bubke@theqtcompany.com>
* C++: Limit template instantiation depthOrgad Shaneh2015-11-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | A recursive template generates infinite expansions. Consider the following example: template <class R1> struct Base { }; template<typename R> struct Derived : Base< typename Derived<typename Base<R>::type>::type, typename Derived<typename Base<R>::type>::type >::type {}; R is instantiated as Base<R>::type, which causes another instantiation of R into Base<Base<R>> etc... This is not a solution, but a workaround. Task-number: QTCREATORBUG-15141 Change-Id: Ib04f70275e07919e2cb6c7fb61a2045bd52f4a7d Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
* C++: Revert problematic template specialization changesNikolai Kosjar2015-09-101-80/+51
| | | | | | | | | | | | | | | | | | | | | | | | This mainly reverts commit 81721f678122bc66213b5f2a5fbf36c43e5e1a35 C++: Fix resolving of recursive typedef commit 2070431d8ca867acfb4391c275cd82caff4d711a C++: Fix resolving of partial specialization and some bits of other changes due to dependencies. It also reverts commit e0594fc9b906a32f5c8ac70265490cf86044676f C++: Fix expensive lookup for boost which attempted to solve the upcoming problems. Task-number: QTCREATORBUG-14741 Task-number: QTCREATORBUG-14889 Task-number: QTCREATORBUG-14962 Change-Id: I3f9e1f97199e5199b71da394fc27051c7709bd1f Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
* C++: Fix expensive lookup for boostNikolai Kosjar2015-08-211-4/+2
| | | | | | | | | | | | | | | | | With this patch, CheckSymbols takes about 200ms for processing the boost/proto hello world example [1]. Before, it needed about 11 seconds (timer in CheckSymbols::run). Same goes for including <boost/fusion/include/zip.hpp>. The custom ProcessedSet object was added to support "completion for typedefs for templates in namespaces", but apparently that's not needed anymore, as the added test proves. [1] http://www.boost.org/doc/libs/1_58_0/doc/html/proto/users_guide.html#boost_proto.users_guide.getting_started.hello_world Task-numer: QTCREATORBUG-14889 Task-numer: QTCREATORBUG-14741 Change-Id: I90454e8970a9d04033d56beeb0c6d7a0d4e6cc62 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
* C++: Fix potential crashOrgad Shaneh2015-08-031-6/+10
| | | | | | | | If no template is found, findSpecialization will crash Task-number: QTCREATORBUG-14748 Change-Id: I94b970e6eb994f0a8d85a4b996e52fcff0affef3 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
* C++: Fix crash in template argument resolvingOrgad Shaneh2015-08-031-2/+3
| | | | | | | | Occurs in boost/phoenix.hpp Task-number: QTCREATORBUG-14748 Change-Id: If89b0db48346aac72e0d8aaa8d165b2bf43bd784 Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
* C++: Cleanup LookupContextOrgad Shaneh2015-07-011-252/+114
| | | | | | | | | | | | | | Since the cache is now more reliable, some workarounds and optimizations in the instantiation process are not needed anymore. Also avoid instantiation of base classes when expandTemplates is disabled. As a bonus, we now resolve decltype of template function for a type that is not referenced anywhere but in the decltype. Change-Id: Idf42ba7280992db477c9aa62bb1815b27174594d Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>