Fix method overloading
parent
8b7410f803
commit
02133d0bd4
|
@ -33,6 +33,7 @@
|
||||||
#include "CBot/CBotExternalCall.h"
|
#include "CBot/CBotExternalCall.h"
|
||||||
#include "CBot/CBotStack.h"
|
#include "CBot/CBotStack.h"
|
||||||
#include "CBot/CBotCStack.h"
|
#include "CBot/CBotCStack.h"
|
||||||
|
#include "CBot/CBotDefParam.h"
|
||||||
#include "CBot/CBotUtils.h"
|
#include "CBot/CBotUtils.h"
|
||||||
#include "CBot/CBotFileUtils.h"
|
#include "CBot/CBotFileUtils.h"
|
||||||
#include "CBot/CBotCallMethode.h"
|
#include "CBot/CBotCallMethode.h"
|
||||||
|
@ -604,9 +605,14 @@ bool CBotClass::CompileDefItem(CBotToken* &p, CBotCStack* pStack, bool bSecond)
|
||||||
// return a method precompiled in pass 1
|
// return a method precompiled in pass 1
|
||||||
CBotFunction* pf = m_pMethod;
|
CBotFunction* pf = m_pMethod;
|
||||||
CBotFunction* prev = nullptr;
|
CBotFunction* prev = nullptr;
|
||||||
while ( pf != nullptr )
|
CBotToken* ppp = p;
|
||||||
|
CBotCStack* pStk = pStack->TokenStack(nullptr, true);
|
||||||
|
CBotDefParam* params = CBotDefParam::Compile(p, pStk );
|
||||||
|
delete pStk;
|
||||||
|
p = ppp;
|
||||||
|
while ( pf != nullptr ) // search by name and parameters
|
||||||
{
|
{
|
||||||
if (pf->GetName() == pp) break;
|
if (pf->GetName() == pp && pf->CheckParam( params )) break;
|
||||||
prev = pf;
|
prev = pf;
|
||||||
pf = pf->Next();
|
pf = pf->Next();
|
||||||
}
|
}
|
||||||
|
@ -708,7 +714,7 @@ bool CBotClass::CompileDefItem(CBotToken* &p, CBotCStack* pStack, bool bSecond)
|
||||||
i = CBotTwoOpExpr::Compile(p, pStack);
|
i = CBotTwoOpExpr::Compile(p, pStack);
|
||||||
|
|
||||||
if ( !(type.Eq(CBotTypPointer) && pStack->GetTypResult().Eq(CBotTypNullPointer)) &&
|
if ( !(type.Eq(CBotTypPointer) && pStack->GetTypResult().Eq(CBotTypNullPointer)) &&
|
||||||
!TypesCompatibles( type, pStack->GetTypResult()) )
|
!TypesCompatibles( type2, pStack->GetTypResult()) )
|
||||||
{
|
{
|
||||||
pStack->SetError(CBotErrBadType1, p->GetStart());
|
pStack->SetError(CBotErrBadType1, p->GetStart());
|
||||||
return false;
|
return false;
|
||||||
|
|
Loading…
Reference in New Issue