Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion MangoFix/Compiler/AST/MFClassDefinition.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ typedef NS_ENUM(NSUInteger, MFPropertyModifier) {

@property (assign, nonatomic) NSUInteger lineNumber;
@property (copy, nonatomic) NSString *name;
@property (copy, nonatomic) NSString *superNmae;
@property (copy, nonatomic) NSString *superName;
@property (strong, nonatomic) NSArray<NSString *> *protocolNames;
@property (strong, nonatomic) NSArray<MFPropertyDefinition *> *properties;
@property (strong, nonatomic) NSArray<MFMethodDefinition *> *classMethods;
Expand Down
2 changes: 1 addition & 1 deletion MangoFix/Compiler/create.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ MFReturnStatement *mf_create_return_statement(MFExpression *retValExpr);

MFBlockBody *mf_close_block_statement( MFBlockBody *block, NSArray<MFStatement *> *statementList);

void mf_start_class_definition(MFExpression *annotaionIfConditionExpr, NSString *name, NSString *superNmae, NSArray<NSString *> *protocolNames);
void mf_start_class_definition(MFExpression *annotaionIfConditionExpr, NSString *name, NSString *superName, NSArray<NSString *> *protocolNames);

MFClassDefinition *mf_end_class_definition(NSArray<MFMemberDefinition *> *members);

Expand Down
4 changes: 2 additions & 2 deletions MangoFix/Compiler/create.m
Original file line number Diff line number Diff line change
Expand Up @@ -511,13 +511,13 @@ void mf_build_block_expr(MFBlockExpression *expr, MFTypeSpecifier *returnTypeSpe
}


void mf_start_class_definition(MFExpression *annotaionIfConditionExpr, NSString *name, NSString *superNmae, NSArray<NSString *> *protocolNames){
void mf_start_class_definition(MFExpression *annotaionIfConditionExpr, NSString *name, NSString *superName, NSArray<NSString *> *protocolNames){
MFInterpreter *interpreter = mf_get_current_compile_util();
MFClassDefinition *classDefinition = [[MFClassDefinition alloc] init];
classDefinition.lineNumber = interpreter.currentLineNumber;
classDefinition.annotationIfConditionExpr = annotaionIfConditionExpr;
classDefinition.name = name;
classDefinition.superNmae = superNmae;
classDefinition.superName = superName;
classDefinition.protocolNames = protocolNames;
interpreter.currentClassDefinition = classDefinition;
}
Expand Down
16 changes: 8 additions & 8 deletions MangoFix/Compiler/lex_yacc/mango.y
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,8 @@ class_definition: annotation_if CLASS IDENTIFIER COLON IDENTIFIER LC
{
MFExpression *annotaionIfConditionExpr = (__bridge_transfer MFExpression *)$1;
NSString *name = (__bridge_transfer NSString *)$3;
NSString *superNmae = (__bridge_transfer NSString *)$5;
mf_start_class_definition(annotaionIfConditionExpr, name, superNmae,nil);
NSString *superName = (__bridge_transfer NSString *)$5;
mf_start_class_definition(annotaionIfConditionExpr, name, superName,nil);
}
RC
{
Expand All @@ -187,8 +187,8 @@ class_definition: annotation_if CLASS IDENTIFIER COLON IDENTIFIER LC
{
MFExpression *annotaionIfConditionExpr = (__bridge_transfer MFExpression *)$1;
NSString *name = (__bridge_transfer NSString *)$3;
NSString *superNmae = (__bridge_transfer NSString *)$5;
mf_start_class_definition(annotaionIfConditionExpr, name, superNmae,nil);
NSString *superName = (__bridge_transfer NSString *)$5;
mf_start_class_definition(annotaionIfConditionExpr, name, superName,nil);
}
member_definition_list RC
{
Expand All @@ -200,9 +200,9 @@ class_definition: annotation_if CLASS IDENTIFIER COLON IDENTIFIER LC
{
MFExpression *annotaionIfConditionExpr = (__bridge_transfer MFExpression *)$1;
NSString *name = (__bridge_transfer NSString *)$3;
NSString *superNmae = (__bridge_transfer NSString *)$5;
NSString *superName = (__bridge_transfer NSString *)$5;
NSArray *protocolNames = (__bridge_transfer NSArray *)$7;
mf_start_class_definition(annotaionIfConditionExpr, name, superNmae,protocolNames);
mf_start_class_definition(annotaionIfConditionExpr, name, superName,protocolNames);
}
RC
{
Expand All @@ -213,9 +213,9 @@ class_definition: annotation_if CLASS IDENTIFIER COLON IDENTIFIER LC
{
MFExpression *annotaionIfConditionExpr = (__bridge_transfer MFExpression *)$1;
NSString *name = (__bridge_transfer NSString *)$3;
NSString *superNmae = (__bridge_transfer NSString *)$5;
NSString *superName = (__bridge_transfer NSString *)$5;
NSArray *protocolNames = (__bridge_transfer NSArray *)$7;
mf_start_class_definition(annotaionIfConditionExpr, name, superNmae,protocolNames);
mf_start_class_definition(annotaionIfConditionExpr, name, superName,protocolNames);
}
member_definition_list RC
{
Expand Down
6 changes: 3 additions & 3 deletions MangoFix/Execute/execute.m
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ static void define_class(MFInterpreter *interpreter,MFClassDefinition *classDefi

Class clazz = NSClassFromString(classDefinition.name);
if (!clazz) {
NSString *superClassName = classDefinition.superNmae;
NSString *superClassName = classDefinition.superName;
Class superClass = NSClassFromString(superClassName);
if (!superClass) {
define_class(interpreter, interpreter.classDefinitionDic[superClassName]);
Expand All @@ -425,8 +425,8 @@ static void define_class(MFInterpreter *interpreter,MFClassDefinition *classDefi
}else{
Class superClass = class_getSuperclass(clazz);
char const *superClassName = class_getName(superClass);
if (strcmp(classDefinition.superNmae.UTF8String, superClassName)) {
mf_throw_error(classDefinition.lineNumber, @"MFRuntimeErrorSuperClassNoMatch", @"MangoFix class: %@:%@, but Objective-C class: %@:%s",classDefinition.name,classDefinition.superNmae, classDefinition.name, superClassName);
if (strcmp(classDefinition.superName.UTF8String, superClassName)) {
mf_throw_error(classDefinition.lineNumber, @"MFRuntimeErrorSuperClassNoMatch", @"MangoFix class: %@:%@, but Objective-C class: %@:%s",classDefinition.name,classDefinition.superName, classDefinition.name, superClassName);
return;
}
}
Expand Down