diff --git a/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.symbols b/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.symbols new file mode 100644 index 00000000000..34d2ea30ebc --- /dev/null +++ b/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.symbols @@ -0,0 +1,44 @@ +=== tests/cases/compiler/contextualTypingReturnStatementWithReturnTypeAnnotation.ts === +type PropOfRaw = readonly T[] | "not-array" | "no-prop"; +>PropOfRaw : Symbol(PropOfRaw, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 0)) +>T : Symbol(T, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 15)) +>T : Symbol(T, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 15)) + +declare function isString(text: unknown): text is string; +>isString : Symbol(isString, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 59)) +>text : Symbol(text, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 2, 26)) +>text : Symbol(text, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 2, 26)) + +declare function getPropFromRaw( +>getPropFromRaw : Symbol(getPropFromRaw, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 2, 57)) +>T : Symbol(T, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 4, 32)) + + prop: "files" | "include" | "exclude" | "references", +>prop : Symbol(prop, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 4, 35)) + + validateElement: (value: unknown) => boolean, +>validateElement : Symbol(validateElement, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 5, 55)) +>value : Symbol(value, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 6, 20)) + + elementTypeName: string +>elementTypeName : Symbol(elementTypeName, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 6, 47)) + +): PropOfRaw; +>PropOfRaw : Symbol(PropOfRaw, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 0)) +>T : Symbol(T, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 4, 32)) + +function getSpecsFromRaw( +>getSpecsFromRaw : Symbol(getSpecsFromRaw, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 8, 16)) + + prop: "files" | "include" | "exclude" +>prop : Symbol(prop, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 10, 25)) + +): PropOfRaw { +>PropOfRaw : Symbol(PropOfRaw, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 0)) + + return getPropFromRaw(prop, isString, "string"); +>getPropFromRaw : Symbol(getPropFromRaw, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 2, 57)) +>prop : Symbol(prop, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 10, 25)) +>isString : Symbol(isString, Decl(contextualTypingReturnStatementWithReturnTypeAnnotation.ts, 0, 59)) +} + diff --git a/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types b/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types new file mode 100644 index 00000000000..b6ed304b0e2 --- /dev/null +++ b/tests/baselines/reference/contextualTypingReturnStatementWithReturnTypeAnnotation.types @@ -0,0 +1,38 @@ +=== tests/cases/compiler/contextualTypingReturnStatementWithReturnTypeAnnotation.ts === +type PropOfRaw = readonly T[] | "not-array" | "no-prop"; +>PropOfRaw : PropOfRaw + +declare function isString(text: unknown): text is string; +>isString : (text: unknown) => text is string +>text : unknown + +declare function getPropFromRaw( +>getPropFromRaw : (prop: "files" | "include" | "exclude" | "references", validateElement: (value: unknown) => boolean, elementTypeName: string) => PropOfRaw + + prop: "files" | "include" | "exclude" | "references", +>prop : "files" | "include" | "exclude" | "references" + + validateElement: (value: unknown) => boolean, +>validateElement : (value: unknown) => boolean +>value : unknown + + elementTypeName: string +>elementTypeName : string + +): PropOfRaw; + +function getSpecsFromRaw( +>getSpecsFromRaw : (prop: "files" | "include" | "exclude") => PropOfRaw + + prop: "files" | "include" | "exclude" +>prop : "files" | "include" | "exclude" + +): PropOfRaw { + return getPropFromRaw(prop, isString, "string"); +>getPropFromRaw(prop, isString, "string") : PropOfRaw +>getPropFromRaw : (prop: "files" | "include" | "exclude" | "references", validateElement: (value: unknown) => boolean, elementTypeName: string) => PropOfRaw +>prop : "files" | "include" | "exclude" +>isString : (text: unknown) => text is string +>"string" : "string" +} + diff --git a/tests/cases/compiler/contextualTypingReturnStatementWithReturnTypeAnnotation.ts b/tests/cases/compiler/contextualTypingReturnStatementWithReturnTypeAnnotation.ts new file mode 100644 index 00000000000..a9842fe51a1 --- /dev/null +++ b/tests/cases/compiler/contextualTypingReturnStatementWithReturnTypeAnnotation.ts @@ -0,0 +1,18 @@ +// @strict: true +// @noEmit: true + +type PropOfRaw = readonly T[] | "not-array" | "no-prop"; + +declare function isString(text: unknown): text is string; + +declare function getPropFromRaw( + prop: "files" | "include" | "exclude" | "references", + validateElement: (value: unknown) => boolean, + elementTypeName: string +): PropOfRaw; + +function getSpecsFromRaw( + prop: "files" | "include" | "exclude" +): PropOfRaw { + return getPropFromRaw(prop, isString, "string"); +}