Skip to content

jquery tests failure on Definitely Typed #55583

Closed as not planned
Closed as not planned
@navya9singh

Description

@navya9singh

🔎 Search Terms

overloads, jquery

🕗 Version & Regression Information

This is a crash in jquery tests on Definitely Typed https://dev.azure.com/definitelytyped/DefinitelyTyped/_build/results?buildId=162795&view=logs&j=9d906afe-3eb5-5d79-316d-86f3f3fa360c&t=09716206-abc7-5ba2-2ea2-6c6fe97a3aad because of #54448

⏯ Playground Link

https://www.typescriptlang.org/play?ts=5.3.0-dev.20230831#code/JYOwLgpgTgZghgYwgAgFIEZkG9kGtQAmAXMgOQakDcyAvgFCiSyIqoBM2ehJ5bVtDcNHhI0AZk74QxMqjH96jYSzQAWSd1mqFgpiNYBWDdJ6oDOpc1GoAbMZnkbFoVdYB2e6bfO9K1AA5PWX8fZWsATiDycJ1dMJQAFQALCBA4ACMAGwgAHgSAPmQIAA9IaQBnZAAFKAB7AFtgcogAGWBcXILOejjXarrG5oAhOGa8gCUAGmQE1GmEgDlJumRVtdWAVSnkDbmdpZX1tYA1beO944OjtYBlbZu9m4XCrDpD67AUkByAQXGAEWQAF5kCAIAA3aDTH6oQEgsGQqDQhZw0EQqHva5rIYA4FoxHTIawvEIqHIIYoknopGYrHIADCuPh1Om9OJzIJDMpHIxdPW4yZ+LJ43ZQqRyHG3LFyz5az+ADEqZyYYqeeKfgtVdLaVicVrSeKifqWeTNUrebKGeNjZy2TayfSzWqZZaBfbxSL3dNJV6ddc-lVzerUIHncgNaHtZbyeNIwbCSGg4SFnGWX6jozU7bE2HHVmLbKBfmPTnpRKU0H8gAKdN0gi1MHy4CZJgkKtgEgJbYAVxIW2m4JIp2mADox+USHcANoAXQAlMDCjUGk0ICMxn9-tDYcit7XLTit+Sd6a99G6Yyj2yryiXeejgKjyKnyjCgAfGZfDLZX4A9-hgE73PeBmybFtoDbDsZj2Xsdj2QdkHOUdx0nVBZwXIElwGVd11yBVt3lZFCP3WU9QTQjTWI+9rkZCi7VZTUgOoiVrW9VAKJ9f9klSb88Otf98JIo4AAc6gAcygCBynKMDW2QdtOyWZBYI2JSEMuZCRwnZAnnQxd+hXYZRj4qpt1M8MUyY6icXMolbMsoSL1jVkQwY0zHKxIs2PMyUqi4r8sjwlMBJTOcSGXQY12M39AQ-BVkDi5zw2JOL2IS5LzI1WKLMVOKHOjQ90r1IqkqJbKjSK1zTyKs0Pwpdzo0vdLaOapLr2atKPzZczHWyx1cq5BrXVxD83XSryJRSyaBpFHzKVG2ryz8yg3jpT5UhipNktReMLJ2tMCsFXayq2il9oJISmtzUVdt6pMhMfLbnyeqV4yE+KwxVLaNV9Q6vWPf6KV+y0Wuu-7+vu6MxrDT0XvdasPNWetG2bOSFJmHs+22dTtjHLTJ3GPTMIMyLcJi7cjyyqz70PBMjzO6nz0vFybzPZi1kfNiX3+fyeMCmKBMAxHkBAzJZIg+SoNmaYVPgoc9jx7SHiJrDDKijdWOSiifsZv7yOTKj2dWWiXLoxjhf5TXPW9TVebSfmFUFw371E2oJKkmTUegAB+EgQG7TJMjCkmcOizd0vw7aI-Y3cI-Nw7ys1k66pj6q6vjkGRqtOipvork+ozwss7dLnxtTyVss4la6XTdbvnDz6bpNLLIYPI6TROsMztb2UrrLdrc1eg7hvO4Um85CvKxrZjkYgcWoEgztMZ2bGh1xlCdMJ+d9Ii0ONcpk8qYt7FAOPenb2P43T+vBi2aNznJu5u3eIFiOheY0X5990EA8yXWsVdu7aSX8-a-2DrvIy+8Ka7n-qsWmZ9kx3z5MzBkJ5eqwJYk+E8Fd8grR6JYfQIdmhiAmPMPYiwgL9jgtMVSQFhyIQuM8IopRUgEEqBA9WnRtjSxmFcNYVDdg0L4asehSFELCLLLtA0LwBB0AQA2coYBkDCSIBwkhiioCgDEtMAAolAOo4p-b1HSGSDRWjphmJANo5A6Rai1GyHAEA0xHEAE9dHZHqKkMA0xpF4iwDQZAoxAkgBcSteRIBFHKPQKo7CxCcgYGmOwRJYhEmqESQYRJNhEluESf4RJ4RCggn8YEyoriwkKKUcJNgMS1YkKSeIVJ6TMnZNyfkxJ6BCnYACUEspciKnKLEDUyKdSUlqCaWgLJaAcloDyWgcI7TElsE6cUnpISVp9IiUosA0TPx8x-BgZZ3TSlrI2ZEsA1Tdn232UsvxRzgmhNOVswZlyX5yEOSU+56yYDdhAAgMAwAGzIFnvPAA+p-L2UAqwLleOsGFWJwmRIAI54mEiOOuVYoX6ThbKSSYBuxQBAMgbZ1csQ0GmJi4m2K+S4vxYS85JLrg0DnOmRFaKvgYrgBhF4Qk4DUAAPR8uQAAEh0cUYSEA-kJBceKtAmAPzsHTGS+SnKsU8v5YKkVYqJVgClTKg0NjuxKJpQS45LjFXkrgNMdI0wEBcuwGq5AArhWivFZK6VKADRCXSOq51Wq3V6upEJBAPrNWup1e6sUiq5wMoEDQIAA

💻 Code

interface J1 { kind: 'J1'; }
interface J2 { kind: 'J2'; }
interface J3 { kind: 'J3'; }
interface J4 { kind: 'J4'; }
interface J5 { kind: 'J5'; }
interface J6 { kind: 'J6'; }
interface J7 { kind: 'J7'; }
interface J8 { kind: 'J8'; }
interface J9 { kind: 'J9'; }

interface Thenable<T> extends PromiseLike<T> { }

interface PromiseBase<TR, TJ, TN,
        UR, UJ, UN,
        VR, VJ, VN,
        SR, SJ, SN> {

        then<ARD = never, AJD = never, AND = never,
            BRD = never, BJD = never, BND = never,
            CRD = never, CJD = never, CND = never,
            RRD = never, RJD = never, RND = never,
            ARF = never, AJF = never, ANF = never,
            BRF = never, BJF = never, BNF = never,
            CRF = never, CJF = never, CNF = never,
            RRF = never, RJF = never, RNF = never,
            ARP = never, AJP = never, ANP = never,
            BRP = never, BJP = never, BNP = never,
            CRP = never, CJP = never, CNP = never,
            RRP = never, RJP = never, RNP = never>(
                doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND,
                    BRD, BJD, BND,
                    CRD, CJD, CND,
                    RRD, RJD, RND> | Thenable<ARD> | ARD,
                failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF,
                    BRF, BJF, BNF,
                    CRF, CJF, CNF,
                    RRF, RJF, RNF> | Thenable<ARF> | ARF,
                progressFilter: (t: TN, u: UN, v: VN, ...s: SN[]) => PromiseBase<ARP, AJP, ANP,
                    BRP, BJP, BNP,
                    CRP, CJP, CNP,
                    RRP, RJP, RNP> | Thenable<ANP> | ANP): PromiseBase<ARD | ARF | ARP, AJD | AJF | AJP, AND | ANF | ANP,
            BRD | BRF | BRP, BJD | BJF | BJP, BND | BNF | BNP,
            CRD | CRF | CRP, CJD | CJF | CJP, CND | CNF | CNP,
            RRD | RRF | RRP, RJD | RJF | RJP, RND | RNF | RNP>;

        then<ARD = never, AJD = never, AND = never,
            BRD = never, BJD = never, BND = never,
            CRD = never, CJD = never, CND = never,
            RRD = never, RJD = never, RND = never,
            ARF = never, AJF = never, ANF = never,
            BRF = never, BJF = never, BNF = never,
            CRF = never, CJF = never, CNF = never,
            RRF = never, RJF = never, RNF = never>(
                doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND,
                    BRD, BJD, BND,
                    CRD, CJD, CND,
                    RRD, RJD, RND> | Thenable<ARD> | ARD,
                failFilter: (t: TJ, u: UJ, v: VJ, ...s: SJ[]) => PromiseBase<ARF, AJF, ANF,
                    BRF, BJF, BNF,
                    CRF, CJF, CNF,
                    RRF, RJF, RNF> | Thenable<ARF> | ARF,
                progressFilter?: null): PromiseBase<ARD | ARF, AJD | AJF, AND | ANF,
            BRD | BRF, BJD | BJF, BND | BNF,
            CRD | CRF, CJD | CJF, CND | CNF,
            RRD | RRF, RJD | RJF, RND | RNF>;
        
        then<ARD = never, AJD = never, AND = never,
            BRD = never, BJD = never, BND = never,
            CRD = never, CJD = never, CND = never,
            RRD = never, RJD = never, RND = never>(
                doneFilter: (t: TR, u: UR, v: VR, ...s: SR[]) => PromiseBase<ARD, AJD, AND,
                    BRD, BJD, BND,
                    CRD, CJD, CND,
                    RRD, RJD, RND> | Thenable<ARD> | ARD,
                failFilter?: null,
                progressFilter?: null): PromiseBase<ARD, AJD, AND,
            BRD, BJD, BND,
            CRD, CJD, CND,
            RRD, RJD, RND>;
}

interface Promise3<TR, TJ, TN,
    UR, UJ, UN,
    VR, VJ, VN> extends PromiseBase<TR, TJ, TN,
    UR, UJ, UN,
    VR, VJ, VN,
    never, never, never> { }

const p:Promise3<string, Error, number, string, string, boolean, any, Element, never> = {} as any;
const p1:Promise3<J1, J2, J3, J4, J5, J6, J7, J8, J9> = {} as any;
const p2:Promise3<J2, J3, J4, J5, J6, J7, J8, J9, J1> = {} as any;
const p3:Promise3<J3, J4, J5, J6, J7, J8, J9, J1, J2> = {} as any;

const t1: Thenable<J1> = {} as any;
const t2: Thenable<J2> = {} as any;
const t3: Thenable<J3> = {} as any;

function doneFilter_failFilter() {
    {
        const q = p.then(() => {
            return t1;
        }, () => {
            return t2;
        })
        q.then((a) => {
            a; // $ExpectType J1 | J2
        }, (a) => {
            a; // $ExpectType never but returns any
        }, (a, b, c) => {
            a; // $ExpectType never
            b; // $ExpectType never
            c; // $ExpectType never
        });
    }
}

🙁 Actual behavior

Type returned for a is any

🙂 Expected behavior

Type for a should be never

Additional information about the issue

No response

Metadata

Metadata

Assignees

Labels

Working as IntendedThe behavior described is the intended behavior; this is not a bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions