blob: 14e12ac430b0fc72db03143de432dc866d302ecf [file] [log] [blame]
//!ExtractFunctionRefactoringTest variable defined in scope
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
int exp();
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
/*$*/int i = 2;
++i;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::exp()
{
int i = 2;
++i;
help();
return i;
}
int A::foo()
{
int i = exp();
return i;
}
int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
void exp(int & i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
//comment
/*$*/++i;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int & i)
{
//comment
++i;
help();
}
int A::foo()
{
int i = 2;
exp(i);
return i;
}
int A::help()
{
return 42;
}
//@.config
filename=A.cpp
methodname=exp
replaceduplicates=false
returnvalue=false
returnparameterindex=0
//!Extract Function first extracted statement with leading comment
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@main.cpp
int main(){
int i;
// Comment
/*$*/i= 7;/*$$*/
return i;
}
//=
void exp(int & i)
{
// Comment
i = 7;
}
int main(){
int i;
exp(i);
return i;
}
//@.config
filename=main.cpp
methodname=exp
replaceduplicates=false
returnvalue=false
returnparameterindex=0
//!Extract Function last extracted statement with trailling comment
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@main.cpp
int main(){
int i;
/*$*/i= 7;/*$$*/ // Comment
return i;
}
//=
void exp(int & i)
{
i = 7; // Comment
}
int main(){
int i;
exp(i);
return i;
}
//@.config
filename=main.cpp
methodname=exp
replaceduplicates=false
returnvalue=false
returnparameterindex=0
//!ExtractFunctionRefactoringTest with two variable defined in scope
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
fatalerror=true
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
/*$*/int o = 1;
int i = 2;
++i;
o++;
help();/*$$*/
o++;
return i;
}int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest with named typed field
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
void foo();
B b;
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
void foo();
B b;
private:
int help();
void exp();
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::foo()
{
/*$*/b = new B();
help();/*$$*/
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp()
{
b = new B();
help();
}
void A::foo()
{
exp();
}
int A::help()
{
return 42;
}
//@B.h
#ifndef B_H_
#define B_H_
class B
{
public:
B();
virtual ~B();
};
#endif /*B_H_*/
//!ExtractFunctionRefactoringTest with named typed variable defined in scope
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
void foo();
B b;
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
void foo();
B b;
private:
int help();
void exp();
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::foo()
{
/*$*/b = new B();
help();/*$$*/
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp()
{
b = new B();
help();
}
void A::foo()
{
exp();
}
int A::help()
{
return 42;
}
//@B.h
#ifndef B_H_
#define B_H_
class B
{
public:
B();
virtual ~B();
};
#endif /*B_H_*/
//!ExtractFunctionRefactoringTest with ObjectStyleMacro
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
void exp(int & i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
#define ZWO 2
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
/*$*/++i;
i += ZWO;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
#define ZWO 2
A::A()
{
}
A::~A()
{
}
void A::exp(int & i)
{
++i;
i += ZWO;
help();
}
int A::foo()
{
int i = 2;
exp(i);
return i;
}
int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest with FunctionStyleMacro
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
void exp(int & i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
#define ADD(a,b) a + b + 2
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
/*$*/++i;
i = ADD(i, 42);
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
#define ADD(a,b) a + b + 2
A::A()
{
}
A::~A()
{
}
void A::exp(int & i)
{
++i;
i = ADD(i, 42);
help();
}
int A::foo()
{
int i = 2;
exp(i);
return i;
}
int A::help()
{
return 42;
}
//!ExtractMethod with Pointer
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
void exp(int *& i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int* i = new int(2);
/*$*/++*i;
help();/*$$*/
return *i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int *& i)
{
++*i;
help();
}
int A::foo()
{
int* i = new int(2);
exp(i);
return *i;
}
int A::help()
{
return 42;
}
//!ExtractMethod with Pointer and Comment at the end
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
void exp(int *& i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int* i = new int(2);
/*$*/++*i;
help();
//A end-comment/*$$*/
return *i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int *& i)
{
++*i;
help();
}
int A::foo()
{
int* i = new int(2);
exp(i);
//A end-comment
return *i;
}
int A::help()
{
return 42;
}
//!ExtractMethod with Pointer and Comment
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
void exp(int *& i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
//A beautiful comment
int* i = new int(2);
/*$*/++*i;
help();/*$$*/
return *i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int *& i)
{
++*i;
help();
}
int A::foo()
{
//A beautiful comment
int* i = new int(2);
exp(i);
return *i;
}
int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest with Return Value
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
replaceduplicates=true
returnvalue=true
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
int exp(int i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
/*$*/++i;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::exp(int i)
{
++i;
help();
return i;
}
int A::foo()
{
int i = 2;
i = exp(i);
return i;
}
int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest with Return Value and Ref Parameter
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
replaceduplicates=true
returnvalue=true
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
int exp(int i, int & b);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
int b = i;
/*$*/++i;
i = i + b;
help();/*$$*/
++b;
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::exp(int i, int & b)
{
++i;
i = i + b;
help();
return i;
}
int A::foo()
{
int i = 2;
int b = i;
i = exp(i, b);
++b;
return i;
}
int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest with Return Value and Ref Parameter and some more not used aferwards
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
replaceduplicates=true
returnvalue=true
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
int exp(int i, B *b, int y, float & x);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
/*$*/++i;
b->hello(y);
i = i + x;
help();/*$$*/
++x;
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::exp(int i, B *b, int y, float & x)
{
++i;
b->hello(y);
i = i + x;
help();
return i;
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
i = exp(i, b, y, x);
++x;
return i;
}
int A::help()
{
return 42;
}
//!ExtractFunctionRefactoringTest with Return Value take the second and Ref Parameter and some more not used aferwards
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
returnparameterindex=1
returnvalue=true
//@A.h
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
float exp(int & i, B *b, int y, float x);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
/*$*/++i;
b->hello(y);
i = i + x;
help();/*$$*/
++x;
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
float A::exp(int & i, B *b, int y, float x)
{
++i;
b->hello(y);
i = i + x;
help();
return x;
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
x = exp(i, b, y, x);
++x;
return i;
}
int A::help()
{
return 42;
}
//@B.h
#ifndef B_H_
#define B_H_
class B
{
public:
B();
virtual ~B();
void hello(float y);
};
#endif /*B_H_*/
//!ExtractFunctionRefactoringTest with Return Value and a lot Ref Parameter
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
replaceduplicates=true
returnvalue=true
//@A.h
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
int exp(int i, B *& b, int & y, float & x);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
/*$*/++i;
b->hello(y);
i = i + x;
help();/*$$*/
b->hello(y);
++x;
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::exp(int i, B *& b, int & y, float & x)
{
++i;
b->hello(y);
i = i + x;
help();
return i;
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
i = exp(i, b, y, x);
b->hello(y);
++x;
return i;
}
int A::help()
{
return 42;
}
//@B.h
#ifndef B_H_
#define B_H_
class B
{
public:
B();
virtual ~B();
void hello(float y);
};
#endif /*B_H_*/
//!ExtractFunctionRefactoringTest with Return Value take the second and Ref Parameter
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
returnparameterindex=1
returnvalue=true
//@A.h
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
#include "B.h"
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
B *exp(int & i, B *b, int & y, float & x);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
/*$*/++i;
b->hello(y);
i = i + x;
help();/*$$*/
b->hello(y);
++x;
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
B *A::exp(int & i, B *b, int & y, float & x)
{
++i;
b->hello(y);
i = i + x;
help();
return b;
}
int A::foo()
{
int i = 2;
float x = i;
B* b = new B();
int y = x + i;
b = exp(i, b, y, x);
b->hello(y);
++x;
return i;
}
int A::help()
{
return 42;
}
//@B.h
#ifndef B_H_
#define B_H_
class B
{
public:
B();
virtual ~B();
void hello(float y);
};
#endif /*B_H_*/
//!ExtractFunctionRefactoringTest protected visibility
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
protected:
void exp(int & i);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
/*$*/++i;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int & i)
{
++i;
help();
}
int A::foo()
{
int i = 2;
exp(i);
return i;
}
int A::help()
{
return 42;
}
//@.config
filename=A.cpp
methodname=exp
replaceduplicates=false
returnvalue=false
returnparameterindex=0
visibility=protected
//!ExtractFunctionRefactoringTest public visibility
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo();
void exp(int & i);
private:
int help();
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo()
{
int i = 2;
/*$*/++i;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int & i)
{
++i;
help();
}
int A::foo()
{
int i = 2;
exp(i);
return i;
}
int A::help()
{
return 42;
}
//@.config
filename=A.cpp
methodname=exp
replaceduplicates=false
returnvalue=false
returnparameterindex=0
visibility=public
//!Bug 288268: c-refactoring creates c++-parameters
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@main.c
int main()
{
int a,b;
/*$*/a = b*2;/*$$*/
return a;
}
//=
void test(int *a, int b)
{
a = b * 2;
}
int main()
{
int a,b;
test(a, b);
return a;
}
//@.config
filename=main.c
methodname=test
replaceduplicates=false
returnvalue=false
//!ExtractFunctionRefactoringTest const Method Bug # 46
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo() const;
private:
int help();
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo() const;
private:
int help();
void exp(int & i) const;
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo() const
{
int i = 2;
/*$*/++i;
help();/*$$*/
return i;
}
int A::help()
{
return 42;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int & i) const
{
++i;
help();
}
int A::foo() const
{
int i = 2;
exp(i);
return i;
}
int A::help()
{
return 42;
}
//@.config
filename=A.cpp
methodname=exp
replaceduplicates=false
returnvalue=false
returnparameterindex=0
//!don't return variables that aren't used
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=main.h
methodname=loop
//@main.h
void method()
{
/*$*/for (int var = 0; var < 100; ++var) {
if(var < 50)
continue;
}/*$$*/
}
//=
void loop()
{
for(int var = 0;var < 100;++var){
if(var < 50)
continue;
}
}
void method()
{
loop();
}
//!don't extract code that contains 'return'
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=main.h
fatalerror=true
//@main.h
void method()
{
/*$*/if(true)
return;/*$$*/
//unreachable
}
//!test if we don't allow to extract 'continue' Bug #53
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
fatalerror=true
filename=A.h
//@A.h
void function()
{
for (int var = 0; var < 100; ++var) {
/*$*/if(var < 50)
continue;/*$$*/
}
}
//! Bug #124 Extract Function with a Macro call in selected code "forgets" the macro
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=runTest
//@Test.cpp
#define ASSERTM(msg,cond) if (!(cond)) throw cute::test_failure((msg),__FILE__,__LINE__)
#define ASSERT(cond) ASSERTM(#cond, cond)
void testFuerRainer(){
int i=int();
/*$*/++i;
//Leading Comment
ASSERT (i);
//Trailling Comment
--i;/*$$*/
}
//=
#define ASSERTM(msg,cond) if (!(cond)) throw cute::test_failure((msg),__FILE__,__LINE__)
#define ASSERT(cond) ASSERTM(#cond, cond)
void runTest(int i)
{
++i;
//Leading Comment
ASSERT (i);
//Trailling Comment
--i;
}
void testFuerRainer(){
int i=int();
runTest(i);
}
//! Bug #124 with comments Extract Function with a Macro call in selected code "forgets" the macro
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=runTest
//@Test.cpp
#define ASSERTM(msg,cond) if (!(cond)) throw cute::test_failure((msg),__FILE__,__LINE__)
#define ASSERT(cond) ASSERTM(#cond, cond)
void testFuerRainer(){
int i=int();
/*$*/++i;
ASSERT (i);
--i;/*$$*/
}
//=
#define ASSERTM(msg,cond) if (!(cond)) throw cute::test_failure((msg),__FILE__,__LINE__)
#define ASSERT(cond) ASSERTM(#cond, cond)
void runTest(int i)
{
++i;
ASSERT (i);
--i;
}
void testFuerRainer(){
int i=int();
runTest(i);
}
//! Bug #137 String Array problem in Extract Function
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=runTest
//@Test.cpp
#include <string>
using namespace std;
int const INITIAL_CAPACITY = 10;
int main(){
int m_capacity;
/*$*/m_capacity += INITIAL_CAPACITY;
string* newElements = new string[m_capacity];/*$$*/
newElements[0] = "s";
}
//=
#include <string>
using namespace std;
int const INITIAL_CAPACITY = 10;
string *runTest(int m_capacity)
{
m_capacity += INITIAL_CAPACITY;
string *newElements = new string[m_capacity];
return newElements;
}
int main(){
int m_capacity;
string *newElements = runTest(m_capacity);
newElements[0] = "s";
}
//!Bug 239059: Double & in signature of extracted functions
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
returnvalue=false
returnparameterindex=0
//@A.h
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo(int& a);
};
#endif /*A_H_*/
//=
#ifndef A_H_
#define A_H_
class A
{
public:
A();
virtual ~A();
int foo(int& a);
private:
void exp(int & a, int b, int c);
};
#endif /*A_H_*/
//@A.cpp
#include "A.h"
A::A()
{
}
A::~A()
{
}
int A::foo(int& a)
{
int b = 7;
int c = 8;
/*$*/a = b + c;/*$$*/
return a;
}
//=
#include "A.h"
A::A()
{
}
A::~A()
{
}
void A::exp(int & a, int b, int c)
{
a = b + c;
}
int A::foo(int& a)
{
int b = 7;
int c = 8;
exp(a, b, c);
return a;
}
//!Bug 241717: Typdef causes void as return type
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
//@Test.h
#ifndef TEST_H_
#define TEST_H_
class RetValueType{
};
typedef RetValueType RetType;
class Test {
public:
Test();
virtual ~Test();
private:
void test();
};
#endif /* TEST_H_ */
//=
#ifndef TEST_H_
#define TEST_H_
class RetValueType{
};
typedef RetValueType RetType;
class Test {
public:
Test();
virtual ~Test();
private:
void test();
RetType exp();
};
#endif /* TEST_H_ */
//@Test.cpp
#include "Test.h"
Test::Test() {
}
Test::~Test() {
}
void Test::test()
{
RetType v = /*$*/RetType()/*$$*/;
}
//=
#include "Test.h"
Test::Test() {
}
Test::~Test() {
}
RetType Test::exp()
{
return RetType();
}
void Test::test()
{
RetType v = exp();
}
//!Bug 248238: Extract Method Produces Wrong Return Type Or Just Fails Classtype
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=startTag
//@testString.h
namespace test{
class string{
public:
friend string operator+(const string& lhs, const string& rhs)
{
return rhs;
}
string operator+(const string& rhs){return rhs;}
string(char* cp){}
string(){};
};
}
//@Test.cpp
#include "testString.h"
test::string toXML() {
test::string name;
name = "hello";
return /*$*/"<" + name + ">"/*$$*/ + "</" + name + ">";
}
int main() {
return 0;
}
//=
#include "testString.h"
test::string startTag(test::string & name)
{
return "<" + name + ">";
}
test::string toXML() {
test::string name;
name = "hello";
return startTag(name) + "</" + name + ">";
}
int main() {
return 0;
}
//!Bug 248238: Extract Method Produces Wrong Return Type Or Just Fails Typedef
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=startTag
//@testString.h
namespace test{
class string2{
public:
friend string2 operator+(const string2& lhs, const string2& rhs)
{
return rhs;
}
string2 operator+(const string2& rhs){return rhs;}
string2(char* cp){}
string2(){};
};
typedef string2 string;
}
//@Test.cpp
#include "testString.h"
test::string toXML() {
test::string name;
name = "hello";
return /*$*/"<" + name + ">"/*$$*/ + "</" + name + ">";
}
int main() {
return 0;
}
//=
#include "testString.h"
test::string startTag(test::string & name)
{
return "<" + name + ">";
}
test::string toXML() {
test::string name;
name = "hello";
return startTag(name) + "</" + name + ">";
}
int main() {
return 0;
}
//!Bug 248622: Extract function fails to extract several expressions; Selection at the end
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=endTag
//@testString.h
namespace test{
class string{
public:
friend string operator+(const string& lhs, const string& rhs)
{
return rhs;
}
string operator+(const string& rhs){return rhs;}
string(char* cp){}
string(){};
};
}
//@Test.cpp
#include "testString.h"
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + ">" + /*$*/"</" + name + ">"/*$$*/;
}
int main() {
return 0;
}
//=
#include "testString.h"
wchar_t endTag(test::string name)
{
return "</" + name + ">";
}
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + ">" + endTag(name);
}
int main() {
return 0;
}
//!Bug 248622: Extract function fails to extract several expressions; Selection in the middle
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=exp
//@testString.h
namespace test{
class string{
public:
friend string operator+(const string& lhs, const string& rhs)
{
return rhs;
}
string operator+(const string& rhs){return rhs;}
string(char* cp){}
string(){};
};
}
//@Test.cpp
#include "testString.h"
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + /*$*/">" + "</"/*$$*/ + name + ">";
}
int main() {
return 0;
}
//=
#include "testString.h"
wchar_t exp()
{
return ">" + "</";
}
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + exp() + name + ">";
}
int main() {
return 0;
}
//!Bug 248622: Extract function fails to extract several expressions; Selection at the end
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=endTag
//@testString.h
namespace test{
class string{
public:
friend string operator+(const string& lhs, const string& rhs)
{
return rhs;
}
string operator+(const string& rhs){return rhs;}
string(char* cp){}
string(){};
};
}
//@Test.cpp
#include "testString.h"
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + ">" + /*$*/"</" + name + ">"/*$$*/;
}
int main() {
return 0;
}
//=
#include "testString.h"
wchar_t endTag(test::string name)
{
return "</" + name + ">";
}
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + ">" + endTag(name);
}
int main() {
return 0;
}
//!Bug 248622: Extract function fails to extract several expressions; Selection in the middle
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=Test.cpp
methodname=exp
//@testString.h
namespace test{
class string{
public:
friend string operator+(const string& lhs, const string& rhs)
{
return rhs;
}
string operator+(const string& rhs){return rhs;}
string(char* cp){}
string(){};
};
}
//@Test.cpp
#include "testString.h"
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + /*$*/">" + "</"/*$$*/ + name + ">";
}
int main() {
return 0;
}
//=
#include "testString.h"
wchar_t exp()
{
return ">" + "</";
}
test::string toXML() {
test::string name;
name = "hello";
return "<" + name + exp() + name + ">";
}
int main() {
return 0;
}
//!Bug#262000 refactoring "extract function" misinterprets artificial blocks
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=main.cpp
methodname=exp
//@main.cpp
int main(int argc, char **argv) {
/*$*/int a = 0;
{
a++;
}/*$$*/
}
//=
void exp()
{
int a = 0;
{
a++;
}
}
int main(int argc, char **argv) {
exp();
}
//!Bug#264712 Refactor extract function deletes comments in header
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=test.cpp
methodname=exp
//@classhelper.h
// Comment
//
// Comment
// Comment
#ifndef utils_classhelper_h_seen
#define utils_classhelper_h_seen
#define IMPORTANT_VALUE 1
#endif
//@test.h
/*
* Copyright 2009
*/
#ifndef test_h_seen
#define test_h_seen
#include "classhelper.h"
class Test
{
public:
/**
* Small class with some comments
*/
Test();
/** Calculate important things.
* @returns the result of the calculation
*/
int calculateStuff();
private:
/**
* Retain a value for something.
*/
int m_value;
};
#endif
//=
/*
* Copyright 2009
*/
#ifndef test_h_seen
#define test_h_seen
#include "classhelper.h"
class Test
{
public:
/**
* Small class with some comments
*/
Test();
/** Calculate important things.
* @returns the result of the calculation
*/
int calculateStuff();
private:
/**
* Retain a value for something.
*/
int m_value;
int exp();
};
#endif
//@test.cpp
#include "test.h"
Test::Test() {}
int Test::calculateStuff() {
// refactor these lines to a new method:
/*$*/int result = m_value;
result += 10;
result *= 10;/*$$*/
return result;
}
//=
#include "test.h"
Test::Test() {}
int Test::exp()
{
// refactor these lines to a new method:
int result = m_value;
result += 10;
result *= 10;
return result;
}
int Test::calculateStuff() {
int result = exp();
return result;
}
//!Bug#281564 Extract Function fails when catching an unnamed exception
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=main.cpp
methodname=exp
//@main.cpp
int myFunc() {
return 5;
}
int main() {
int a = 0;
/*$*/try {
a = myFunc();
}
catch(const int & ){
a = 3;
}/*$$*/
return a;
}
//=
int myFunc() {
return 5;
}
void exp(int & a)
{
try {
a = myFunc();
}
catch(const int & ){
a = 3;
}
}
int main() {
int a = 0;
exp(a);
return a;
}
//!Bug#282004 Refactor->Extract Function in C Project (not C++) won't extract parameters
//#org.eclipse.cdt.ui.tests.refactoring.extractfunction.ExtractFunctionRefactoringTest
//@.config
filename=main.c
methodname=exp
//@main.c
int main()
{
int a,b;
/*$*/b=a*2;/*$$*/
return a;
}
//=
void exp(int b, int *a)
{
b = a * 2;
}
int main()
{
int a,b;
exp(b, a);
return a;
}