139 lines
4.7 KiB
Plaintext
139 lines
4.7 KiB
Plaintext
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(4,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(12,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(22,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(31,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(43,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(48,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(56,1): error TS2354: No best common type exists among return expressions.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(56,13): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts(56,26): error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
|
|
|
|
==== tests/cases/conformance/types/typeRelationships/bestCommonType/functionWithMultipleReturnStatements.ts (9 errors) ====
|
|
// return type of a function with multiple returns is the BCT of each return statement
|
|
// it is an error if there is no single BCT, these are error cases
|
|
|
|
function f1() {
|
|
~~~~~~~~~~~~~~~
|
|
if (true) {
|
|
~~~~~~~~~~~~~~~
|
|
return 1;
|
|
~~~~~~~~~~~~~~~~~
|
|
} else {
|
|
~~~~~~~~~~~~
|
|
return '';
|
|
~~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
function f2() {
|
|
~~~~~~~~~~~~~~~
|
|
if (true) {
|
|
~~~~~~~~~~~~~~~
|
|
return 1;
|
|
~~~~~~~~~~~~~~~~~
|
|
} else if (false) {
|
|
~~~~~~~~~~~~~~~~~~~~~~~
|
|
return 2;
|
|
~~~~~~~~~~~~~~~~~
|
|
} else {
|
|
~~~~~~~~~~~~
|
|
return '';
|
|
~~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
function f3() {
|
|
~~~~~~~~~~~~~~~
|
|
try {
|
|
~~~~~~~~~
|
|
return 1;
|
|
~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
catch (e) {
|
|
~~~~~~~~~~~~~~~
|
|
return '';
|
|
~~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
function f4() {
|
|
~~~~~~~~~~~~~~~
|
|
try {
|
|
~~~~~~~~~
|
|
return 1;
|
|
~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
catch (e) {
|
|
~~~~~~~~~~~~~~~
|
|
|
|
|
|
}
|
|
~~~~~
|
|
finally {
|
|
~~~~~~~~~~~~~
|
|
return '';
|
|
~~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
function f5() {
|
|
~~~~~~~~~~~~~~~
|
|
return 1;
|
|
~~~~~~~~~~~~~
|
|
return '';
|
|
~~~~~~~~~~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
function f6<T, U>(x: T, y:U) {
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
if (true) {
|
|
~~~~~~~~~~~~~~~
|
|
return x;
|
|
~~~~~~~~~~~~~~~~~
|
|
} else {
|
|
~~~~~~~~~~~~
|
|
return y;
|
|
~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|
|
function f8<T extends U, U extends V, V>(x: T, y: U) {
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
~~~~~~~~~~~
|
|
!!! error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
~~~~~~~~~~~
|
|
!!! error TS2313: Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
|
if (true) {
|
|
~~~~~~~~~~~~~~~
|
|
return x;
|
|
~~~~~~~~~~~~~~~~~
|
|
} else {
|
|
~~~~~~~~~~~~
|
|
return y;
|
|
~~~~~~~~~~~~~~~~~
|
|
}
|
|
~~~~~
|
|
}
|
|
~
|
|
!!! error TS2354: No best common type exists among return expressions.
|
|
|