- May 22, 2015
-
-
Orgad Shaneh authored
There's no reason to keep the Template after it is instantiated. Change-Id: I91210ae11b3420bb038168fe951b52d28ccc132e Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- May 20, 2015
-
-
Orgad Shaneh authored
example: struct Foo { int bar; }; Foo foo() { return Foo; } typedef decltype(foo()) TypedefedFooWithDecltype; void fun() { decltype(foo()) decltypeFoo; decltypeFoo.;// code completion should work here TypedefedFooWithDecltype typedefedFooWithDecltype; typedefedFooWithDecltype.;// code completion should work here } Started-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Task-number: QTCREATORBUG-14483 Change-Id: I296ceed9d896c68cf0651265afb08a1fc42f9a68 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- May 15, 2015
-
-
Orgad Shaneh authored
Task-number: QTCREATORBUG-14352 Change-Id: I2ce4bc1d0dba2414afe050e80607b581686081a9 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
Nikolai Kosjar authored
By adding the expression document to the bindings object. Since ResolveExpression is always initialized with the context of a TypeOfExpression object, the symbols and names in the expression document will at least live as long as the most outer TypeOfExpression object. Done-with: Orgad Shaneh <orgads@gmail.com> Task-number: QTCREATORBUG-14253 Change-Id: Ia97c7401a2ada9a36113a04cf39e2283393421dd Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- May 05, 2015
-
-
Orgad Shaneh authored
Avoid needless snapshot copying Change-Id: Iea38bd0866495cf5335b4444d5643d7082fbfcde Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Apr 28, 2015
-
-
Orgad Shaneh authored
Use-cases: template<typename T> struct Traits { typedef typename T::pointer pointer; }; template<typename _Tp> struct Traits<_Tp*> { typedef _Tp *pointer; }; struct Foo { int bar; }; // 1 template<typename T> class Temp { protected: typedef Traits<T> TraitsT; public: typedef typename TraitsT::pointer pointer; pointer p; }; void func() { Temp<Foo *> t; t.p-> // complete } // 2 class Temp2 { protected: typedef Foo *FooPtr; typedef Traits<FooPtr> TraitsT; public: typedef typename TraitsT::pointer pointer; pointer p; }; void func2() { Temp2 t; t.p-> // complete } Task-number: QTCREATORBUG-14141 Change-Id: Id3459671117c0c81bcde7c9714b42750634c0225 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Apr 24, 2015
-
-
Orgad Shaneh authored
Change-Id: Idc7bbce90ebfb3a62594d5121c04dc265a2e583a Reviewed-by:
Orgad Shaneh <orgads@gmail.com>
-
- Apr 20, 2015
-
-
Orgad Shaneh authored
Change-Id: Ide74482b133dd1fec40a725d9aa81bd749385f37 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
Orgad Shaneh authored
It's, well, deprecated... Change-Id: Ie9d7e80345a8d9404f702dd877b3e940a1a49d93 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Apr 11, 2015
-
-
Orgad Shaneh authored
... and rename it TypeResolver Change-Id: I5cb076812d2e3ac132f18ea884ec69328b69999c Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com>
-
- Feb 26, 2015
-
-
Przemyslaw Gorszkowski authored
Fixed case: template<class T> struct List { struct iterator { T *operator->() { return &t; } T &operator*() { return t; } T t; }; iterator begin() { return iterator(); } }; struct Foo { int bar; }; void func() { List<Foo> list; auto a = list.begin(); (*a).; // code completion doesn't work a->; // code completion does not work } Task-number: QTCREATORBUG-13799 Change-Id: I38e4bfb2f5d728c0b24b0f18b3d78793e90d633b Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Feb 25, 2015
-
-
Przemyslaw Gorszkowski authored
Change-Id: I6989cd0e62e9587824737b756a37607dfdcf5ebf Reviewed-by:
Orgad Shaneh <orgads@gmail.com>
-
Przemyslaw Gorszkowski authored
Fixed case: template<class T> struct List { struct iterator { T *operator->() { return &t; } T t; }; iterator begin() { return iterator(); } }; struct Foo { int bar; }; void func() { List<Foo> list; list.begin()->; // code completion doesn't work } Task-number: QTCREATORBUG-13799 Change-Id: I65e8d3092bbc9b01a5dbee241c24d95dd03fc670 Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
Przemyslaw Gorszkowski authored
Fixed case: template<class T> struct List { struct iterator { T &operator*() { return t; } T t; }; iterator begin() { return iterator(); } }; struct Foo { int bar; }; void func() { List<Foo> list; (*list.begin()).; // code completion doesn't work } Task-number: QTCREATORBUG-13799 Change-Id: Ia3f5c1631c2f6a25d7fb1186b4ef506354ed22be Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Feb 04, 2015
-
-
Orgad Shaneh authored
Mostly done using the following ruby script: Dir.glob('**/*.cpp').each { |file| next if file =~ %r{src/shared/qbs|/qmljs/} s = File.read(file) s.scan(/^using namespace (.*);$/) { ns = $1 t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m| before = $1 char = $2 if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/ m else before + char end } if t != s puts file File.open(file, 'w').write(t) end } } Change-Id: I6fbe13ddc1485efe95c3156097bf41d90c0febac Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@theqtcompany.com>
-
- Jan 16, 2015
-
-
Eike Ziller authored
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125 Reviewed-by:
Alessandro Portale <alessandro.portale@digia.com>
-
- Nov 07, 2014
-
-
Przemyslaw Gorszkowski authored
Fixed case: class Foo {}; void foo(int v) {} void foo(const char *v) {} void foo(const Foo &v) {} void foo(char v) {} void test() { foo(5); foo("hoo"); foo('a'); char *var = "var"; foo(var); // Jumps to last override, regardless of its type Foo f; foo(f); // Jumps to last override } Task-number: QTCREATORBUG-13128 Change-Id: I038553bb3bdbe1c300fc01573c14b6fedf0320cd Reviewed-by:
Orgad Shaneh <orgads@gmail.com>
-
- Oct 09, 2014
-
-
Eike Ziller authored
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082 Reviewed-by:
Alessandro Portale <alessandro.portale@digia.com>
-
- Sep 12, 2014
-
-
Erik Verbruggen authored
Reported as a dead store by the clang static analyzer. Change-Id: Id5eb72ea4698a17486b8a05d88ee66f3fd89bcfc Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Sep 11, 2014
-
-
Nikolai Kosjar authored
This reverts commit c228b36c. There are multiple issues with the reverted patch: * Infinite loop due to indirect recursion e.g. when opening projectmodels.cpp * Crash when executing CppTools tests on Windows (no infinite loop) Change-Id: I38f02132ca57d3d32085db6146d0df7d620d7618 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Sep 09, 2014
-
-
Przemyslaw Gorszkowski authored
Example: template <typename T> struct Base { T t; }; struct Foo { int foo; }; void fun() { typedef Foo TypedefedFoo; Base<TypedefedFoo> baseFoo; baseFoo.t.// no code completion } Change-Id: I4822693d3fa1ee2e9b0e4cdd28bb9a8d441fb313 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Aug 29, 2014
-
-
Nikolai Kosjar authored
Change-Id: I4568709edc7e11de2584916014c16f95ceb4b584 Reviewed-by:
Orgad Shaneh <orgads@gmail.com>
-
- Aug 28, 2014
-
-
Erik Verbruggen authored
See [global.names] (17.6.4.3.2 in the C++11 spec.) Change-Id: I8434496dbe392b52d339d5f17cfaeee8dbd88995 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Aug 18, 2014
-
-
Przemyslaw Gorszkowski authored
Example: struct Foo { int foo; }; typedef Foo *FooArr[10]; void func() { FooArr arr; arr[0]-> // No completion } Task-number: QTCREATORBUG-12703 Change-Id: I1898dbf83eaa0a6dfa8c401390f28c78e5739bc4 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Jul 17, 2014
-
-
Nikolai Kosjar authored
Lambdas do not have a name. Change-Id: Ifda4816c62dcfe19bdbb1649dc1caf408e056b37 Task-number: QTCREATORBUG-12686 Reviewed-by:
Daniel Teske <daniel.teske@digia.com>
-
- May 28, 2014
-
-
Orgad Shaneh authored
... by setting the environment variable QTC_LOOKUPCONTEXT_DEBUG Change-Id: Ia46f55b2989129d5327d894734b6ea9c77c3e0ac Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- May 23, 2014
-
-
Nikolai Kosjar authored
...since it's superseded by the class Matcher. For consistency, rename FullySpecifiedType::isEqualTo() to match(). Change-Id: I07640f9218d814e0350265de45f05929e5d595a9 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Apr 07, 2014
-
-
Nikolai Kosjar authored
Change-Id: I642f681454ae1d3e684b4c40aec7820ba3a803ad Reviewed-by:
Tobias Hunger <tobias.hunger@digia.com> Reviewed-by:
Orgad Shaneh <orgads@gmail.com>
-
- Apr 04, 2014
-
-
Przemyslaw Gorszkowski authored
Fix a case: struct A { int a; }; typedef A B; typedef B* Bptr; Bptr b; b-> Task-number: QTCREATORBUG-10021 Change-Id: Ibf5ca801dbdb72744416924c0b8fc03daad5948a Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Mar 25, 2014
-
-
Przemyslaw Gorszkowski authored
Case when nested class declaration contains object name for this class. Example: void fun() { struct S { int i; } s; s.i; } Fixes: * highlighting * completion * tests Task-number: QTCREATORBUG-11710 Change-Id: I32e234f57655c388a87a199edc8be750d7bf823f Reviewed-by:
Orgad Shaneh <orgads@gmail.com> Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Feb 27, 2014
-
-
Erik Verbruggen authored
Change-Id: I114d7b1116ee5e345675a332c30312614c0faf5f Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Jan 08, 2014
-
-
Robert Loehning authored
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a Reviewed-by:
Leena Miettinen <riitta-leena.miettinen@digia.com> Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- Nov 14, 2013
-
-
Orgad Shaneh authored
Change-Id: I8413252c90a1487d291f15d92837c30ab697b245 Reviewed-by:
hjk <hjk121@nokiamail.com>
-
- Oct 18, 2013
-
-
Nikolai Kosjar authored
This reverts commit 5be56c07 except for its tests. While it fixed the problem described in the bug report, it also introduced regressions. For now, we use a hard limit. Change-Id: I19a85be454e3d7969371707e3eb1c3d42a16ecee Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-
- Oct 17, 2013
-
-
Przemyslaw Gorszkowski authored
This is the first phase of fixing bug QTCREATORBUG-10320. This change resolves typedefs of template parameters(and resolves problem with endless loop). The next step will be matching appropriate template specialization (this is needed to solve problem with missing code completion). Missing matching: template specialization with the same parameters, e.g.: template <class T1, class T2, class T3> class T { }; template <class T1, class T2> class T<T1, T2, T2> { }; Task-number: QTCREATORBUG-10320 Change-Id: Icb6b539c021b2a67a66db9011a2e627f7d96526b Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Sep 17, 2013
-
-
Joerg Bornemann authored
ResolveExpression now correctly handles wide and UTF-n string literals. Change-Id: Ide2373ffdc4c9e1e4b53236a8e2782653d15e687 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Aug 16, 2013
-
-
Nikolai Kosjar authored
Task-number: QTCREATORBUG-9990 Change-Id: I8153f18c8b7402c5cb3edbe41098792be183de44 Reviewed-by:
Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by:
Kai Koehne <kai.koehne@digia.com>
-
- Aug 05, 2013
-
-
Przemyslaw Gorszkowski authored
Fix auto completion for the case when template parameter should be found somewhere of scope of template instantiation declaration. Example: struct A { void foo(); struct B { int b; }; }; template<typename T> struct Template { T* get() { return 0; } T t; }; void A::foo() { Template<B> templ; templ.get()->//no autocompletion templ.t.//no autocompletion } Task-number: QTCREATORBUG-8852 Task-number: QTCREATORBUG-9169 Change-Id: I56b40776e66740f995ae6fc5d69e3c50139a3af2 Reviewed-by:
Nikolai Kosjar <nikolai.kosjar@digia.com>
-
- Jul 17, 2013
-
-
Orgad Shaneh authored
Change-Id: I1309db70e98d678e150388c76ce665e988fdf081 Reviewed-by:
Eike Ziller <eike.ziller@digia.com>
-
- Jul 12, 2013
-
-
Przemyslaw Gorszkowski authored
support for lambdas, e.g.: struct S { int bar; }; []() { return new S; } ()->bar; [] { return new S; } ()->bar; []() ->S* { return new S(); } ()->bar; []() throw() { return new S(); } ()->bar; []() throw()->S* { return new S(); } ()->bar; Task-number: QTCREATORBUG-9523 Change-Id: I43fbf6f0ee0bb11411c53c984df75ef33a276466 Reviewed-by:
Erik Verbruggen <erik.verbruggen@digia.com>
-