Mercurial > projects > ddmd
diff dmd/TypeIdentifier.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 | 10317f0c89a5 |
children | 2e2a5c3f943a |
line wrap: on
line diff
--- a/dmd/TypeIdentifier.d Sat Aug 21 10:38:26 2010 +0400 +++ b/dmd/TypeIdentifier.d Sat Aug 21 11:17:42 2010 +0400 @@ -158,7 +158,21 @@ MATCH deduceType(Scope sc, Type tparam, TemplateParameters parameters, Objects dedtypes) { - assert(false); + // Extra check + if (tparam && tparam.ty == Tident) + { + TypeIdentifier tp = cast(TypeIdentifier)tparam; + + for (int i = 0; i < idents.dim; i++) + { + Identifier id1 = cast(Identifier)idents.data[i]; + Identifier id2 = cast(Identifier)tp.idents.data[i]; + + if (!id1.equals(id2)) + return MATCHnomatch; + } + } + return Type.deduceType(sc, tparam, parameters, dedtypes); } Type reliesOnTident()