mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-28 20:46:00 +02:00
Base type null check fix
This commit is contained in:
parent
7fe6082686
commit
764c454261
1 changed files with 41 additions and 38 deletions
|
@ -2892,49 +2892,52 @@ void BfAutoComplete::AddCtorPassthroughs()
|
|||
declMethods.Add(methodInst);
|
||||
}
|
||||
|
||||
for (auto methodDef : baseType->mTypeDef->mMethods)
|
||||
if (baseType != NULL)
|
||||
{
|
||||
if (methodDef->mShow != BfShow_Show)
|
||||
continue;
|
||||
if (methodDef->mProtection < BfProtection_Protected)
|
||||
continue;
|
||||
if (methodDef->mIsStatic)
|
||||
continue;
|
||||
|
||||
auto& methodGroup = baseType->mMethodInstanceGroups[methodDef->mIdx];
|
||||
auto methodInst = methodGroup.mDefault;
|
||||
if (methodInst == NULL)
|
||||
continue;
|
||||
if (methodDef->mMethodType != BfMethodType_Ctor)
|
||||
continue;
|
||||
|
||||
if (methodInst->GetParamCount() == 0)
|
||||
continue;
|
||||
|
||||
bool hasDecl = false;
|
||||
for (auto declMethod : declMethods)
|
||||
for (auto methodDef : baseType->mTypeDef->mMethods)
|
||||
{
|
||||
if (mModule->CompareMethodSignatures(methodInst, declMethod))
|
||||
if (methodDef->mShow != BfShow_Show)
|
||||
continue;
|
||||
if (methodDef->mProtection < BfProtection_Protected)
|
||||
continue;
|
||||
if (methodDef->mIsStatic)
|
||||
continue;
|
||||
|
||||
auto& methodGroup = baseType->mMethodInstanceGroups[methodDef->mIdx];
|
||||
auto methodInst = methodGroup.mDefault;
|
||||
if (methodInst == NULL)
|
||||
continue;
|
||||
if (methodDef->mMethodType != BfMethodType_Ctor)
|
||||
continue;
|
||||
|
||||
if (methodInst->GetParamCount() == 0)
|
||||
continue;
|
||||
|
||||
bool hasDecl = false;
|
||||
for (auto declMethod : declMethods)
|
||||
{
|
||||
hasDecl = true;
|
||||
break;
|
||||
if (mModule->CompareMethodSignatures(methodInst, declMethod))
|
||||
{
|
||||
hasDecl = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (hasDecl)
|
||||
continue;
|
||||
if (hasDecl)
|
||||
continue;
|
||||
|
||||
StringT<512> insertString;
|
||||
GetMethodInfo(methodInst, &insertString, &insertString, true, false);
|
||||
if (insertString.IsEmpty())
|
||||
continue;
|
||||
AddEntry(AutoCompleteEntry("this", insertString), "");
|
||||
StringT<512> insertString;
|
||||
GetMethodInfo(methodInst, &insertString, &insertString, true, false);
|
||||
if (insertString.IsEmpty())
|
||||
continue;
|
||||
AddEntry(AutoCompleteEntry("this", insertString), "");
|
||||
|
||||
int tabPos = (int)insertString.IndexOf('\t');
|
||||
if (tabPos >= 0)
|
||||
{
|
||||
if (!totalInsertString.IsEmpty())
|
||||
totalInsertString += "\r\r";
|
||||
totalInsertString += insertString.Substring(tabPos + 1);
|
||||
int tabPos = (int)insertString.IndexOf('\t');
|
||||
if (tabPos >= 0)
|
||||
{
|
||||
if (!totalInsertString.IsEmpty())
|
||||
totalInsertString += "\r\r";
|
||||
totalInsertString += insertString.Substring(tabPos + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4087,7 +4090,7 @@ void BfAutoComplete::FixitAddConstructor(BfTypeInstance *typeInstance)
|
|||
{
|
||||
auto baseType = typeInstance->mBaseType;
|
||||
auto parser = typeInstance->mTypeDef->GetDefinition()->mSource->ToParser();
|
||||
if (parser != NULL)
|
||||
if ((parser != NULL) && (baseType != NULL))
|
||||
{
|
||||
for (auto methodDef : baseType->mTypeDef->mMethods)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue