mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-27 13:41:48 +00:00
Properly handle 'void' return type when checking signature compatibility
This commit is contained in:
@ -2978,22 +2978,14 @@ export class ClassPrototype extends Element {
|
||||
internalName + INSTANCE_DELIMITER + member.simpleName,
|
||||
this
|
||||
);
|
||||
let partialGetterPrototype = (
|
||||
(<FunctionPrototype>(<Property>member).getterPrototype).resolvePartial(
|
||||
typeArguments
|
||||
)
|
||||
);
|
||||
let partialGetterPrototype = getterPrototype.resolvePartial(typeArguments);
|
||||
if (!partialGetterPrototype) return null;
|
||||
partialGetterPrototype.internalName = (
|
||||
internalName + INSTANCE_DELIMITER + partialGetterPrototype.simpleName
|
||||
);
|
||||
instanceProperty.getterPrototype = partialGetterPrototype;
|
||||
if (setterPrototype) {
|
||||
let partialSetterPrototype = (
|
||||
(<FunctionPrototype>(<Property>member).setterPrototype).resolvePartial(
|
||||
typeArguments
|
||||
)
|
||||
);
|
||||
let partialSetterPrototype = setterPrototype.resolvePartial(typeArguments);
|
||||
if (!partialSetterPrototype) return null;
|
||||
partialSetterPrototype.internalName = (
|
||||
internalName + INSTANCE_DELIMITER + partialSetterPrototype.simpleName
|
||||
@ -3003,10 +2995,7 @@ export class ClassPrototype extends Element {
|
||||
instance.members.set(member.simpleName, instanceProperty);
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
assert(false);
|
||||
break;
|
||||
}
|
||||
default: assert(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -539,7 +539,9 @@ export class Signature {
|
||||
}
|
||||
|
||||
// check return type
|
||||
return this.returnType.isAssignableTo(target.returnType);
|
||||
var thisReturnType = this.returnType;
|
||||
var targetReturnType = target.returnType;
|
||||
return thisReturnType == targetReturnType || this.returnType.isAssignableTo(target.returnType);
|
||||
}
|
||||
|
||||
/** Converts this signature to a function type string. */
|
||||
|
Reference in New Issue
Block a user