forked from qt-creator/qt-creator
		
	... when collecing tooltips. The more general functions provide more information, such as constness. Fixes: QTCREATORBUG-14950 Change-Id: I6d0a890a695e19e9754b5538ba092a188a3bbbb0 Reviewed-by: Marco Bubke <marco.bubke@qt.io>
		
			
				
	
	
		
			213 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			213 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| void f(int foo, const int *cfoo)
 | |
| {
 | |
|     foo++;
 | |
|     cfoo++;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| struct Foo { int member = 0; };
 | |
| int g(const Foo &foo)
 | |
| {
 | |
|     return foo.member;
 | |
|     const Foo bar;
 | |
|     bar;
 | |
| }
 | |
| 
 | |
| struct Bar { virtual ~Bar(); int mem(){} virtual int virtualConstMem() const; };
 | |
| void h(const Foo &foo, Bar &bar)
 | |
| {
 | |
|     g(foo);
 | |
|     bar.mem();
 | |
|     bar.virtualConstMem();
 | |
| }
 | |
| 
 | |
| 
 | |
| template <typename T>
 | |
| void t(int foo) { (void)foo; }
 | |
| void c()
 | |
| {
 | |
|     t<Foo>(3);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * \brief This is a crazy function.
 | |
|  */
 | |
| void documentedFunction();
 | |
| void d()
 | |
| {
 | |
|     documentedFunction();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| enum EnumType { V1, V2, Custom = V2 + 5 };
 | |
| EnumType e()
 | |
| {
 | |
|     return EnumType::Custom;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <typename T> struct Baz { T member; };
 | |
| void t2(const Baz<int> &b) {
 | |
|     Baz<int> baz; baz = b;
 | |
| }
 | |
| 
 | |
| #include "tooltipinfo.h"
 | |
| 
 | |
| 
 | |
| 
 | |
| #define MACRO_FROM_MAINFILE(x) x + 3
 | |
| void foo()
 | |
| {
 | |
|     MACRO_FROM_MAINFILE(7);
 | |
|     MACRO_FROM_HEADER(7);
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| namespace N { struct Muu{}; }
 | |
| namespace G = N;
 | |
| void o()
 | |
| {
 | |
|     using namespace N;
 | |
|     Muu muu; (void)muu;
 | |
| }
 | |
| void n()
 | |
| {
 | |
|     using namespace G;
 | |
|     Muu muu; (void)muu;
 | |
| }
 | |
| void q()
 | |
| {
 | |
|     using N::Muu;
 | |
|     Muu muu; (void)muu;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| struct Sizes
 | |
| {
 | |
|     char memberChar1;
 | |
|     char memberChar2;
 | |
| };
 | |
| enum class FancyEnumType { V1, V2 };
 | |
| union Union
 | |
| {
 | |
|     char memberChar1;
 | |
|     char memberChar2;
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 | |
| namespace X {
 | |
| namespace Y {
 | |
| }
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template<typename T> struct Ptr {};
 | |
| struct Nuu {};
 | |
| 
 | |
| typedef Ptr<Nuu> PtrFromTypeDef;
 | |
| using PtrFromTypeAlias = Ptr<Nuu>;
 | |
| template<typename T> using PtrFromTemplateTypeAlias = Ptr<T>;
 | |
| 
 | |
| void y()
 | |
| {
 | |
|     PtrFromTypeDef b; (void)b;
 | |
|     PtrFromTypeAlias a; (void)a;
 | |
|     PtrFromTemplateTypeAlias<Nuu> c; (void)c;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| template <typename T> struct Zii {};
 | |
| namespace U { template <typename T> struct Yii {}; }
 | |
| void mc()
 | |
| {
 | |
|     using namespace U;
 | |
|     Zii<int> zii; (void) zii;
 | |
|     Yii<int> yii; (void) yii;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| namespace A { struct X {}; }
 | |
| namespace B = A;
 | |
| void ab()
 | |
| {
 | |
|     B::X x; (void)x;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| namespace N {
 | |
| struct Outer
 | |
| {
 | |
|     template <typename T> struct Inner {};
 | |
|     Inner<int> inner;
 | |
| };
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| void f();
 | |
| namespace R { void f(); }
 | |
| void f(int param);
 | |
| void z(int = 1);
 | |
| void user()
 | |
| {
 | |
|     f();
 | |
|     R::f();
 | |
|     f(1);
 | |
|     z();
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| void autoTypes()
 | |
| {
 | |
|     auto a = 3; (void)a;
 | |
|     auto b = EnumType::V1; (void)b;
 | |
|     auto c = Bar(); (void)c;
 | |
|     auto d = Zii<int>(); (void)d;
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| struct Con {};
 | |
| struct ExplicitCon {
 | |
|     ExplicitCon() = default;
 | |
|     ExplicitCon(int m) :member(m) {}
 | |
|     int member;
 | |
| };
 | |
| void constructor()
 | |
| {
 | |
|     Con();
 | |
|     ExplicitCon();
 | |
|     ExplicitCon(2);
 | |
| }
 | |
| 
 | |
| Nuu **pointers(Nuu **p1)
 | |
| {
 | |
|     return p1;
 | |
| }
 | |
| 
 | |
| static constexpr int calcValue() { return 1 + 2; }
 | |
| const auto val = calcValue() + sizeof(char);
 | |
| 
 | |
| const int zero = 0;
 | |
| 
 | |
| static void func()
 | |
| {
 | |
|     const int i = 5;
 | |
|     const int j = i;
 | |
| }
 |