Browse Source

Fix for a bad declaration of a table been interpreted as a class

mingodad 8 years ago
parent
commit
b5e8601a95
1 changed files with 2 additions and 1 deletions
  1. 2 1
      SquiLu/squirrel/sqcompiler.cpp

+ 2 - 1
SquiLu/squirrel/sqcompiler.cpp

@@ -1587,7 +1587,8 @@ member_has_type:
 				Lex();
 				Lex();
 				obj_id = saved_tok == TK_FUNCTION ? Expect(TK_IDENTIFIER) :
 				obj_id = saved_tok == TK_FUNCTION ? Expect(TK_IDENTIFIER) :
 					_fs->CreateString(saved_tok == TK_CONSTRUCTOR ? _SC("constructor") : _SC("destructor"));
 					_fs->CreateString(saved_tok == TK_CONSTRUCTOR ? _SC("constructor") : _SC("destructor"));
-                CheckClassMemberExists(member_names, obj_id);
+                if(sqtype(member_names) == OT_TABLE) CheckClassMemberExists(member_names, obj_id);
+                else Error(_SC("unexpected error in class declaration"));
 				Expect(_SC('('));
 				Expect(_SC('('));
 function_params_decl:
 function_params_decl:
 				_fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(obj_id));
 				_fs->AddInstruction(_OP_LOAD, _fs->PushTarget(), _fs->GetConstant(obj_id));