From 22fc226448518ce51adc62e9fe1aa01caaab004a Mon Sep 17 00:00:00 2001 From: Jerome St-Louis Date: Wed, 3 Aug 2016 02:58:00 -0400 Subject: [PATCH] ecere/com/templates: Tweaks to avoid 'AT' class being left declared - Updated boostrap --- compiler/bootstrap/ecc/bootstrap/ecc.c | 2 +- compiler/bootstrap/ecere/bootstrap/instance.c | 8 ++++---- compiler/bootstrap/ecp/bootstrap/ecp.c | 2 +- ecere/src/com/instance.ec | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/compiler/bootstrap/ecc/bootstrap/ecc.c b/compiler/bootstrap/ecc/bootstrap/ecc.c index 4b0507a..75752a9 100644 --- a/compiler/bootstrap/ecc/bootstrap/ecc.c +++ b/compiler/bootstrap/ecc/bootstrap/ecc.c @@ -957,7 +957,7 @@ c++; else valid = 0; } -else if(!strcmp(arg + 1, "isystem") || !strcmp(arg + 1, "isysroot")) +else if(!strcmp(arg + 1, "isystem") || !strcmp(arg + 1, "isysroot") || !strcmp(arg + 1, "s")) { if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc) { diff --git a/compiler/bootstrap/ecere/bootstrap/instance.c b/compiler/bootstrap/ecere/bootstrap/instance.c index e00ee5b..4e20cdd 100644 --- a/compiler/bootstrap/ecere/bootstrap/instance.c +++ b/compiler/bootstrap/ecere/bootstrap/instance.c @@ -5534,11 +5534,11 @@ switch(curParam->type) { case 0: argument.__anon1.__anon1.dataTypeString = __ecereNameSpace__ecere__sys__CopyString(value); -argument.__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__System_FindClass(findModule, value, 1); +argument.__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__System_FindClass(findModule, value, registerInternalDecl); if(!argument.__anon1.__anon1.dataTypeClass) -argument.__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__System_FindClass(_class->module, value, 1); +argument.__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__System_FindClass(_class->module, value, registerInternalDecl); if(!argument.__anon1.__anon1.dataTypeClass) -argument.__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__System_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application, value, 1); +argument.__anon1.__anon1.dataTypeClass = __ecereNameSpace__ecere__com__System_FindClass(((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->application, value, registerInternalDecl); if(registerInternalDecl && !argument.__anon1.__anon1.dataTypeClass) { struct __ecereNameSpace__ecere__com__ClassTemplateParameter * param; @@ -6124,7 +6124,7 @@ static void __ecereNameSpace__ecere__com__FixDerivativesBase(struct __ecereNameS { struct __ecereNameSpace__ecere__sys__OldLink * derivative; -__ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)), 1); +__ecereNameSpace__ecere__com__ComputeClassParameters(base, strchr(base->name, '<'), (((void *)0)), base->templateClass != mod); for(derivative = base->derivatives.first; derivative; derivative = derivative->next) { struct __ecereNameSpace__ecere__com__Class * _class = derivative->data; diff --git a/compiler/bootstrap/ecp/bootstrap/ecp.c b/compiler/bootstrap/ecp/bootstrap/ecp.c index 0f8294c..1265548 100644 --- a/compiler/bootstrap/ecp/bootstrap/ecp.c +++ b/compiler/bootstrap/ecp/bootstrap/ecp.c @@ -2812,7 +2812,7 @@ c++; else valid = 0; } -else if(!strcmp(arg + 1, "isystem") || !strcmp(arg + 1, "isysroot")) +else if(!strcmp(arg + 1, "isystem") || !strcmp(arg + 1, "isysroot") || !strcmp(arg + 1, "s")) { if(c + 1 < ((struct __ecereNameSpace__ecere__com__Application *)(((char *)this + sizeof(struct __ecereNameSpace__ecere__com__Module) + sizeof(struct __ecereNameSpace__ecere__com__Instance))))->argc) { diff --git a/ecere/src/com/instance.ec b/ecere/src/com/instance.ec index 3f947c6..4b43127 100644 --- a/ecere/src/com/instance.ec +++ b/ecere/src/com/instance.ec @@ -2089,7 +2089,7 @@ static void FixDerivativesBase(Class base, Class mod) { OldLink derivative; - ComputeClassParameters(base, strchr(base.name, '<'), null, true); + ComputeClassParameters(base, strchr(base.name, '<'), null, base.templateClass != mod); for(derivative = base.derivatives.first; derivative; derivative = derivative.next) { @@ -3711,11 +3711,11 @@ static void ComputeClassParameters(Class templatedClass, const char * templatePa { case type: argument.dataTypeString = CopyString(value); - argument.dataTypeClass = System_FindClass(findModule, value, true); + argument.dataTypeClass = System_FindClass(findModule, value, registerInternalDecl); if(!argument.dataTypeClass) - argument.dataTypeClass = System_FindClass(_class.module, value, true); + argument.dataTypeClass = System_FindClass(_class.module, value, registerInternalDecl); if(!argument.dataTypeClass) - argument.dataTypeClass = System_FindClass(_class.module.application, value, true); + argument.dataTypeClass = System_FindClass(_class.module.application, value, registerInternalDecl); if(registerInternalDecl && !argument.dataTypeClass) { ClassTemplateParameter param; -- 1.8.3.1