mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-29 12:55:59 +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);
|
declMethods.Add(methodInst);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto methodDef : baseType->mTypeDef->mMethods)
|
if (baseType != NULL)
|
||||||
{
|
{
|
||||||
if (methodDef->mShow != BfShow_Show)
|
for (auto methodDef : baseType->mTypeDef->mMethods)
|
||||||
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)
|
|
||||||
{
|
{
|
||||||
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;
|
if (mModule->CompareMethodSignatures(methodInst, declMethod))
|
||||||
break;
|
{
|
||||||
|
hasDecl = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if (hasDecl)
|
||||||
if (hasDecl)
|
continue;
|
||||||
continue;
|
|
||||||
|
|
||||||
StringT<512> insertString;
|
StringT<512> insertString;
|
||||||
GetMethodInfo(methodInst, &insertString, &insertString, true, false);
|
GetMethodInfo(methodInst, &insertString, &insertString, true, false);
|
||||||
if (insertString.IsEmpty())
|
if (insertString.IsEmpty())
|
||||||
continue;
|
continue;
|
||||||
AddEntry(AutoCompleteEntry("this", insertString), "");
|
AddEntry(AutoCompleteEntry("this", insertString), "");
|
||||||
|
|
||||||
int tabPos = (int)insertString.IndexOf('\t');
|
int tabPos = (int)insertString.IndexOf('\t');
|
||||||
if (tabPos >= 0)
|
if (tabPos >= 0)
|
||||||
{
|
{
|
||||||
if (!totalInsertString.IsEmpty())
|
if (!totalInsertString.IsEmpty())
|
||||||
totalInsertString += "\r\r";
|
totalInsertString += "\r\r";
|
||||||
totalInsertString += insertString.Substring(tabPos + 1);
|
totalInsertString += insertString.Substring(tabPos + 1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4087,7 +4090,7 @@ void BfAutoComplete::FixitAddConstructor(BfTypeInstance *typeInstance)
|
||||||
{
|
{
|
||||||
auto baseType = typeInstance->mBaseType;
|
auto baseType = typeInstance->mBaseType;
|
||||||
auto parser = typeInstance->mTypeDef->GetDefinition()->mSource->ToParser();
|
auto parser = typeInstance->mTypeDef->GetDefinition()->mSource->ToParser();
|
||||||
if (parser != NULL)
|
if ((parser != NULL) && (baseType != NULL))
|
||||||
{
|
{
|
||||||
for (auto methodDef : baseType->mTypeDef->mMethods)
|
for (auto methodDef : baseType->mTypeDef->mMethods)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue