1*99451b44SJordan Rupprecht namespace LongNamespaceName { class NestedClass { long m; }; }
2*99451b44SJordan Rupprecht 
3*99451b44SJordan Rupprecht // Defined in other.cpp, we only have a forward declaration here.
4*99451b44SJordan Rupprecht struct ForwardDecl;
5*99451b44SJordan Rupprecht extern ForwardDecl fwd_decl;
6*99451b44SJordan Rupprecht 
7*99451b44SJordan Rupprecht class LongClassName { long i ; };
8*99451b44SJordan Rupprecht 
9*99451b44SJordan Rupprecht class Expr {
10*99451b44SJordan Rupprecht public:
FooNoArgsBar()11*99451b44SJordan Rupprecht     int FooNoArgsBar() { return 1; }
FooWithArgsBar(int i)12*99451b44SJordan Rupprecht     int FooWithArgsBar(int i) { return i; }
FooWithMultipleArgsBar(int i,int j)13*99451b44SJordan Rupprecht     int FooWithMultipleArgsBar(int i, int j) { return i + j; }
FooUnderscoreBar_()14*99451b44SJordan Rupprecht     int FooUnderscoreBar_() { return 4; }
FooNumbersBar1()15*99451b44SJordan Rupprecht     int FooNumbersBar1() { return 8; }
16*99451b44SJordan Rupprecht     int MemberVariableBar = 0;
Self()17*99451b44SJordan Rupprecht     Expr &Self() { return *this; }
StaticMemberMethodBar()18*99451b44SJordan Rupprecht     static int StaticMemberMethodBar() { return 82; }
19*99451b44SJordan Rupprecht };
20*99451b44SJordan Rupprecht 
main()21*99451b44SJordan Rupprecht int main()
22*99451b44SJordan Rupprecht {
23*99451b44SJordan Rupprecht     LongClassName a;
24*99451b44SJordan Rupprecht     LongNamespaceName::NestedClass NestedFoo;
25*99451b44SJordan Rupprecht     long SomeLongVarNameWithCapitals = 44;
26*99451b44SJordan Rupprecht     int SomeIntVar = 33;
27*99451b44SJordan Rupprecht     Expr some_expr;
28*99451b44SJordan Rupprecht     some_expr.FooNoArgsBar();
29*99451b44SJordan Rupprecht     some_expr.FooWithArgsBar(1);
30*99451b44SJordan Rupprecht     some_expr.FooUnderscoreBar_();
31*99451b44SJordan Rupprecht     some_expr.FooNumbersBar1();
32*99451b44SJordan Rupprecht     Expr::StaticMemberMethodBar();
33*99451b44SJordan Rupprecht     ForwardDecl *fwd_decl_ptr = &fwd_decl;
34*99451b44SJordan Rupprecht     return 0; // Break here
35*99451b44SJordan Rupprecht }
36