2011-02-18 14:48:16 +01:00
|
|
|
/**************************************************************************
|
|
|
|
**
|
|
|
|
** This file is part of Qt Creator
|
|
|
|
**
|
2012-01-26 18:33:46 +01:00
|
|
|
** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
2011-02-18 14:48:16 +01:00
|
|
|
**
|
2011-11-02 15:59:12 +01:00
|
|
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
2011-02-18 14:48:16 +01:00
|
|
|
**
|
|
|
|
**
|
|
|
|
** GNU Lesser General Public License Usage
|
|
|
|
**
|
2011-04-13 08:42:33 +02:00
|
|
|
** This file may be used under the terms of the GNU Lesser General Public
|
|
|
|
** License version 2.1 as published by the Free Software Foundation and
|
|
|
|
** appearing in the file LICENSE.LGPL included in the packaging of this file.
|
|
|
|
** Please review the following information to ensure the GNU Lesser General
|
|
|
|
** Public License version 2.1 requirements will be met:
|
|
|
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
2011-02-18 14:48:16 +01:00
|
|
|
**
|
|
|
|
** In addition, as a special exception, Nokia gives you certain additional
|
2011-04-13 08:42:33 +02:00
|
|
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
2011-02-18 14:48:16 +01:00
|
|
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
|
|
|
**
|
2011-04-13 08:42:33 +02:00
|
|
|
** Other Usage
|
|
|
|
**
|
|
|
|
** Alternatively, this file may be used in accordance with the terms and
|
|
|
|
** conditions contained in a signed written agreement between you and Nokia.
|
|
|
|
**
|
2011-02-18 14:48:16 +01:00
|
|
|
** If you have questions regarding the use of this file, please contact
|
2011-11-02 15:59:12 +01:00
|
|
|
** Nokia at qt-info@nokia.com.
|
2011-02-18 14:48:16 +01:00
|
|
|
**
|
|
|
|
**************************************************************************/
|
2010-10-04 17:07:03 +02:00
|
|
|
|
|
|
|
/*
|
|
|
|
Folow includes
|
|
|
|
*/
|
|
|
|
#include <QDebug>
|
|
|
|
#include <QtCore/QString>
|
|
|
|
#include <iostream>
|
|
|
|
#include <vector>
|
|
|
|
#include <cstdio>
|
|
|
|
//#include <Windows.h>
|
|
|
|
//#include <linux/version.h>
|
|
|
|
#include "dummy.h"
|
|
|
|
#include "detail/header.h"
|
|
|
|
|
|
|
|
/*
|
|
|
|
Complete includes
|
|
|
|
*/
|
|
|
|
//#include <QDe
|
|
|
|
//#include <QtCor
|
|
|
|
//#include <QtCore/QXmlStream
|
|
|
|
|
|
|
|
//#include <ios
|
|
|
|
//#include <vec
|
|
|
|
//#include <cstd
|
|
|
|
|
|
|
|
//#include <Win
|
|
|
|
//#include <lin
|
|
|
|
|
|
|
|
//#include "dum
|
|
|
|
//#include "deta
|
|
|
|
//#include "detail/hea
|
|
|
|
|
|
|
|
|
|
|
|
using namespace test;
|
|
|
|
|
|
|
|
int fi = 10;
|
|
|
|
extern int xi;
|
|
|
|
const int ci = 1;
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
int ai = 100;
|
|
|
|
int afunc() {
|
|
|
|
return fi * xi + ai + ci;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Follow symbols
|
|
|
|
- Expect some issues when finding the best function overload and with templates.
|
|
|
|
- Try using a local namespace directive instead of the global one.
|
|
|
|
*/
|
|
|
|
using namespace test;
|
|
|
|
void testFollowSymbols()
|
|
|
|
{
|
|
|
|
//using namespace test;
|
|
|
|
|
|
|
|
Dummy dummy;
|
|
|
|
Dummy::sfunc();
|
|
|
|
Dummy::ONE;
|
|
|
|
Dummy::PI;
|
|
|
|
dummy.bla(fi);
|
|
|
|
dummy.bla("bla");
|
|
|
|
dummy.one = "one";
|
|
|
|
Dummy::Internal internal;
|
|
|
|
internal.one = "one";
|
|
|
|
Dummy::INT i;
|
|
|
|
Dummy::Values V;
|
|
|
|
Dummy::v1;
|
|
|
|
freefunc1();
|
|
|
|
freefunc2(10);
|
|
|
|
freefunc2("s");
|
|
|
|
freefunc3(dummy);
|
|
|
|
freefunc3(dummy, 10);
|
|
|
|
freefunc3(10, 10);
|
|
|
|
freefunc3(1.0);
|
|
|
|
afunc();
|
|
|
|
i;
|
|
|
|
V;
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Complete symbols
|
|
|
|
- Check function arguments.
|
|
|
|
*/
|
|
|
|
void testCompleteSymbols()
|
|
|
|
{
|
|
|
|
test::Dummy dummy;
|
|
|
|
test::Dummy::Internal internal;
|
|
|
|
|
|
|
|
// in
|
|
|
|
// Dum
|
|
|
|
// Dummy::s
|
|
|
|
// Dummy::O
|
|
|
|
// Dummy::P
|
|
|
|
// dummy.
|
|
|
|
// dummy.b
|
|
|
|
// dummy.bla(
|
|
|
|
// dummy.o
|
|
|
|
// Dummy::In
|
|
|
|
// internal.o
|
|
|
|
// Dummy::Internal::
|
|
|
|
// freefunc2
|
|
|
|
// using namespace st
|
|
|
|
// afun
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Complete snippets
|
|
|
|
*/
|
|
|
|
void testCompleteSnippets()
|
|
|
|
{
|
|
|
|
// for
|
|
|
|
// class
|
|
|
|
// whil
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Find usages
|
|
|
|
- Go to other files for more options.
|
|
|
|
*/
|
|
|
|
void testFindUsages()
|
|
|
|
{
|
|
|
|
Dummy();
|
|
|
|
Dummy::sfunc();
|
|
|
|
Dummy::ONE;
|
|
|
|
xi;
|
|
|
|
fi;
|
|
|
|
ci;
|
|
|
|
ai;
|
|
|
|
afunc();
|
|
|
|
freefunc1();
|
|
|
|
freefunc2("s");
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Rename
|
|
|
|
- Compile to make sure.
|
|
|
|
- Go to other files for more options.
|
|
|
|
*/
|
|
|
|
void testRename()
|
|
|
|
{
|
|
|
|
fi;
|
|
|
|
ci;
|
|
|
|
ai;
|
|
|
|
afunc();
|
|
|
|
testCompleteSnippets();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Type hierarchy
|
|
|
|
*/
|
|
|
|
void testTypeHierarchy()
|
|
|
|
{
|
|
|
|
test::GrandChildDummy();
|
|
|
|
D();
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
Switch declaration/definition
|
|
|
|
- Use methods from Dummy.
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
Switch header/source
|
|
|
|
- Use dummy.h and dummy.cpp.
|
|
|
|
*/
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|