summaryrefslogtreecommitdiff
path: root/src/lookup.cc
diff options
context:
space:
mode:
authorAdrian Thurston <thurston@complang.org>2015-08-08 11:40:19 -0400
committerAdrian Thurston <thurston@complang.org>2015-08-08 11:40:19 -0400
commit42314c5f0f87c45f6968c7c8fcfbfb8eae9f8ad6 (patch)
treeb5d7d144fe4be7181e3cd4c4292ef9efd6b2805e /src/lookup.cc
parent835c359b551831b8272dc71e5feaf702aa189576 (diff)
downloadcolm-42314c5f0f87c45f6968c7c8fcfbfb8eae9f8ad6.tar.gz
moved MethodMap into NameScope, converted some ptrs to objs
Diffstat (limited to 'src/lookup.cc')
-rw-r--r--src/lookup.cc16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/lookup.cc b/src/lookup.cc
index 90e8c051..ea4885d2 100644
--- a/src/lookup.cc
+++ b/src/lookup.cc
@@ -49,7 +49,7 @@ ObjectDef *UniqueType::objectDef()
ObjectField *ObjectDef::findFieldInScope( const NameScope *inScope,
const String &name ) const
{
- FieldMapEl *objDefMapEl = inScope->fieldMap->find( name );
+ FieldMapEl *objDefMapEl = inScope->fieldMap.find( name );
if ( objDefMapEl != 0 )
return objDefMapEl->value;
if ( inScope->parentScope != 0 )
@@ -62,9 +62,9 @@ ObjectField *NameScope::findField( const String &name ) const
return owner->findFieldInScope( this, name );
}
-ObjectMethod *ObjectDef::findMethod( const String &name ) const
+ObjectMethod *NameScope::findMethod( const String &name ) const
{
- MethodMapEl *methodMapEl = methodMap->find( name );
+ MethodMapEl *methodMapEl = methodMap.find( name );
if ( methodMapEl != 0 )
return methodMapEl->value;
return 0;
@@ -125,7 +125,7 @@ bool LangVarRef::isLocalRef() const
}
else if ( scope->findField( name ) != 0 )
return true;
- else if ( scope->owner->findMethod( name ) != 0 )
+ else if ( scope->findMethod( name ) != 0 )
return true;
return false;
@@ -140,7 +140,7 @@ bool LangVarRef::isContextRef() const
}
else if ( context->objectDef->rootScope->findField( name ) != 0 )
return true;
- else if ( context->objectDef->findMethod( name ) != 0 )
+ else if ( context->objectDef->rootScope->findMethod( name ) != 0 )
return true;
}
@@ -218,8 +218,7 @@ VarRefLookup LangVarRef::lookupMethod( Compiler *pd ) const
VarRefLookup lookup = lookupObj( pd );
/* Find the method. */
- assert( lookup.inObject->methodMap != 0 );
- ObjectMethod *method = lookup.inObject->findMethod( name );
+ ObjectMethod *method = lookup.inScope->findMethod( name );
if ( method == 0 ) {
/* Not found as a method, try it as an object on which we will call a
* default function. */
@@ -229,8 +228,7 @@ VarRefLookup LangVarRef::lookupMethod( Compiler *pd ) const
VarRefLookup lookup = lookupObj( pd );
/* Find the method. */
- assert( lookup.inObject->methodMap != 0 );
- method = lookup.inObject->findMethod( "finish" );
+ method = lookup.inScope->findMethod( "finish" );
if ( method == 0 )
error(loc) << "cannot find " << name << "(...) in object" << endp;
}