• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rokucommunity / brighterscript / #15206

17 Feb 2026 03:02PM UTC coverage: 87.225% (-1.8%) from 88.983%
#15206

push

web-flow
Merge 2d7f70d32 into 9e8e06b33

14658 of 17758 branches covered (82.54%)

Branch coverage included in aggregate %.

5 of 5 new or added lines in 2 files covered. (100.0%)

845 existing lines in 48 files now uncovered.

15418 of 16723 relevant lines covered (92.2%)

24856.51 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.89
/src/types/InterfaceType.ts
1
import type { TypeCompatibilityData } from '../interfaces';
2
import { SymbolTypeFlag } from '../SymbolTypeFlag';
1✔
3
import { isCallFuncableTypeLike, isDynamicType, isInterfaceType, isInvalidType, isObjectType } from '../astUtils/reflection';
1✔
4
import type { BscType } from './BscType';
5
import { BscTypeKind } from './BscTypeKind';
1✔
6
import { isUnionTypeCompatible } from './helpers';
1✔
7
import type { ReferenceType } from './ReferenceType';
8
import { CallFuncableType } from './CallFuncableType';
1✔
9

10
export class InterfaceType extends CallFuncableType {
1✔
11
    public constructor(
12
        public name: string,
379,837✔
13
        public readonly superInterface?: InterfaceType | ReferenceType
379,837✔
14
    ) {
15
        super(name, superInterface);
379,837✔
16
    }
17

18
    public readonly kind = BscTypeKind.InterfaceType;
379,837✔
19

20
    public isTypeCompatible(targetType: BscType, data?: TypeCompatibilityData) {
21
        if (isInvalidType(targetType) ||
138✔
22
            isDynamicType(targetType) ||
23
            isObjectType(targetType) ||
24
            isUnionTypeCompatible(this, targetType, data)) {
25
            return true;
6✔
26
        }
27
        if (isCallFuncableTypeLike(targetType)) {
132✔
28
            return this.checkCompatibilityBasedOnMembers(targetType, SymbolTypeFlag.runtime, data) &&
59✔
29
                this.checkCompatibilityBasedOnMembers(targetType, SymbolTypeFlag.runtime, data, this.callFuncMemberTable, targetType.callFuncMemberTable);
30
        }
31

32
        const ancestorTypes = this.getAncestorTypeList();
73✔
33
        if (ancestorTypes?.find(ancestorType => ancestorType.isEqual(targetType))) {
73!
UNCOV
34
            return true;
×
35
        }
36
        return this.checkCompatibilityBasedOnMembers(targetType, SymbolTypeFlag.runtime, data);
73✔
37
    }
38

39
    /**
40
     *  Is this the exact same interface as the target?
41
     */
42
    isEqual(targetType: BscType, data?: TypeCompatibilityData): boolean {
43
        return isInterfaceType(targetType) && super.isEqual(targetType, data);
141✔
44
    }
45
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc