Mercurial > projects > ddmd
diff dmd/Type.d @ 51:b7d29f613539
StaticAssertStatement.syntaxCopy
IfStatement.syntaxCopy
CompoundDeclarationStatement.syntaxCopy
VoidInitializer.syntaxCopy
TypeAArray.syntaxCopy
TypeTypeof.syntaxCopy
TypeAArray.resolve
TypeSArray.deduceType
TypeAArray.deduceType
TypeAArray.implicitConvTo
TemplateDeclaration.leastAsSpecialized
TemplateTypeParameter.dummyArg
TypeIdentifier.deduceType
TemplateTypeParameter.syntaxCopy
Lexer.hexStringConstant
Lexer.delimitedStringConstant
GotoDefaultStatement.ctor
CaseRangeStatement.ctor
Type.castMod
StorageClassDeclaration.syntaxCopy
TemplateDeclaration.syntaxCopy
author | korDen |
---|---|
date | Sat, 21 Aug 2010 11:17:42 +0400 |
parents | ccbc1e0bb3f0 |
children | a8b50ff7f201 |
line wrap: on
line diff
--- a/dmd/Type.d Sat Aug 21 10:38:26 2010 +0400 +++ b/dmd/Type.d Sat Aug 21 11:17:42 2010 +0400 @@ -1373,9 +1373,39 @@ } } + /************************************ + * Apply MODxxxx bits to existing type. + */ Type castMod(uint mod) { - assert(false); + Type t; + + switch (mod) + { + case 0: + t = mutableOf(); + break; + + case MODconst: + t = constOf(); + break; + + case MODinvariant: + t = invariantOf(); + break; + + case MODshared: + t = sharedOf(); + break; + + case MODshared | MODconst: + t = sharedConstOf(); + break; + + default: + assert(0); + } + return t; } /************************************