mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-11 18:33:14 +01:00
DMD issue 693 & 5946 - Allow using 'this' for alias template parameter
This commit is contained in:
@@ -2795,6 +2795,9 @@ Expression *ThisExp::semantic(Scope *sc)
|
||||
#endif
|
||||
if (type && var)
|
||||
{ //assert(global.errors || var);
|
||||
#if IN_LLVM
|
||||
var->isVarDeclaration()->checkNestedReference(sc, loc);
|
||||
#endif
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@@ -4245,6 +4245,7 @@ void TemplateInstance::semanticTiargs(Loc loc, Scope *sc, Objects *tiargs, int f
|
||||
return;
|
||||
for (size_t j = 0; j < tiargs->dim; j++)
|
||||
{
|
||||
|
||||
Object *o = (Object *)tiargs->data[j];
|
||||
Type *ta = isType(o);
|
||||
Expression *ea = isExpression(o);
|
||||
|
||||
@@ -1324,7 +1324,8 @@ DValue* ThisExp::toElem(IRState* p)
|
||||
// regular this expr
|
||||
if (VarDeclaration* vd = var->isVarDeclaration()) {
|
||||
LLValue* v;
|
||||
if (vd->toParent2() != p->func()->decl) {
|
||||
Dsymbol* vdparent = vd->toParent2();
|
||||
if (vdparent != p->func()->decl) {
|
||||
Logger::println("nested this exp");
|
||||
#if STRUCTTHISREF
|
||||
return DtoNestedVariable(loc, type, vd, type->ty == Tstruct);
|
||||
|
||||
Reference in New Issue
Block a user