Changeset 209
- Timestamp:
- 07/06/06 07:05:40 (2 years ago)
- Files:
-
- trunk/meta/demangle.d (modified) (1 diff)
- trunk/meta/nameof.d (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/meta/demangle.d
r208 r209 239 239 static if (getLnameConsumed!(str)==str.length) { 240 240 const char [] getQualifiedName = prettyLname!(getLname!(str), wantQualifiedNames); 241 } else const char [] getQualifiedName = getQualifiedName!(str[getLnameConsumed!(str) .. $], wantQualifiedNames, ""); 241 } else static if ( isdigit!(( str[getLnameConsumed!(str)] ))) { 242 const char [] getQualifiedName = getQualifiedName!(str[getLnameConsumed!(str) .. $], wantQualifiedNames, ""); 243 } else const char [] getQualifiedName = prettyLname!(getLname!(str), wantQualifiedNames); 242 244 } else { 243 245 // Qualified and pretty names trunk/meta/nameof.d
r208 r209 99 99 } 100 100 101 102 101 /** 103 102 * Returns the qualified name of the symbol A. … … 160 159 static assert( prettytypeof!(OuterClass.SomeClass) == "class " ~ THISFILE ~".OuterClass.SomeClass"); 161 160 161 // Test that it works with module names (for example, this module) 162 static assert( qualifiednameof!(meta.nameof) == "meta.nameof"); 163 static assert( symbolnameof!(meta.nameof) == "nameof"); 164 162 165 static assert( prettynameof!(SomeInt) 163 166 == "enum " ~ THISFILE ~ ".SomeEnum " ~ THISFILE ~ ".SomeInt"); 164 167 static assert( qualifiednameof!(OuterClass) == THISFILE ~".OuterClass"); 165 //static assert( symbolnameof!(SomeInt) == "SomeInt");168 static assert( symbolnameof!(SomeInt) == "SomeInt"); 166 169 167 170 static assert( prettynameof!(inner!( MyInt!(68u) )) 168 171 == "class " ~ THISFILE ~ ".inner!(" ~ THISFILE ~ ".MyInt!(uint = 68)).inner"); 172 static assert( symbolnameof!(inner!( MyInt!(68u) )) == "inner"); 169 173 static assert( prettynameof!(ClassTemplate!(OuterClass.SomeClass)) 170 174 == "class "~ THISFILE ~ ".ClassTemplate!(class "~ THISFILE ~ ".OuterClass.SomeClass).ClassTemplate"); 175 static assert( symbolnameof!(ClassTemplate!(OuterClass.SomeClass)) == "ClassTemplate"); 171 176 172 177 // Extern(D) declarations have full type information. … … 175 180 static assert( prettynameof!(pig) == "int " ~ THISFILE ~ ".pig()"); 176 181 static assert( prettynameof!(pog) == "int " ~ THISFILE ~ ".pog"); 182 static assert( symbolnameof!(pig) == "pig"); 177 183 178 184 // Extern(Windows) declarations contain no type information. … … 197 203 ~ THISFILE ~ ".OuterClass).aardvark(short).wolf"); 198 204 static assert(qualifiednameof!(wolf)== THISFILE ~ ".aardvark.aardvark.wolf"); 205 static assert( symbolnameof!(wolf) == "wolf"); 199 206 return 3; 200 207 } … … 214 221 static assert(prettynameof!(fox)== "class void " ~ THISFILE ~ ".wolf().fox!(cfloat, int = 21).fox"); 215 222 static assert(qualifiednameof!(fox)== THISFILE ~ ".wolf.fox.fox"); 216 } 217 218 } 223 static assert(symbolnameof!(fox)== "fox"); 224 } 225 226 }
