Skip to content

Commit 75eeb96

Browse files
author
chen ruixiang
committed
fix bootstrap fail issue
1 parent 21297b9 commit 75eeb96

File tree

1 file changed

+22
-9
lines changed

1 file changed

+22
-9
lines changed

src/program.ts

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3015,19 +3015,32 @@ export abstract class DeclaredElement extends Element {
30153015
// class A implement I, class B extends A implement I
30163016
let selfField = <Field>self;
30173017
let baseProperty = this.program.resolver.resolveProperty(<PropertyPrototype>base);
3018-
3019-
if (!selfField.internalGetterSignature
3020-
|| !baseProperty
3021-
|| !baseProperty.getterInstance
3022-
|| !selfField.internalGetterSignature.isAssignableTo(baseProperty.getterInstance.signature)) {
3018+
if (!selfField.internalGetterSignature || !selfField.internalSetterSignature || !baseProperty) {
30233019
return false;
30243020
}
3025-
if (!selfField.internalSetterSignature
3026-
|| !baseProperty
3027-
|| !baseProperty.setterInstance
3028-
|| !selfField.internalSetterSignature.isAssignableTo(baseProperty.setterInstance.signature)) {
3021+
let baseGetterInsance = baseProperty.getterInstance;
3022+
let baseSetterInsance = baseProperty.setterInstance;
3023+
if (baseGetterInsance && baseSetterInsance) {
3024+
if (!selfField.internalGetterSignature.isAssignableTo(baseGetterInsance.signature)
3025+
|| !selfField.internalSetterSignature.isAssignableTo(baseSetterInsance.signature)) {
3026+
return false;
3027+
}
3028+
} else {
30293029
return false;
30303030
}
3031+
3032+
// if (!selfField.internalGetterSignature
3033+
// || !baseProperty
3034+
// || !baseProperty.getterInstance
3035+
// || !selfField.internalGetterSignature.isAssignableTo(baseProperty.getterInstance.signature)) {
3036+
// return false;
3037+
// }
3038+
// if (!selfField.internalSetterSignature
3039+
// || !baseProperty
3040+
// || !baseProperty.setterInstance
3041+
// || !selfField.internalSetterSignature.isAssignableTo(baseProperty.setterInstance.signature)) {
3042+
// return false;
3043+
// }
30313044
return true;
30323045
}
30333046
return false;

0 commit comments

Comments
 (0)