Orgad Shaneh
b365387f0d
C++: Add some debug output for specialization choosing
...
Change-Id: I13082288a56f6f7fe58c69f01824c56294ca258d
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-06-09 05:37:36 +00:00
Orgad Shaneh
ec4d242bb3
C++: Fix resolving of templated partial specialization
...
Use-case:
template<class T> struct t {};
template<class> struct s { float f; };
template<class X> struct s<t<X>> { int i; };
void f()
{
s<t<char>> var;
var.i; // i not highlighted
}
Task-number: QTCREATORBUG-14034
Change-Id: I5d00bc3247352fca4af4c41a47c208ec3e193c8e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-06-04 19:23:50 +00:00
Orgad Shaneh
2070431d8c
C++: Fix resolving of partial specialization
...
Use-case:
struct b {};
template<class X, class Y> struct s { float f; };
template<class X> struct s<X, b> { int i; };
void f()
{
s<int, b> var;
var.i; // i not highlighted
}
Task-number: QTCREATORBUG-14036
Change-Id: I70a87499e0a375e84d992ca0a79d77270a3419e8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-06-04 19:23:40 +00:00
Daniel Teske
26059dbb1e
Make every operator bool() explicit
...
operator bool() is a trap, but with explicit it's far safer,
and we can use that now.
Change-Id: I4e58631c94e87c00256c3ab3cff4fd2c5f632713
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com >
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-06-02 16:06:22 +00:00
Orgad Shaneh
b67ebf9ffc
C++: Fix lookup for instantiation of using
...
Yet another std::vector issue...
Use-cases:
// Case 1
template<typename T>
using type = T;
// Case 2
struct Parent {
template<typename T>
using type = T;
};
// Case 3
template<typename T>
struct ParentT {
template<typename DT>
using type = DT;
};
struct Foo { int bar; };
void func()
{
type<Foo> p1;
Parent::type<Foo> p2;
ParentT<Foo>::type<Foo> p3;
// bar not highlighted
p1.bar;
p2.bar;
p3.bar;
}
Task-number: QTCREATORBUG-14480
Change-Id: I9ab08ea7360a432c48eb4b85aa0d63e08d2464c1
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-06-02 08:37:02 +00:00
Orgad Shaneh
4a8a7f22b4
C++: Remove unneeded null validation
...
addNestedType should never accept null scope.
Change-Id: I6e4a86d0c7595af11079915faffdd8d213e92bd2
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-06-01 16:43:54 +00:00
Orgad Shaneh
07f8c474be
C++: Fix decltype resolving for template function
...
The last nail for std::unique_ptr (GCC variant, MSVC still doesn't work).
Use-case:
template<typename T>
static T f();
struct Foo { int bar; };
void fun()
{
decltype(f<Foo>()) s;
s.bar; // bar not highlighted
}
Task-number: QTCREATORBUG-14483
Task-number: QTCREATORBUG-8937
Change-Id: I5bab757400b070cf9dbb688a44fd8eafe95ddc61
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-06-01 16:30:47 +00:00
Orgad Shaneh
0cfd570cdd
C++: Deduplicate template arguments substitution
...
Change-Id: I2df85493d156a214b2e7650acc77efe099d03277
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-22 09:26:02 +00:00
Orgad Shaneh
4eb9b5f145
C++: Simplify template function resolving a bit
...
There's no reason to keep the Template after it is instantiated.
Change-Id: I91210ae11b3420bb038168fe951b52d28ccc132e
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-22 09:13:00 +00:00
Orgad Shaneh
b880ace167
C++: Minor cleanup
...
Save a few as* calls
Change-Id: Id2aa43a39ead7231d9e9046ad16d51c05af1ec77
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-05-21 11:09:03 +00:00
Orgad Shaneh
81721f6781
C++: Fix resolving of recursive typedef
...
Use-case:
template<typename _Tp>
struct Temp { typedef _Tp value_type; };
struct Foo { int bar; };
void func()
{
Temp<Temp<Foo> >::value_type::value_type *p;
p->bar; // bar not highlighted
}
Task-number: QTCREATORBUG-14237
Change-Id: Ie0b21b81526d610437ed2d2877083bb929c25047
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-20 11:14:20 +00:00
Orgad Shaneh
cbc122e2e2
C++: Introduce CreateBindings::Ptr
...
typedef for QSharedPointer<CreateBindings>
Change-Id: Idf7a9984bb90da82407abd4b7dec9f40926beac8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-20 10:51:12 +00:00
Orgad Shaneh
de68ac5407
C++: fix code completion for decltyped type
...
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 >
2015-05-20 10:45:31 +00:00
Orgad Shaneh
0a94329b17
C++: Minor cleanup in TypeResolver
...
Change-Id: I9da92d7669d15c1dfd954ec233e21c08b8432b24
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-05-19 06:36:03 +00:00
Orgad Shaneh
372173331c
C++: Fix explicit typedef from base type in templated class
...
Use-case:
struct Foo { int bar; };
template<typename T>
struct Base { typedef T F; };
template<typename T>
struct Derived : Base<T>
{
typedef typename Base<T>::F F;
F f;
};
void func()
{
Derived<Foo> d;
d.f.bar; // bar not highlighted
}
Task-number: QTCREATORBUG-14218
Change-Id: Ic0b22b2f8adf80ff88a2f8b7359c276a744f89e8
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-15 14:22:10 +00:00
Orgad Shaneh
9b30795c02
C++: Fix lookup for instantiation by class object
...
Task-number: QTCREATORBUG-14352
Change-Id: I2ce4bc1d0dba2414afe050e80607b581686081a9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-15 14:21:45 +00:00
Nikolai Kosjar
f27aa09ac5
C++: Fix crash on auto deduction with debug enabled
...
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 >
2015-05-15 14:20:47 +00:00
Orgad Shaneh
6665ace5cd
C++: Remove Dumpers
...
Superseded by Overview
Change-Id: I2ae193b1b9265ed59b73315486a35c53f6c8068f
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-12 14:13:24 +00:00
Orgad Shaneh
33d270976e
C++: Fix highlighting of member on indirect specialization typedef
...
Missed a spot in ad4cb444fb
Task-number: QTCREATORBUG-14141
Change-Id: I1a6a25ce3e9c2a680e1b8eebec01a17749cdb026
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-05 08:59:28 +00:00
Orgad Shaneh
a8f42831cb
C++: Minor optimization in ResolveExpression
...
Avoid needless snapshot copying
Change-Id: Iea38bd0866495cf5335b4444d5643d7082fbfcde
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-05 08:44:42 +00:00
Orgad Shaneh
fc884f6a27
C++: Fix commented debug in preprocessor
...
included is QByteArray
Change-Id: I5ec6d68bd0bbcb2b08cdcfe2759d72f474d4cda4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-05 08:43:18 +00:00
Orgad Shaneh
997f8fe269
C++: Remove redundant assignment
...
TranslationUnit assigns itself to the control in its ctor.
Change-Id: I08cf70c32f557648709e29b03c2f939d294fdc6d
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-05-05 08:42:49 +00:00
Tobias Hunger
9fef4fb9ca
CPlusPlus: Fix warnings about overriding visit(...) methods
...
Change-Id: I142b6c7b6573518dbd44557f3a66c5d683bb592d
Reviewed-by: Orgad Shaneh <orgads@gmail.com >
2015-05-04 08:22:43 +00:00
Orgad Shaneh
6a9bd957cb
C++: Fix instantiation of typedefed type in block
...
Use-case:
template<typename T>
struct Temp { T t; };
struct Foo { int bar; };
void func()
{
typedef Foo *pointer;
Temp<pointer> temp;
temp.t->bar; // bar not highlighted
}
Task-number: QTCREATORBUG-14351
Change-Id: I13ca6145a0069bbc7a7207f69b43011c69ec72c7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-28 13:54:40 +00:00
Orgad Shaneh
ad4cb444fb
C++: Fix specialization resolution for nested types
...
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 >
2015-04-28 13:54:25 +00:00
Orgad Shaneh
548ec9c099
C++: Deduplicate enclosing and nested instantiation
...
Change-Id: Ib75e2d67acdf1fdbeb30b7c9689134f6ccf34063
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-27 09:49:12 +00:00
Orgad Shaneh
00845c0503
C++: Remove unused var in LookupScopePrivate
...
Was readded by mistake when the type was pimpled.
Change-Id: I4150b783a1b54dda6070a49f78bcb8b0fcb9f414
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-27 09:08:12 +00:00
Orgad Shaneh
77070f59a4
C++: Remove unused variable
...
Change-Id: Idc7bbce90ebfb3a62594d5121c04dc265a2e583a
Reviewed-by: Orgad Shaneh <orgads@gmail.com >
2015-04-24 09:48:21 +00:00
Orgad Shaneh
d9eab81cbb
C++: Avoid duplicate entries in TypeResolver
...
Change-Id: I094dc04a14c05b17815d53bf0170926cc0c0d2a5
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-04-24 08:50:59 +00:00
Orgad Shaneh
8be26d070e
C++: Improve template argument detection for nested types
...
Change-Id: I7dd3f552f0e85413de8e58047d1fba39c7237182
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-23 08:19:10 +00:00
Orgad Shaneh
e1393c71ab
C++: Always assign name to LookupScope
...
... except the global namespace and blocks
Change-Id: I0696b4997c28b5105a000bae2a9a4fa1a56eb6d3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-23 08:19:01 +00:00
kai666_73
b30b69bbf3
C++: Find template member access in find usages
...
Example:
struct Foo {};
struct Bar {
template <typename T>
T *templateFunc() { return 0; }
};
struct Test {
Bar member;
void testFunc();
};
void Test::testFunc() {
member.templateFunc<Foo>(); // "templateFunc" and "Foo" outside of FindUsages
}
Change-Id: I0c5109d00c67054fe15b3fb98cf8cbca69123d8b
Reviewed-by: Orgad Shaneh <orgads@gmail.com >
2015-04-22 13:17:15 +00:00
hjk
50a685f8d8
CPlusPlus: Inline SymbolVisitor functions
...
Change-Id: I46221428f2c883103839e57c8fc433f05302addd
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-22 11:16:10 +00:00
Nikolai Kosjar
eb808980f7
C++: Remove unused member
...
Change-Id: I3469aab3ea699d531f12383138f4e91411b98e7f
Reviewed-by: Orgad Shaneh <orgads@gmail.com >
2015-04-21 10:03:46 +00:00
Orgad Shaneh
cb350bfeb2
C++: Rename ClassOrNamespace -> LookupScope
...
Change-Id: Ide74482b133dd1fec40a725d9aa81bd749385f37
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-20 14:51:56 +00:00
Orgad Shaneh
2f3d2a2490
C++: Pimpl ClassOrNamespace
...
Makes it easier to add features to ClassOrNamespace without rebuilding half of
the project.
Change-Id: I7ac646e8ad08fc8da6f7ed43ff184fb17edbd6b7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-20 14:07:58 +00:00
Orgad Shaneh
29ac9fc65f
C++: Remove DeprecatedGenTemplateInstance
...
It's, well, deprecated...
Change-Id: Ie9d7e80345a8d9404f702dd877b3e940a1a49d93
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-20 13:37:35 +00:00
Orgad Shaneh
0bf40a73c4
C++: Use explicit namespaces in LookupContext
...
Change-Id: I0c0cc577db9b75044ebd9f5fdc51cecc0f91e3ea
Reviewed-by: Adam Majer <adamm@zombino.com >
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-04-18 17:42:38 +00:00
Orgad Shaneh
5566146607
C++: Cleanup NestedClassInstantiator in LookupContext
...
* Rename Instantiator
* Shorten some variable names
Change-Id: I0d1d6280b6157e9ebc4bbaaa77f462fe6ce233c4
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-13 13:36:05 +00:00
Orgad Shaneh
cf4ae8c63f
C++: Forward-declare NestedClassInstantiator
...
It is only used in LookupContext.cpp
Change-Id: I7b1b4a634fea8560102f2c17afcaacd2773de98a
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-13 13:21:35 +00:00
Eike Ziller
11590a8c5f
Merge remote-tracking branch 'origin/3.4'
...
Conflicts:
src/plugins/cmakeprojectmanager/cmakeproject.cpp
Change-Id: I09c5a047f7d91fecfc58c78df438afcdcdc0a8d7
2015-04-13 10:53:03 +02:00
Orgad Shaneh
aedfbd5710
C++: Extract TypedefsResolver out of ResolveExpression
...
... and rename it TypeResolver
Change-Id: I5cb076812d2e3ac132f18ea884ec69328b69999c
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-04-11 17:27:44 +00:00
Orgad Shaneh
67e8d3689e
C++: Remove unimplemented function in LookupContext
...
Should have been removed in fbb756cd .
Change-Id: I86e0fd556ac031e6a88e9397a039d67ded5f7bd7
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@theqtcompany.com >
2015-04-07 14:48:24 +00:00
Eike Ziller
e56118cc1e
Merge remote-tracking branch 'origin/3.4'
...
Conflicts:
src/libs/extensionsystem/pluginview.cpp
Change-Id: I316199fe0a257cb085668ccb183b1590555278f2
2015-04-02 11:56:55 +02:00
Kai Koehne
46fc33d914
Don't mix iterator and const_iterator
...
This avoids unnecessary detaches of the Qt container data.
The mismatches where detected by defining QT_STRICT_ITERATORS;
however, this define violates the ODR (causing linker errors),
and therefore is not added permanently.
Change-Id: Idd336a9c8b394214a820437ef1b92d2101f6101c
GPush-Base: 62b0848b9c
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com >
2015-04-02 09:40:24 +00:00
Eike Ziller
65cd5381d9
Merge remote-tracking branch 'origin/3.4'
2015-03-26 12:51:06 +01:00
Orgad Shaneh
90c6f931ef
LookupContext: Fix debug output for cloned class
...
Change-Id: Ifee09fa6dd62cba897caf7bd60c8dadd9109e035
Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com >
2015-03-26 08:47:29 +00:00
Eike Ziller
9790d8aa00
Merge remote-tracking branch 'origin/3.4'
2015-03-24 07:40:21 +01:00
Lorenz Haas
da67c7c6c9
C++: Fix crash when accessing an empty list in Rewrite
...
Task-number: QTCREATORBUG-14163
Change-Id: I57eca70466bbf5d28d16afafc07ab243206fcff5
Reviewed-by: Orgad Shaneh <orgads@gmail.com >
2015-03-23 18:23:17 +00:00
Eike Ziller
bf7da428fb
Merge remote-tracking branch 'origin/3.4'
2015-03-16 10:27:16 +01:00