From 17b29c7227cedd439632698b4e5d585eda10142d Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 23 Mar 2022 17:07:31 -0700 Subject: [PATCH] Fixed attempt to declare base type for an interface --- IDEHelper/Compiler/BfModuleTypeUtils.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfModuleTypeUtils.cpp b/IDEHelper/Compiler/BfModuleTypeUtils.cpp index 9c9155ac..6b58326f 100644 --- a/IDEHelper/Compiler/BfModuleTypeUtils.cpp +++ b/IDEHelper/Compiler/BfModuleTypeUtils.cpp @@ -3827,6 +3827,12 @@ void BfModule::DoPopulateType(BfType* resolvedTypeRef, BfPopulateType populateTy } } + if ((typeInstance->IsInterface()) && (baseTypeInst != NULL)) + { + Fail("Interfaces cannot declare base types", baseTypeRef, true); + baseTypeInst = NULL; + } + if ((baseTypeInst != NULL) && (typeInstance->mBaseType == NULL)) { if (typeInstance->mTypeFailed) @@ -3848,14 +3854,12 @@ void BfModule::DoPopulateType(BfType* resolvedTypeRef, BfPopulateType populateTy if ((resolvedTypeRef->IsObject()) && (!baseTypeInst->IsObject())) { Fail("Class can only derive from another class", baseTypeRef, true); - //typeInstance->mTypeFailed = true; baseTypeInst = defaultBaseTypeInst; typeInstance->mBaseType = baseTypeInst; } else if ((resolvedTypeRef->IsStruct()) && (!baseTypeInst->IsValueType())) { Fail("Struct can only derive from another struct", baseTypeRef, true); - //typeInstance->mTypeFailed = true; baseTypeInst = defaultBaseTypeInst; typeInstance->mBaseType = baseTypeInst; }