Accepted baselines.

This commit is contained in:
Daniel Rosenwasser
2018-06-28 16:08:02 -07:00
parent 6f06fd0d46
commit 441388c9dc
37 changed files with 733 additions and 1465 deletions
+1 -1
View File
@@ -5152,7 +5152,7 @@ declare namespace ts {
The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access: DiagnosticMessage;
Operator_0_cannot_be_applied_to_types_1_and_2: DiagnosticMessage;
Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined: DiagnosticMessage;
The_types_of_these_values_indicate_that_this_condition_will_always_be_0: DiagnosticMessage;
This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap: DiagnosticMessage;
Type_parameter_name_cannot_be_0: DiagnosticMessage;
A_parameter_property_is_only_allowed_in_a_constructor_implementation: DiagnosticMessage;
A_rest_parameter_must_be_of_an_array_type: DiagnosticMessage;
@@ -1,7 +1,5 @@
tests/cases/compiler/capturedLetConstInLoop5.ts(174,13): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop5.ts(229,13): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop5.ts(174,13): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop5.ts(229,13): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop5.ts (2 errors) ====
@@ -180,8 +178,7 @@ tests/cases/compiler/capturedLetConstInLoop5.ts(229,13): error TS2367: The types
(() => x + v);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
return;
}
}
@@ -238,8 +235,7 @@ tests/cases/compiler/capturedLetConstInLoop5.ts(229,13): error TS2367: The types
(() => x + y + v);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
return;
}
}
@@ -1,7 +1,5 @@
tests/cases/compiler/capturedLetConstInLoop5_ES6.ts(174,13): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop5_ES6.ts(229,13): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop5_ES6.ts(174,13): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop5_ES6.ts(229,13): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop5_ES6.ts (2 errors) ====
@@ -180,8 +178,7 @@ tests/cases/compiler/capturedLetConstInLoop5_ES6.ts(229,13): error TS2367: The t
(() => x + v);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
return;
}
}
@@ -238,8 +235,7 @@ tests/cases/compiler/capturedLetConstInLoop5_ES6.ts(229,13): error TS2367: The t
(() => x + y + v);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
return;
}
}
@@ -1,11 +1,7 @@
tests/cases/compiler/capturedLetConstInLoop6.ts(147,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop6.ts(150,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop6.ts(194,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop6.ts(197,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop6.ts(147,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop6.ts(150,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop6.ts(194,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop6.ts(197,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop6.ts (4 errors) ====
@@ -157,14 +153,12 @@ tests/cases/compiler/capturedLetConstInLoop6.ts(197,9): error TS2367: The types
(() => x);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
}
@@ -210,14 +204,12 @@ tests/cases/compiler/capturedLetConstInLoop6.ts(197,9): error TS2367: The types
(() => x + y);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
}
@@ -1,11 +1,7 @@
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(147,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(150,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(194,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(197,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(147,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(150,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(194,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(197,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop6_ES6.ts (4 errors) ====
@@ -157,14 +153,12 @@ tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(197,9): error TS2367: The ty
(() => x);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
}
@@ -210,14 +204,12 @@ tests/cases/compiler/capturedLetConstInLoop6_ES6.ts(197,9): error TS2367: The ty
(() => x + y);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
}
@@ -1,19 +1,11 @@
tests/cases/compiler/capturedLetConstInLoop7.ts(230,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7.ts(233,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7.ts(236,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7.ts(239,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7.ts(305,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7.ts(308,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7.ts(311,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7.ts(314,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7.ts(230,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(233,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(236,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(239,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(305,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(308,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(311,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7.ts(314,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop7.ts (8 errors) ====
@@ -248,26 +240,22 @@ tests/cases/compiler/capturedLetConstInLoop7.ts(314,9): error TS2367: The types
(() => x);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l1_c;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l1_c;
}
}
@@ -335,26 +323,22 @@ tests/cases/compiler/capturedLetConstInLoop7.ts(314,9): error TS2367: The types
(() => x + y);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l5_c;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l5_c;
}
}
@@ -1,19 +1,11 @@
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(230,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(233,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(236,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(239,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(305,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(308,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(311,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(314,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(230,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(233,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(236,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(239,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(305,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(308,9): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(311,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(314,9): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop7_ES6.ts (8 errors) ====
@@ -248,26 +240,22 @@ tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(314,9): error TS2367: The ty
(() => x);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l1_c;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l1_c;
}
}
@@ -335,26 +323,22 @@ tests/cases/compiler/capturedLetConstInLoop7_ES6.ts(314,9): error TS2367: The ty
(() => x + y);
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l5_c;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l5_c;
}
}
@@ -1,35 +1,19 @@
tests/cases/compiler/capturedLetConstInLoop8.ts(73,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8.ts(76,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8.ts(79,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8.ts(82,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8.ts(86,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(89,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(92,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(95,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(98,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '3'.
tests/cases/compiler/capturedLetConstInLoop8.ts(102,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8.ts(105,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8.ts(108,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(111,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(114,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(117,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8.ts(120,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '3'.
tests/cases/compiler/capturedLetConstInLoop8.ts(73,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(76,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(79,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(82,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(86,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(89,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(92,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(95,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(98,21): error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(102,17): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(105,17): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(108,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(111,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(114,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(117,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8.ts(120,17): error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop8.ts (16 errors) ====
@@ -107,100 +91,84 @@ tests/cases/compiler/capturedLetConstInLoop8.ts(120,17): error TS2367: The types
(() => x + y);
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l1;
}
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break ll1;
}
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
continue l0;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue ll1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
return "123"
}
if (x == 3) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '3'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
return;
}
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l0;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
return "456";
}
if (x == 3) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '3'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
return;
}
}
@@ -1,35 +1,19 @@
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(73,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(76,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(79,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(82,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(86,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(89,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(92,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(95,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(98,21): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '3'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(102,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(105,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '1'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(108,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(111,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(114,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(117,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '2'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(120,17): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '0' and '3'.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(73,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(76,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(79,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(82,21): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(86,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(89,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(92,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(95,21): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(98,21): error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(102,17): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(105,17): error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(108,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(111,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(114,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(117,17): error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(120,17): error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
==== tests/cases/compiler/capturedLetConstInLoop8_ES6.ts (16 errors) ====
@@ -107,100 +91,84 @@ tests/cases/compiler/capturedLetConstInLoop8_ES6.ts(120,17): error TS2367: The t
(() => x + y);
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l1;
}
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break ll1;
}
if (y == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
continue l0;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue ll1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
return "123"
}
if (x == 3) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '3'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
return;
}
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break;
}
if (x == 1) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '1'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '1' have no overlap.
break l1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l1;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
continue l0;
}
if (x == 2) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '2' have no overlap.
return "456";
}
if (x == 3) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '0' and '3'.
!!! error TS2367: This condition will always return 'false' since the types '0' and '3' have no overlap.
return;
}
}
@@ -46,102 +46,54 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(97,12): error TS2365: Operator '>=' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(98,12): error TS2365: Operator '>=' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(99,12): error TS2365: Operator '>=' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(103,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(104,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(105,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(106,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(107,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(108,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(111,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(112,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(113,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(114,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(115,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(116,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(120,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(121,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(122,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(123,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(124,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(125,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(128,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(129,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(130,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(131,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(132,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(133,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(137,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(138,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(139,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(140,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(141,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(142,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(145,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(146,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(147,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(148,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(149,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(150,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(154,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(155,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(156,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(157,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(158,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(159,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(162,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(163,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(164,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(165,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(166,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(167,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(103,12): error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(104,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(105,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(106,12): error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(107,12): error TS2367: This condition will always return 'false' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(108,12): error TS2367: This condition will always return 'false' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(111,12): error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(112,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(113,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(114,12): error TS2367: This condition will always return 'false' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(115,12): error TS2367: This condition will always return 'false' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(116,12): error TS2367: This condition will always return 'false' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(120,12): error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(121,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(122,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(123,12): error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(124,12): error TS2367: This condition will always return 'true' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(125,12): error TS2367: This condition will always return 'true' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(128,12): error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(129,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(130,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(131,12): error TS2367: This condition will always return 'true' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(132,12): error TS2367: This condition will always return 'true' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(133,12): error TS2367: This condition will always return 'true' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(137,12): error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(138,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(139,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(140,12): error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(141,12): error TS2367: This condition will always return 'false' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(142,12): error TS2367: This condition will always return 'false' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(145,12): error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(146,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(147,12): error TS2367: This condition will always return 'false' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(148,12): error TS2367: This condition will always return 'false' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(149,12): error TS2367: This condition will always return 'false' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(150,12): error TS2367: This condition will always return 'false' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(154,12): error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(155,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(156,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(157,12): error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(158,12): error TS2367: This condition will always return 'true' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(159,12): error TS2367: This condition will always return 'true' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(162,12): error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(163,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(164,12): error TS2367: This condition will always return 'true' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(165,12): error TS2367: This condition will always return 'true' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(166,12): error TS2367: This condition will always return 'true' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts(167,12): error TS2367: This condition will always return 'true' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnCallSignature.ts (96 errors) ====
@@ -345,211 +297,163 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
// operator ==
var r5a1 = a1 == b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r5a2 = a2 == b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
var r5a3 = a3 == b3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
var r5a4 = a4 == b4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
var r5a5 = a5 == b5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
var r5a6 = a6 == b6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
var r5a7 = a7 == b7;
var r5b1 = b1 == a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r5b2 = b2 == a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
var r5b3 = b3 == a3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
var r5b4 = b4 == a4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
var r5b5 = b5 == a5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
var r5b6 = b6 == a6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r6a2 = a2 != b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
var r6a3 = a3 != b3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
var r6a4 = a4 != b4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
var r6a5 = a5 != b5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
var r6a6 = a6 != b6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
var r6a7 = a7 != b7;
var r6b1 = b1 != a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r6b2 = b2 != a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
var r6b3 = b3 != a3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
var r6b4 = b4 != a4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
var r6b5 = b5 != a5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
var r6b6 = b6 != a6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r7a2 = a2 === b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
var r7a3 = a3 === b3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
var r7a4 = a4 === b4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
var r7a5 = a5 === b5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
var r7a6 = a6 === b6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
var r7a7 = a7 === b7;
var r7b1 = b1 === a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r7b2 = b2 === a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
var r7b3 = b3 === a3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
var r7b4 = b4 === a4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
var r7b5 = b5 === a5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
var r7b6 = b6 === a6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r8a2 = a2 !== b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: number, b: string): void; }' and '{ fn(a: string): void; }' have no overlap.
var r8a3 = a3 !== b3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: Base, b: string): void; }' and '{ fn(a: Derived, b: Base): void; }' have no overlap.
var r8a4 = a4 !== b4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(): Base; }' and '{ fn(): C; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and '{ fn(): C; }' have no overlap.
var r8a5 = a5 !== b5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a?: Base): void; }' and '{ fn(a?: C): void; }' have no overlap.
var r8a6 = a6 !== b6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(...a: Base[]): void; }' and '{ fn(...a: C[]): void; }' have no overlap.
var r8a7 = a7 !== b7;
var r8b1 = b1 !== a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r8b2 = b2 !== a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: string): void; }' and '{ fn(a: number, b: string): void; }' have no overlap.
var r8b3 = b3 !== a3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a: Derived, b: Base): void; }' and '{ fn(a: Base, b: string): void; }' have no overlap.
var r8b4 = b4 !== a4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(): C; }' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): C; }' and '{ fn(): Base; }' have no overlap.
var r8b5 = b5 !== a5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(a?: C): void; }' and '{ fn(a?: Base): void; }' have no overlap.
var r8b6 = b6 !== a6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(...a: C[]): void; }' and '{ fn(...a: Base[]): void; }' have no overlap.
var r8b7 = b7 !== a7;
@@ -46,102 +46,54 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(97,12): error TS2365: Operator '>=' cannot be applied to types 'new () => C' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(98,12): error TS2365: Operator '>=' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(99,12): error TS2365: Operator '>=' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(103,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(104,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(105,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(106,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new () => Base' and 'new () => C'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(107,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(108,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(111,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(112,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(113,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(114,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new () => C' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(115,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(116,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(120,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(121,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(122,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(123,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new () => Base' and 'new () => C'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(124,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(125,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(128,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(129,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(130,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(131,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new () => C' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(132,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(133,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(137,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(138,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(139,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(140,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new () => Base' and 'new () => C'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(141,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(142,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(145,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(146,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(147,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(148,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new () => C' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(149,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(150,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(154,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(155,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(156,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(157,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new () => Base' and 'new () => C'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(158,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(159,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(162,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(163,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(164,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(165,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new () => C' and 'new () => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(166,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(167,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(103,12): error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(104,12): error TS2367: This condition will always return 'false' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(105,12): error TS2367: This condition will always return 'false' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(106,12): error TS2367: This condition will always return 'false' since the types 'new () => Base' and 'new () => C' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(107,12): error TS2367: This condition will always return 'false' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(108,12): error TS2367: This condition will always return 'false' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(111,12): error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(112,12): error TS2367: This condition will always return 'false' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(113,12): error TS2367: This condition will always return 'false' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(114,12): error TS2367: This condition will always return 'false' since the types 'new () => C' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(115,12): error TS2367: This condition will always return 'false' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(116,12): error TS2367: This condition will always return 'false' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(120,12): error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(121,12): error TS2367: This condition will always return 'true' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(122,12): error TS2367: This condition will always return 'true' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(123,12): error TS2367: This condition will always return 'true' since the types 'new () => Base' and 'new () => C' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(124,12): error TS2367: This condition will always return 'true' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(125,12): error TS2367: This condition will always return 'true' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(128,12): error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(129,12): error TS2367: This condition will always return 'true' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(130,12): error TS2367: This condition will always return 'true' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(131,12): error TS2367: This condition will always return 'true' since the types 'new () => C' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(132,12): error TS2367: This condition will always return 'true' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(133,12): error TS2367: This condition will always return 'true' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(137,12): error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(138,12): error TS2367: This condition will always return 'false' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(139,12): error TS2367: This condition will always return 'false' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(140,12): error TS2367: This condition will always return 'false' since the types 'new () => Base' and 'new () => C' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(141,12): error TS2367: This condition will always return 'false' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(142,12): error TS2367: This condition will always return 'false' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(145,12): error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(146,12): error TS2367: This condition will always return 'false' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(147,12): error TS2367: This condition will always return 'false' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(148,12): error TS2367: This condition will always return 'false' since the types 'new () => C' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(149,12): error TS2367: This condition will always return 'false' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(150,12): error TS2367: This condition will always return 'false' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(154,12): error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(155,12): error TS2367: This condition will always return 'true' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(156,12): error TS2367: This condition will always return 'true' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(157,12): error TS2367: This condition will always return 'true' since the types 'new () => Base' and 'new () => C' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(158,12): error TS2367: This condition will always return 'true' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(159,12): error TS2367: This condition will always return 'true' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(162,12): error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(163,12): error TS2367: This condition will always return 'true' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(164,12): error TS2367: This condition will always return 'true' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(165,12): error TS2367: This condition will always return 'true' since the types 'new () => C' and 'new () => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(166,12): error TS2367: This condition will always return 'true' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts(167,12): error TS2367: This condition will always return 'true' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnConstructorSignature.ts (96 errors) ====
@@ -345,211 +297,163 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
// operator ==
var r5a1 = a1 == b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r5a2 = a2 == b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
var r5a3 = a3 == b3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
var r5a4 = a4 == b4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new () => Base' and 'new () => C'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => Base' and 'new () => C' have no overlap.
var r5a5 = a5 == b5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
var r5a6 = a6 == b6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
var r5a7 = a7 == b7;
var r5b1 = b1 == a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r5b2 = b2 == a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
var r5b3 = b3 == a3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
var r5b4 = b4 == a4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new () => C' and 'new () => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => C' and 'new () => Base' have no overlap.
var r5b5 = b5 == a5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
var r5b6 = b6 == a6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
var r5b7 = b7 == a7;
// operator !=
var r6a1 = a1 != b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r6a2 = a2 != b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
var r6a3 = a3 != b3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
var r6a4 = a4 != b4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new () => Base' and 'new () => C'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => Base' and 'new () => C' have no overlap.
var r6a5 = a5 != b5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
var r6a6 = a6 != b6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
var r6a7 = a7 != b7;
var r6b1 = b1 != a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r6b2 = b2 != a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
var r6b3 = b3 != a3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
var r6b4 = b4 != a4;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new () => C' and 'new () => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => C' and 'new () => Base' have no overlap.
var r6b5 = b5 != a5;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
var r6b6 = b6 != a6;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
var r6b7 = b7 != a7;
// operator ===
var r7a1 = a1 === b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'false' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r7a2 = a2 === b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
var r7a3 = a3 === b3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
var r7a4 = a4 === b4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new () => Base' and 'new () => C'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => Base' and 'new () => C' have no overlap.
var r7a5 = a5 === b5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
var r7a6 = a6 === b6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
var r7a7 = a7 === b7;
var r7b1 = b1 === a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r7b2 = b2 === a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
var r7b3 = b3 === a3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
var r7b4 = b4 === a4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new () => C' and 'new () => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new () => C' and 'new () => Base' have no overlap.
var r7b5 = b5 === a5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
var r7b6 = b6 === a6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
!!! error TS2367: This condition will always return 'false' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
var r7b7 = b7 === a7;
// operator !==
var r8a1 = a1 !== b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ fn(): Base; }' and 'new () => Base'.
!!! error TS2367: This condition will always return 'true' since the types '{ fn(): Base; }' and 'new () => Base' have no overlap.
var r8a2 = a2 !== b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (a: number, b: string) => Base' and 'new (a: string) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: number, b: string) => Base' and 'new (a: string) => Base' have no overlap.
var r8a3 = a3 !== b3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: Base, b: string) => Base' and 'new (a: Derived, b: Base) => Base' have no overlap.
var r8a4 = a4 !== b4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new () => Base' and 'new () => C'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => Base' and 'new () => C' have no overlap.
var r8a5 = a5 !== b5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (a?: Base) => Base' and 'new (a?: C) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a?: Base) => Base' and 'new (a?: C) => Base' have no overlap.
var r8a6 = a6 !== b6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (...a: Base[]) => Base' and 'new (...a: C[]) => Base' have no overlap.
var r8a7 = a7 !== b7;
var r8b1 = b1 !== a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new () => Base' and '{ fn(): Base; }'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => Base' and '{ fn(): Base; }' have no overlap.
var r8b2 = b2 !== a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (a: string) => Base' and 'new (a: number, b: string) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: string) => Base' and 'new (a: number, b: string) => Base' have no overlap.
var r8b3 = b3 !== a3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a: Derived, b: Base) => Base' and 'new (a: Base, b: string) => Base' have no overlap.
var r8b4 = b4 !== a4;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new () => C' and 'new () => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new () => C' and 'new () => Base' have no overlap.
var r8b5 = b5 !== a5;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (a?: C) => Base' and 'new (a?: Base) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (a?: C) => Base' and 'new (a?: Base) => Base' have no overlap.
var r8b6 = b6 !== a6;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base'.
!!! error TS2367: This condition will always return 'true' since the types 'new (...a: C[]) => Base' and 'new (...a: Base[]) => Base' have no overlap.
var r8b7 = b7 !== a7;
@@ -22,54 +22,30 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(64,12): error TS2365: Operator '>=' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(65,12): error TS2365: Operator '>=' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(66,12): error TS2365: Operator '>=' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(70,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(71,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(72,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(75,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(76,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(77,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(81,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(82,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(83,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(86,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(87,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(88,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(92,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(93,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(94,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(97,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(98,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(99,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(103,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(104,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(105,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(108,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(109,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(110,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(70,12): error TS2367: This condition will always return 'false' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(71,12): error TS2367: This condition will always return 'false' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(72,12): error TS2367: This condition will always return 'false' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(75,12): error TS2367: This condition will always return 'false' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(76,12): error TS2367: This condition will always return 'false' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(77,12): error TS2367: This condition will always return 'false' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(81,12): error TS2367: This condition will always return 'true' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(82,12): error TS2367: This condition will always return 'true' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(83,12): error TS2367: This condition will always return 'true' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(86,12): error TS2367: This condition will always return 'true' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(87,12): error TS2367: This condition will always return 'true' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(88,12): error TS2367: This condition will always return 'true' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(92,12): error TS2367: This condition will always return 'false' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(93,12): error TS2367: This condition will always return 'false' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(94,12): error TS2367: This condition will always return 'false' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(97,12): error TS2367: This condition will always return 'false' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(98,12): error TS2367: This condition will always return 'false' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(99,12): error TS2367: This condition will always return 'false' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(103,12): error TS2367: This condition will always return 'true' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(104,12): error TS2367: This condition will always return 'true' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(105,12): error TS2367: This condition will always return 'true' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(108,12): error TS2367: This condition will always return 'true' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(109,12): error TS2367: This condition will always return 'true' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts(110,12): error TS2367: This condition will always return 'true' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnIndexSignature.ts (48 errors) ====
@@ -192,115 +168,91 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
// operator ==
var r5a1 = a1 == b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
var r5a2 = a2 == b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
var r5a3 = a3 == b3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
var r5a4 = a4 == b4;
var r5b1 = b1 == a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
var r5b2 = b2 == a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
var r5b3 = b3 == a3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
var r5b4 = b4 == a4;
// operator !=
var r6a1 = a1 != b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
var r6a2 = a2 != b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
var r6a3 = a3 != b3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
var r6a4 = a4 != b4;
var r6b1 = b1 != a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
var r6b2 = b2 != a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
var r6b3 = b3 != a3;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
var r6b4 = b4 != a4;
// operator ===
var r7a1 = a1 === b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
var r7a2 = a2 === b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
var r7a3 = a3 === b3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
var r7a4 = a4 === b4;
var r7b1 = b1 === a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
var r7b2 = b2 === a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
var r7b3 = b3 === a3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
!!! error TS2367: This condition will always return 'false' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
var r7b4 = b4 === a4;
// operator !==
var r8a1 = a1 !== b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ [a: string]: string; }' and '{ [b: string]: number; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [a: string]: string; }' and '{ [b: string]: number; }' have no overlap.
var r8a2 = a2 !== b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ [index: string]: Base; }' and '{ [index: string]: C; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: string]: Base; }' and '{ [index: string]: C; }' have no overlap.
var r8a3 = a3 !== b3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ [index: number]: Base; }' and '{ [index: number]: C; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: number]: Base; }' and '{ [index: number]: C; }' have no overlap.
var r8a4 = a4 !== b4;
var r8b1 = b1 !== a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ [b: string]: number; }' and '{ [a: string]: string; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [b: string]: number; }' and '{ [a: string]: string; }' have no overlap.
var r8b2 = b2 !== a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ [index: string]: C; }' and '{ [index: string]: Base; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: string]: C; }' and '{ [index: string]: Base; }' have no overlap.
var r8b3 = b3 !== a3;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '{ [index: number]: C; }' and '{ [index: number]: Base; }'.
!!! error TS2367: This condition will always return 'true' since the types '{ [index: number]: C; }' and '{ [index: number]: Base; }' have no overlap.
var r8b4 = b4 !== a4;
@@ -6,22 +6,14 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(22,11): error TS2365: Operator '<=' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(25,11): error TS2365: Operator '>=' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(26,11): error TS2365: Operator '>=' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(29,11): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(30,11): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(33,11): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(34,11): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(37,11): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(38,11): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(41,11): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(42,11): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(29,11): error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(30,11): error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(33,11): error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(34,11): error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(37,11): error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(38,11): error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(41,11): error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts(42,11): error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnOptionalProperty.ts (16 errors) ====
@@ -71,39 +63,31 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
// operator ==
var re1 = a == b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
var re2 = b == a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
// operator !=
var rf1 = a != b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
var rf2 = b != a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
// operator ===
var rg1 = a === b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
var rg2 = b === a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
// operator !==
var rh1 = a !== b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
var rh2 = b !== a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
@@ -14,38 +14,22 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(45,12): error TS2365: Operator '>=' cannot be applied to types 'A2' and 'B2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(47,12): error TS2365: Operator '>=' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(48,12): error TS2365: Operator '>=' cannot be applied to types 'B2' and 'A2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(51,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(52,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'A2' and 'B2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(54,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(55,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'B2' and 'A2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(58,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(59,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'A2' and 'B2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(61,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(62,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'B2' and 'A2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(65,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(66,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'A2' and 'B2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(68,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(69,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'B2' and 'A2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(72,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'A1' and 'B1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(73,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'A2' and 'B2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(75,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'B1' and 'A1'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(76,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'B2' and 'A2'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(51,12): error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(52,12): error TS2367: This condition will always return 'false' since the types 'A2' and 'B2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(54,12): error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(55,12): error TS2367: This condition will always return 'false' since the types 'B2' and 'A2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(58,12): error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(59,12): error TS2367: This condition will always return 'true' since the types 'A2' and 'B2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(61,12): error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(62,12): error TS2367: This condition will always return 'true' since the types 'B2' and 'A2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(65,12): error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(66,12): error TS2367: This condition will always return 'false' since the types 'A2' and 'B2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(68,12): error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(69,12): error TS2367: This condition will always return 'false' since the types 'B2' and 'A2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(72,12): error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(73,12): error TS2367: This condition will always return 'true' since the types 'A2' and 'B2' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(75,12): error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts(76,12): error TS2367: This condition will always return 'true' since the types 'B2' and 'A2' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipObjectsOnProperty.ts (32 errors) ====
@@ -133,75 +117,59 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
// operator ==
var r5a1 = a1 == b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
var r5a2 = a2 == b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'A2' and 'B2'.
!!! error TS2367: This condition will always return 'false' since the types 'A2' and 'B2' have no overlap.
var r5b1 = b1 == a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
var r5b2 = b2 == a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'B2' and 'A2'.
!!! error TS2367: This condition will always return 'false' since the types 'B2' and 'A2' have no overlap.
// operator !=
var r6a1 = a1 != b1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
var r6a2 = a2 != b2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'A2' and 'B2'.
!!! error TS2367: This condition will always return 'true' since the types 'A2' and 'B2' have no overlap.
var r6b1 = b1 != a1;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
var r6b2 = b2 != a2;
~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'B2' and 'A2'.
!!! error TS2367: This condition will always return 'true' since the types 'B2' and 'A2' have no overlap.
// operator ===
var r7a1 = a1 === b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'false' since the types 'A1' and 'B1' have no overlap.
var r7a2 = a2 === b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'A2' and 'B2'.
!!! error TS2367: This condition will always return 'false' since the types 'A2' and 'B2' have no overlap.
var r7b1 = b1 === a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'false' since the types 'B1' and 'A1' have no overlap.
var r7b2 = b2 === a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'B2' and 'A2'.
!!! error TS2367: This condition will always return 'false' since the types 'B2' and 'A2' have no overlap.
// operator !==
var r8a1 = a1 !== b1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'A1' and 'B1'.
!!! error TS2367: This condition will always return 'true' since the types 'A1' and 'B1' have no overlap.
var r8a2 = a2 !== b2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'A2' and 'B2'.
!!! error TS2367: This condition will always return 'true' since the types 'A2' and 'B2' have no overlap.
var r8b1 = b1 !== a1;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'B1' and 'A1'.
!!! error TS2367: This condition will always return 'true' since the types 'B1' and 'A1' have no overlap.
var r8b2 = b2 !== a2;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'B2' and 'A2'.
!!! error TS2367: This condition will always return 'true' since the types 'B2' and 'A2' have no overlap.
@@ -70,150 +70,78 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(109,12): error TS2365: Operator '>=' cannot be applied to types 'E' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(110,12): error TS2365: Operator '>=' cannot be applied to types 'E' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(111,12): error TS2365: Operator '>=' cannot be applied to types 'E' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(114,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'number' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(115,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'number' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(116,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'number' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(119,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'boolean' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(120,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(121,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'boolean' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(122,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'boolean' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(124,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(125,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(126,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(127,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(129,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'void' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(130,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'void' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(131,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'void' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(132,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'void' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(135,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'E' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(136,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'E' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(137,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'E' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(140,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'number' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(141,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'number' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(142,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'number' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(145,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'boolean' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(146,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(147,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'boolean' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(148,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'boolean' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(150,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'string' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(151,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'string' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(152,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'string' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(153,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'string' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(155,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'void' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(156,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'void' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(157,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'void' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(158,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'void' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(161,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'E' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(162,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'E' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(163,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'E' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(166,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'number' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(167,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'number' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(168,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'number' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(171,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'boolean' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(172,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(173,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'boolean' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(174,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'boolean' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(176,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'string' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(177,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'string' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(178,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'string' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(179,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'string' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(181,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'void' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(182,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'void' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(183,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'void' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(184,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'void' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(187,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'E' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(188,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'E' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(189,12): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'E' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(192,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'number' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(193,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'number' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(194,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'number' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(197,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'boolean' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(198,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'boolean' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(199,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'boolean' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(200,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'boolean' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(202,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'string' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(203,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'string' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(204,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'string' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(205,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'string' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(207,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'void' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(208,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'void' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(209,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'void' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(210,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'void' and 'E'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(213,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'E' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(214,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'E' and 'string'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(215,12): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'E' and 'void'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(114,12): error TS2367: This condition will always return 'false' since the types 'number' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(115,12): error TS2367: This condition will always return 'false' since the types 'number' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(116,12): error TS2367: This condition will always return 'false' since the types 'number' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(119,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(120,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(121,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(122,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(124,12): error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(125,12): error TS2367: This condition will always return 'false' since the types 'string' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(126,12): error TS2367: This condition will always return 'false' since the types 'string' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(127,12): error TS2367: This condition will always return 'false' since the types 'string' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(129,12): error TS2367: This condition will always return 'false' since the types 'void' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(130,12): error TS2367: This condition will always return 'false' since the types 'void' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(131,12): error TS2367: This condition will always return 'false' since the types 'void' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(132,12): error TS2367: This condition will always return 'false' since the types 'void' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(135,12): error TS2367: This condition will always return 'false' since the types 'E' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(136,12): error TS2367: This condition will always return 'false' since the types 'E' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(137,12): error TS2367: This condition will always return 'false' since the types 'E' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(140,12): error TS2367: This condition will always return 'true' since the types 'number' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(141,12): error TS2367: This condition will always return 'true' since the types 'number' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(142,12): error TS2367: This condition will always return 'true' since the types 'number' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(145,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(146,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(147,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(148,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(150,12): error TS2367: This condition will always return 'true' since the types 'string' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(151,12): error TS2367: This condition will always return 'true' since the types 'string' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(152,12): error TS2367: This condition will always return 'true' since the types 'string' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(153,12): error TS2367: This condition will always return 'true' since the types 'string' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(155,12): error TS2367: This condition will always return 'true' since the types 'void' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(156,12): error TS2367: This condition will always return 'true' since the types 'void' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(157,12): error TS2367: This condition will always return 'true' since the types 'void' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(158,12): error TS2367: This condition will always return 'true' since the types 'void' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(161,12): error TS2367: This condition will always return 'true' since the types 'E' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(162,12): error TS2367: This condition will always return 'true' since the types 'E' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(163,12): error TS2367: This condition will always return 'true' since the types 'E' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(166,12): error TS2367: This condition will always return 'false' since the types 'number' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(167,12): error TS2367: This condition will always return 'false' since the types 'number' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(168,12): error TS2367: This condition will always return 'false' since the types 'number' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(171,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(172,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(173,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(174,12): error TS2367: This condition will always return 'false' since the types 'boolean' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(176,12): error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(177,12): error TS2367: This condition will always return 'false' since the types 'string' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(178,12): error TS2367: This condition will always return 'false' since the types 'string' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(179,12): error TS2367: This condition will always return 'false' since the types 'string' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(181,12): error TS2367: This condition will always return 'false' since the types 'void' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(182,12): error TS2367: This condition will always return 'false' since the types 'void' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(183,12): error TS2367: This condition will always return 'false' since the types 'void' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(184,12): error TS2367: This condition will always return 'false' since the types 'void' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(187,12): error TS2367: This condition will always return 'false' since the types 'E' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(188,12): error TS2367: This condition will always return 'false' since the types 'E' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(189,12): error TS2367: This condition will always return 'false' since the types 'E' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(192,12): error TS2367: This condition will always return 'true' since the types 'number' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(193,12): error TS2367: This condition will always return 'true' since the types 'number' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(194,12): error TS2367: This condition will always return 'true' since the types 'number' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(197,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(198,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(199,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(200,12): error TS2367: This condition will always return 'true' since the types 'boolean' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(202,12): error TS2367: This condition will always return 'true' since the types 'string' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(203,12): error TS2367: This condition will always return 'true' since the types 'string' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(204,12): error TS2367: This condition will always return 'true' since the types 'string' and 'void' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(205,12): error TS2367: This condition will always return 'true' since the types 'string' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(207,12): error TS2367: This condition will always return 'true' since the types 'void' and 'number' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(208,12): error TS2367: This condition will always return 'true' since the types 'void' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(209,12): error TS2367: This condition will always return 'true' since the types 'void' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(210,12): error TS2367: This condition will always return 'true' since the types 'void' and 'E' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(213,12): error TS2367: This condition will always return 'true' since the types 'E' and 'boolean' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(214,12): error TS2367: This condition will always return 'true' since the types 'E' and 'string' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts(215,12): error TS2367: This condition will always return 'true' since the types 'E' and 'void' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipPrimitiveType.ts (144 errors) ====
@@ -476,319 +404,247 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
// operator ==
var r5a1 = a == b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'number' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'boolean' have no overlap.
var r5a1 = a == c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'number' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'string' have no overlap.
var r5a1 = a == d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'number' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'void' have no overlap.
var r5a1 = a == e; // no error, expected
var r5b1 = b == a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'boolean' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'number' have no overlap.
var r5b1 = b == c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'boolean' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap.
var r5b1 = b == d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'boolean' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'void' have no overlap.
var r5b1 = b == e;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'boolean' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'E' have no overlap.
var r5c1 = c == a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
var r5c1 = c == b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'boolean' have no overlap.
var r5c1 = c == d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'void' have no overlap.
var r5c1 = c == e;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'E' have no overlap.
var r5d1 = d == a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'void' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'number' have no overlap.
var r5d1 = d == b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'void' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'boolean' have no overlap.
var r5d1 = d == c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'void' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'string' have no overlap.
var r5d1 = d == e;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'void' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'E' have no overlap.
var r5e1 = e == a; // no error, expected
var r5e1 = e == b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'E' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'boolean' have no overlap.
var r5e1 = e == c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'E' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'string' have no overlap.
var r5e1 = e == d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'E' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'void' have no overlap.
// operator !=
var r6a1 = a != b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'number' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'boolean' have no overlap.
var r6a1 = a != c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'number' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'string' have no overlap.
var r6a1 = a != d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'number' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'void' have no overlap.
var r6a1 = a != e; // no error, expected
var r6b1 = b != a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'boolean' and 'number'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'number' have no overlap.
var r6b1 = b != c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'boolean' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'string' have no overlap.
var r6b1 = b != d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'boolean' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'void' have no overlap.
var r6b1 = b != e;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'boolean' and 'E'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'E' have no overlap.
var r6c1 = c != a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'number' have no overlap.
var r6c1 = c != b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'string' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'boolean' have no overlap.
var r6c1 = c != d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'string' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'void' have no overlap.
var r6c1 = c != e;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'string' and 'E'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'E' have no overlap.
var r6d1 = d != a;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'void' and 'number'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'number' have no overlap.
var r6d1 = d != b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'void' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'boolean' have no overlap.
var r6d1 = d != c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'void' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'string' have no overlap.
var r6d1 = d != e;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'void' and 'E'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'E' have no overlap.
var r6e1 = e != a; // no error, expected
var r6e1 = e != b;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'E' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'E' and 'boolean' have no overlap.
var r6e1 = e != c;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'E' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'E' and 'string' have no overlap.
var r6e1 = e != d;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'E' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'E' and 'void' have no overlap.
// operator ===
var r7a1 = a === b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'number' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'boolean' have no overlap.
var r7a1 = a === c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'number' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'string' have no overlap.
var r7a1 = a === d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'number' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'void' have no overlap.
var r7a1 = a === e; // no error, expected
var r7b1 = b === a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'boolean' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'number' have no overlap.
var r7b1 = b === c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'boolean' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'string' have no overlap.
var r7b1 = b === d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'boolean' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'void' have no overlap.
var r7b1 = b === e;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'boolean' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'boolean' and 'E' have no overlap.
var r7c1 = c === a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
var r7c1 = c === b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'string' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'boolean' have no overlap.
var r7c1 = c === d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'string' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'void' have no overlap.
var r7c1 = c === e;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'string' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'E' have no overlap.
var r7d1 = d === a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'void' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'number' have no overlap.
var r7d1 = d === b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'void' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'boolean' have no overlap.
var r7d1 = d === c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'void' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'string' have no overlap.
var r7d1 = d === e;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'void' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'void' and 'E' have no overlap.
var r7e1 = e === a; // no error, expected
var r7e1 = e === b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'E' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'boolean' have no overlap.
var r7e1 = e === c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'E' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'string' have no overlap.
var r7e1 = e === d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'E' and 'void'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'void' have no overlap.
// operator !==
var r8a1 = a !== b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'number' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'boolean' have no overlap.
var r8a1 = a !== c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'number' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'string' have no overlap.
var r8a1 = a !== d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'number' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'void' have no overlap.
var r8a1 = a !== e; // no error, expected
var r8b1 = b !== a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'boolean' and 'number'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'number' have no overlap.
var r8b1 = b !== c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'boolean' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'string' have no overlap.
var r8b1 = b !== d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'boolean' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'void' have no overlap.
var r8b1 = b !== e;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'boolean' and 'E'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'E' have no overlap.
var r8c1 = c !== a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'number' have no overlap.
var r8c1 = c !== b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'string' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'boolean' have no overlap.
var r8c1 = c !== d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'string' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'void' have no overlap.
var r8c1 = c !== e;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'string' and 'E'.
!!! error TS2367: This condition will always return 'true' since the types 'string' and 'E' have no overlap.
var r8d1 = d !== a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'void' and 'number'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'number' have no overlap.
var r8d1 = d !== b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'void' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'boolean' have no overlap.
var r8d1 = d !== c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'void' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'string' have no overlap.
var r8d1 = d !== e;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'void' and 'E'.
!!! error TS2367: This condition will always return 'true' since the types 'void' and 'E' have no overlap.
var r8e1 = e !== a; // no error, expected
var r8e1 = e !== b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'E' and 'boolean'.
!!! error TS2367: This condition will always return 'true' since the types 'E' and 'boolean' have no overlap.
var r8e1 = e !== c;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'E' and 'string'.
!!! error TS2367: This condition will always return 'true' since the types 'E' and 'string' have no overlap.
var r8e1 = e !== d;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'E' and 'void'.
!!! error TS2367: This condition will always return 'true' since the types 'E' and 'void' have no overlap.
@@ -2,14 +2,10 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(13,14): error TS2365: Operator '>' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(14,14): error TS2365: Operator '<=' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(15,14): error TS2365: Operator '>=' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(16,14): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(17,14): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(18,14): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(19,14): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(16,14): error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(17,14): error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(18,14): error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(19,14): error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(22,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'boolean'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(23,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'number'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithNoRelationshipTypeParameter.ts(24,16): error TS2365: Operator '<' cannot be applied to types 'T' and 'string'.
@@ -150,20 +146,16 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
!!! error TS2365: Operator '>=' cannot be applied to types 'T' and 'U'.
var r5 = t == u;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
var r6 = t != u;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
var r7 = t === u;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
var r8 = t !== u;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
// operator <
var r1a1 = t < a;
@@ -2,50 +2,34 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(7,15): error TS2365: Operator '>' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(8,15): error TS2365: Operator '<=' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(9,15): error TS2365: Operator '>=' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(10,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(11,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(12,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(13,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'T' and 'U'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(10,15): error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(11,15): error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(12,15): error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(13,15): error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(15,15): error TS2365: Operator '<' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(16,15): error TS2365: Operator '>' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(17,15): error TS2365: Operator '<=' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(18,15): error TS2365: Operator '>=' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(19,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(20,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(21,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(22,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'U' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(19,15): error TS2367: This condition will always return 'false' since the types 'U' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(20,15): error TS2367: This condition will always return 'true' since the types 'U' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(21,15): error TS2367: This condition will always return 'false' since the types 'U' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(22,15): error TS2367: This condition will always return 'true' since the types 'U' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(24,15): error TS2365: Operator '<' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(25,15): error TS2365: Operator '>' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(26,15): error TS2365: Operator '<=' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(27,15): error TS2365: Operator '>=' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(28,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(29,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(30,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(31,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'T' and 'V'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(28,15): error TS2367: This condition will always return 'false' since the types 'T' and 'V' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(29,15): error TS2367: This condition will always return 'true' since the types 'T' and 'V' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(30,15): error TS2367: This condition will always return 'false' since the types 'T' and 'V' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(31,15): error TS2367: This condition will always return 'true' since the types 'T' and 'V' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(33,15): error TS2365: Operator '<' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(34,15): error TS2365: Operator '>' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(35,15): error TS2365: Operator '<=' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(36,15): error TS2365: Operator '>=' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(37,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(38,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(39,15): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(40,15): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'V' and 'T'.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(37,15): error TS2367: This condition will always return 'false' since the types 'V' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(38,15): error TS2367: This condition will always return 'true' since the types 'V' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(39,15): error TS2367: This condition will always return 'false' since the types 'V' and 'T' have no overlap.
tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts(40,15): error TS2367: This condition will always return 'true' since the types 'V' and 'T' have no overlap.
==== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithTypeParameter.ts (32 errors) ====
@@ -68,20 +52,16 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
!!! error TS2365: Operator '>=' cannot be applied to types 'T' and 'U'.
var ra5 = t == u;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
var ra6 = t != u;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
var ra7 = t === u;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'false' since the types 'T' and 'U' have no overlap.
var ra8 = t !== u;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'T' and 'U'.
!!! error TS2367: This condition will always return 'true' since the types 'T' and 'U' have no overlap.
var rb1 = u < t;
~~~~~
@@ -97,20 +77,16 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
!!! error TS2365: Operator '>=' cannot be applied to types 'U' and 'T'.
var rb5 = u == t;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'U' and 'T'.
!!! error TS2367: This condition will always return 'false' since the types 'U' and 'T' have no overlap.
var rb6 = u != t;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'U' and 'T'.
!!! error TS2367: This condition will always return 'true' since the types 'U' and 'T' have no overlap.
var rb7 = u === t;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'U' and 'T'.
!!! error TS2367: This condition will always return 'false' since the types 'U' and 'T' have no overlap.
var rb8 = u !== t;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'U' and 'T'.
!!! error TS2367: This condition will always return 'true' since the types 'U' and 'T' have no overlap.
var rc1 = t < v;
~~~~~
@@ -126,20 +102,16 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
!!! error TS2365: Operator '>=' cannot be applied to types 'T' and 'V'.
var rc5 = t == v;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'T' and 'V'.
!!! error TS2367: This condition will always return 'false' since the types 'T' and 'V' have no overlap.
var rc6 = t != v;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'T' and 'V'.
!!! error TS2367: This condition will always return 'true' since the types 'T' and 'V' have no overlap.
var rc7 = t === v;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'T' and 'V'.
!!! error TS2367: This condition will always return 'false' since the types 'T' and 'V' have no overlap.
var rc8 = t !== v;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'T' and 'V'.
!!! error TS2367: This condition will always return 'true' since the types 'T' and 'V' have no overlap.
var rd1 = v < t;
~~~~~
@@ -155,20 +127,16 @@ tests/cases/conformance/expressions/binaryOperators/comparisonOperator/compariso
!!! error TS2365: Operator '>=' cannot be applied to types 'V' and 'T'.
var rd5 = v == t;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'V' and 'T'.
!!! error TS2367: This condition will always return 'false' since the types 'V' and 'T' have no overlap.
var rd6 = v != t;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'V' and 'T'.
!!! error TS2367: This condition will always return 'true' since the types 'V' and 'T' have no overlap.
var rd7 = v === t;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'V' and 'T'.
!!! error TS2367: This condition will always return 'false' since the types 'V' and 'T' have no overlap.
var rd8 = v !== t;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'V' and 'T'.
!!! error TS2367: This condition will always return 'true' since the types 'V' and 'T' have no overlap.
// ok
var re1 = t < a;
@@ -1,5 +1,4 @@
tests/cases/conformance/types/union/discriminatedUnionTypes1.ts(89,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"A" | "B" | "C" | "D"' and '"X"'.
tests/cases/conformance/types/union/discriminatedUnionTypes1.ts(89,9): error TS2367: This condition will always return 'false' since the types '"A" | "B" | "C" | "D"' and '"X"' have no overlap.
==== tests/cases/conformance/types/union/discriminatedUnionTypes1.ts (1 errors) ====
@@ -93,8 +92,7 @@ tests/cases/conformance/types/union/discriminatedUnionTypes1.ts(89,9): error TS2
function f3(m: Message) {
if (m.kind === "X") {
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"A" | "B" | "C" | "D"' and '"X"'.
!!! error TS2367: This condition will always return 'false' since the types '"A" | "B" | "C" | "D"' and '"X"' have no overlap.
m; // never
}
}
@@ -7,12 +7,9 @@ tests/cases/conformance/types/literal/enumLiteralTypes3.ts(19,5): error TS2322:
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(37,5): error TS2322: Type 'Choice.Unknown' is not assignable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(39,5): error TS2322: Type 'Choice.No' is not assignable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(40,5): error TS2322: Type 'Choice.Unknown' is not assignable to type 'YesNo'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(52,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.Unknown'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(54,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.No'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(55,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'YesNo' and 'Choice.Unknown'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(52,5): error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.Unknown' have no overlap.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(54,5): error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.No' have no overlap.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(55,5): error TS2367: This condition will always return 'false' since the types 'YesNo' and 'Choice.Unknown' have no overlap.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(87,14): error TS2678: Type 'Choice.Unknown' is not comparable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(89,14): error TS2678: Type 'Choice.No' is not comparable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/enumLiteralTypes3.ts(96,14): error TS2678: Type 'Choice.Unknown' is not comparable to type 'YesNo'.
@@ -89,17 +86,14 @@ tests/cases/conformance/types/literal/enumLiteralTypes3.ts(96,14): error TS2678:
function f6(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) {
a === Choice.Unknown;
~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.Unknown'.
!!! error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.Unknown' have no overlap.
a === Choice.Yes;
a === Choice.No;
~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.No'.
!!! error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.No' have no overlap.
b === Choice.Unknown;
~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'YesNo' and 'Choice.Unknown'.
!!! error TS2367: This condition will always return 'false' since the types 'YesNo' and 'Choice.Unknown' have no overlap.
b === Choice.Yes;
b === Choice.No;
c === Choice.Unknown;
@@ -1,19 +1,11 @@
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(17,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'I1 & I3' and 'I2'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(17,16): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'I2' and 'I1 & I3'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(19,10): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'I1 & I3' and 'I2'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(19,21): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'I2' and 'I1 & I3'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(21,10): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'I1 & I3' and 'I2'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(21,20): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'I2' and 'I1 & I3'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(23,10): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'I1 & I3' and 'I2'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(23,20): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'I2' and 'I1 & I3'.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(17,5): error TS2367: This condition will always return 'false' since the types 'I1 & I3' and 'I2' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(17,16): error TS2367: This condition will always return 'false' since the types 'I2' and 'I1 & I3' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(19,10): error TS2367: This condition will always return 'true' since the types 'I1 & I3' and 'I2' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(19,21): error TS2367: This condition will always return 'true' since the types 'I2' and 'I1 & I3' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(21,10): error TS2367: This condition will always return 'false' since the types 'I1 & I3' and 'I2' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(21,20): error TS2367: This condition will always return 'false' since the types 'I2' and 'I1 & I3' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(23,10): error TS2367: This condition will always return 'true' since the types 'I1 & I3' and 'I2' have no overlap.
tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts(23,20): error TS2367: This condition will always return 'true' since the types 'I2' and 'I1 & I3' have no overlap.
==== tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersectionTypes01.ts (8 errors) ====
@@ -35,33 +27,25 @@ tests/cases/conformance/types/typeRelationships/comparable/equalityWithIntersect
if (y === z || z === y) {
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'I1 & I3' and 'I2'.
!!! error TS2367: This condition will always return 'false' since the types 'I1 & I3' and 'I2' have no overlap.
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'I2' and 'I1 & I3'.
!!! error TS2367: This condition will always return 'false' since the types 'I2' and 'I1 & I3' have no overlap.
}
else if (y !== z || z !== y) {
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'I1 & I3' and 'I2'.
!!! error TS2367: This condition will always return 'true' since the types 'I1 & I3' and 'I2' have no overlap.
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'I2' and 'I1 & I3'.
!!! error TS2367: This condition will always return 'true' since the types 'I2' and 'I1 & I3' have no overlap.
}
else if (y == z || z == y) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'I1 & I3' and 'I2'.
!!! error TS2367: This condition will always return 'false' since the types 'I1 & I3' and 'I2' have no overlap.
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'I2' and 'I1 & I3'.
!!! error TS2367: This condition will always return 'false' since the types 'I2' and 'I1 & I3' have no overlap.
}
else if (y != z || z != y) {
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'I1 & I3' and 'I2'.
!!! error TS2367: This condition will always return 'true' since the types 'I1 & I3' and 'I2' have no overlap.
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'I2' and 'I1 & I3'.
!!! error TS2367: This condition will always return 'true' since the types 'I2' and 'I1 & I3' have no overlap.
}
+14 -28
View File
@@ -1,17 +1,10 @@
tests/cases/compiler/expr.ts(87,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'number' and 'string'.
tests/cases/compiler/expr.ts(88,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'number' and 'boolean'.
tests/cases/compiler/expr.ts(94,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'number'.
tests/cases/compiler/expr.ts(95,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'boolean'.
tests/cases/compiler/expr.ts(98,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'E'.
tests/cases/compiler/expr.ts(115,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'E' and 'string'.
tests/cases/compiler/expr.ts(116,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'E' and 'false'.
tests/cases/compiler/expr.ts(87,5): error TS2367: This condition will always return 'false' since the types 'number' and 'string' have no overlap.
tests/cases/compiler/expr.ts(88,5): error TS2367: This condition will always return 'false' since the types 'number' and 'boolean' have no overlap.
tests/cases/compiler/expr.ts(94,5): error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
tests/cases/compiler/expr.ts(95,5): error TS2367: This condition will always return 'false' since the types 'string' and 'boolean' have no overlap.
tests/cases/compiler/expr.ts(98,5): error TS2367: This condition will always return 'false' since the types 'string' and 'E' have no overlap.
tests/cases/compiler/expr.ts(115,5): error TS2367: This condition will always return 'false' since the types 'E' and 'string' have no overlap.
tests/cases/compiler/expr.ts(116,5): error TS2367: This condition will always return 'false' since the types 'E' and 'false' have no overlap.
tests/cases/compiler/expr.ts(142,5): error TS2365: Operator '+' cannot be applied to types 'number' and 'false'.
tests/cases/compiler/expr.ts(143,5): error TS2365: Operator '+' cannot be applied to types 'number' and 'I'.
tests/cases/compiler/expr.ts(161,5): error TS2365: Operator '+' cannot be applied to types 'I' and 'number'.
@@ -165,12 +158,10 @@ tests/cases/compiler/expr.ts(242,7): error TS2363: The right-hand side of an ari
n==a;
n==s;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'number' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'string' have no overlap.
n==b;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'number' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'number' and 'boolean' have no overlap.
n==i;
n==n;
n==e;
@@ -178,18 +169,15 @@ tests/cases/compiler/expr.ts(242,7): error TS2363: The right-hand side of an ari
s==a;
s==n;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
s==b;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'boolean' have no overlap.
s==i;
s==s;
s==e;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'E'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'E' have no overlap.
a==n;
a==s;
@@ -208,12 +196,10 @@ tests/cases/compiler/expr.ts(242,7): error TS2363: The right-hand side of an ari
e==n;
e==s;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'E' and 'string'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'string' have no overlap.
e==b;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'E' and 'false'.
!!! error TS2367: This condition will always return 'false' since the types 'E' and 'false' have no overlap.
e==a;
e==i;
e==e;
@@ -1,7 +1,6 @@
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(4,16): error TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(5,16): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(6,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'string' and 'number'.
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(6,9): error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(8,16): error TS2339: Property 'unknownProperty' does not exist on type 'string'.
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(12,10): error TS2403: Subsequent variable declarations must have the same type. Variable 'i' must be of type 'number', but here has type 'string'.
tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.ts(16,10): error TS2403: Subsequent variable declarations must have the same type. Variable 'j' must be of type 'any', but here has type 'string'.
@@ -19,8 +18,7 @@ tests/cases/conformance/statements/for-inStatements/for-inStatementsArrayErrors.
!!! error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
if (x === 1) {
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
}
let a3 = x.unknownProperty;
~~~~~~~~~~~~~~~
@@ -1,5 +1,4 @@
tests/cases/compiler/infinitelyExpandingTypes1.ts(21,1): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'List<number>' and 'List<string>'.
tests/cases/compiler/infinitelyExpandingTypes1.ts(21,1): error TS2367: This condition will always return 'false' since the types 'List<number>' and 'List<string>' have no overlap.
==== tests/cases/compiler/infinitelyExpandingTypes1.ts (1 errors) ====
@@ -25,7 +24,6 @@ tests/cases/compiler/infinitelyExpandingTypes1.ts(21,1): error TS2367: The types
l == l2; // should error;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'List<number>' and 'List<string>'.
!!! error TS2367: This condition will always return 'false' since the types 'List<number>' and 'List<string>' have no overlap.
l == l; // should not error
@@ -22,24 +22,15 @@ tests/cases/conformance/types/literal/numericLiteralTypes3.ts(39,5): error TS232
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(40,5): error TS2322: Type '1' is not assignable to type 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(43,5): error TS2322: Type '0' is not assignable to type 'C'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(50,5): error TS2322: Type '3' is not assignable to type 'D'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(54,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '1' and '0'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(56,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '1' and '2'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(57,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '1' and '3'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(58,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'B' and '0'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(59,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'B' and '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(62,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'C' and '0'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(69,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'D' and '3'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(74,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '1' and 'B'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(77,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'B' and '1'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(54,5): error TS2367: This condition will always return 'false' since the types '1' and '0' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(56,5): error TS2367: This condition will always return 'false' since the types '1' and '2' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(57,5): error TS2367: This condition will always return 'false' since the types '1' and '3' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(58,5): error TS2367: This condition will always return 'false' since the types 'B' and '0' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(59,5): error TS2367: This condition will always return 'false' since the types 'B' and '1' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(62,5): error TS2367: This condition will always return 'false' since the types 'C' and '0' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(69,5): error TS2367: This condition will always return 'false' since the types 'D' and '3' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(74,5): error TS2367: This condition will always return 'false' since the types '1' and 'B' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(77,5): error TS2367: This condition will always return 'false' since the types 'B' and '1' have no overlap.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(94,14): error TS2678: Type '1' is not comparable to type '0 | 2 | 4'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(96,14): error TS2678: Type '3' is not comparable to type '0 | 2 | 4'.
tests/cases/conformance/types/literal/numericLiteralTypes3.ts(98,14): error TS2678: Type '5' is not comparable to type '0 | 2 | 4'.
@@ -141,31 +132,25 @@ tests/cases/conformance/types/literal/numericLiteralTypes3.ts(98,14): error TS26
function f6(a: A, b: B, c: C, d: D) {
a === 0;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '1' and '0'.
!!! error TS2367: This condition will always return 'false' since the types '1' and '0' have no overlap.
a === 1;
a === 2;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '1' and '2'.
!!! error TS2367: This condition will always return 'false' since the types '1' and '2' have no overlap.
a === 3;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '1' and '3'.
!!! error TS2367: This condition will always return 'false' since the types '1' and '3' have no overlap.
b === 0;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'B' and '0'.
!!! error TS2367: This condition will always return 'false' since the types 'B' and '0' have no overlap.
b === 1;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'B' and '1'.
!!! error TS2367: This condition will always return 'false' since the types 'B' and '1' have no overlap.
b === 2;
b === 3;
c === 0;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'C' and '0'.
!!! error TS2367: This condition will always return 'false' since the types 'C' and '0' have no overlap.
c === 1;
c === 2;
c === 3;
@@ -174,22 +159,19 @@ tests/cases/conformance/types/literal/numericLiteralTypes3.ts(98,14): error TS26
d === 2;
d === 3;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'D' and '3'.
!!! error TS2367: This condition will always return 'false' since the types 'D' and '3' have no overlap.
}
function f7(a: A, b: B, c: C, d: D) {
a === a;
a === b;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '1' and 'B'.
!!! error TS2367: This condition will always return 'false' since the types '1' and 'B' have no overlap.
a === c;
a === d;
b === a;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'B' and '1'.
!!! error TS2367: This condition will always return 'false' since the types 'B' and '1' have no overlap.
b === b;
b === c;
b === d;
@@ -7,12 +7,9 @@ tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(19,5): error TS
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(37,5): error TS2322: Type 'Choice.Unknown' is not assignable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(39,5): error TS2322: Type 'Choice.No' is not assignable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(40,5): error TS2322: Type 'Choice.Unknown' is not assignable to type 'YesNo'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(52,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.Unknown'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(54,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.No'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(55,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'YesNo' and 'Choice.Unknown'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(52,5): error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.Unknown' have no overlap.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(54,5): error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.No' have no overlap.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(55,5): error TS2367: This condition will always return 'false' since the types 'YesNo' and 'Choice.Unknown' have no overlap.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(87,14): error TS2678: Type 'Choice.Unknown' is not comparable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(89,14): error TS2678: Type 'Choice.No' is not comparable to type 'Choice.Yes'.
tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(96,14): error TS2678: Type 'Choice.Unknown' is not comparable to type 'YesNo'.
@@ -89,17 +86,14 @@ tests/cases/conformance/types/literal/stringEnumLiteralTypes3.ts(96,14): error T
function f6(a: Yes, b: YesNo, c: UnknownYesNo, d: Choice) {
a === Choice.Unknown;
~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.Unknown'.
!!! error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.Unknown' have no overlap.
a === Choice.Yes;
a === Choice.No;
~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'Choice.Yes' and 'Choice.No'.
!!! error TS2367: This condition will always return 'false' since the types 'Choice.Yes' and 'Choice.No' have no overlap.
b === Choice.Unknown;
~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'YesNo' and 'Choice.Unknown'.
!!! error TS2367: This condition will always return 'false' since the types 'YesNo' and 'Choice.Unknown' have no overlap.
b === Choice.Yes;
b === Choice.No;
c === Choice.Unknown;
@@ -7,10 +7,8 @@ tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperato
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(12,11): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(13,9): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(14,9): error TS2362: The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type.
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(16,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"ABC"' and '"XYZ"'.
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(17,9): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"ABC"' and '"XYZ"'.
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(16,9): error TS2367: This condition will always return 'false' since the types '"ABC"' and '"XYZ"' have no overlap.
tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts(17,9): error TS2367: This condition will always return 'true' since the types '"ABC"' and '"XYZ"' have no overlap.
==== tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperators02.ts (11 errors) ====
@@ -49,9 +47,7 @@ tests/cases/conformance/types/stringLiteral/stringLiteralTypesWithVariousOperato
let j = abc < xyz;
let k = abc === xyz;
~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"ABC"' and '"XYZ"'.
!!! error TS2367: This condition will always return 'false' since the types '"ABC"' and '"XYZ"' have no overlap.
let l = abc != xyz;
~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"ABC"' and '"XYZ"'.
!!! error TS2367: This condition will always return 'true' since the types '"ABC"' and '"XYZ"' have no overlap.
@@ -1,7 +1,5 @@
tests/cases/conformance/types/literal/stringLiteralsAssertionsInEqualityComparisons02.ts(3,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"foo"' and '"baz"'.
tests/cases/conformance/types/literal/stringLiteralsAssertionsInEqualityComparisons02.ts(5,9): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'string' and 'number'.
tests/cases/conformance/types/literal/stringLiteralsAssertionsInEqualityComparisons02.ts(3,9): error TS2367: This condition will always return 'false' since the types '"foo"' and '"baz"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsAssertionsInEqualityComparisons02.ts(5,9): error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsAssertionsInEqualityComparisons02.ts(5,19): error TS2352: Type 'string' cannot be converted to type 'number'.
@@ -10,13 +8,11 @@ tests/cases/conformance/types/literal/stringLiteralsAssertionsInEqualityComparis
var a = "foo" === "bar" as "baz";
~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"foo"' and '"baz"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"baz"' have no overlap.
var b = "foo" !== ("bar" as "foo");
var c = "foo" == (<number>"bar");
~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'string' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'string' and 'number' have no overlap.
~~~~~~~~~~~~~
!!! error TS2352: Type 'string' cannot be converted to type 'number'.
var d = "foo" === ("bar" as EnhancedString);
@@ -1,15 +1,9 @@
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(8,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(9,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"bar"' and '"foo"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(10,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(17,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(18,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"bar"' and '"foo"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(19,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(8,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(9,5): error TS2367: This condition will always return 'false' since the types '"bar"' and '"foo"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(10,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(17,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(18,5): error TS2367: This condition will always return 'true' since the types '"bar"' and '"foo"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(19,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
==== tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts (6 errors) ====
@@ -22,16 +16,13 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(19,5
b = y === "foo";
b = "foo" === "bar";
~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" === x;
~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"bar"' and '"foo"'.
!!! error TS2367: This condition will always return 'false' since the types '"bar"' and '"foo"' have no overlap.
b = x === "bar";
~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = y === "bar";
b = "bar" === y;
@@ -40,16 +31,13 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks01.ts(19,5
b = y !== "foo";
b = "foo" !== "bar";
~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" !== x;
~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"bar"' and '"foo"'.
!!! error TS2367: This condition will always return 'true' since the types '"bar"' and '"foo"' have no overlap.
b = x !== "bar";
~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
b = y !== "bar";
b = "bar" !== y;
@@ -1,15 +1,9 @@
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(8,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(9,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '"bar"' and '"foo"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(10,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(17,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(18,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"bar"' and '"foo"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(19,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(8,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(9,5): error TS2367: This condition will always return 'false' since the types '"bar"' and '"foo"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(10,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(17,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(18,5): error TS2367: This condition will always return 'true' since the types '"bar"' and '"foo"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(19,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
==== tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts (6 errors) ====
@@ -22,16 +16,13 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(19,5
b = y == "foo";
b = "foo" == "bar";
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" == x;
~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '"bar"' and '"foo"'.
!!! error TS2367: This condition will always return 'false' since the types '"bar"' and '"foo"' have no overlap.
b = x == "bar";
~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = y == "bar";
b = "bar" == y;
@@ -40,16 +31,13 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks02.ts(19,5
b = y != "foo";
b = "foo" != "bar";
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" != x;
~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"bar"' and '"foo"'.
!!! error TS2367: This condition will always return 'true' since the types '"bar"' and '"foo"' have no overlap.
b = x != "bar";
~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
b = y != "bar";
b = "bar" != y;
@@ -1,7 +1,5 @@
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts(16,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts(25,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts(16,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts(25,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
==== tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts (2 errors) ====
@@ -22,8 +20,7 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts(25,5
b = y === "foo";
b = "foo" === "bar";
~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" === x;
b = x === "bar";
b = y === "bar";
@@ -34,8 +31,7 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks03.ts(25,5
b = y !== "foo";
b = "foo" !== "bar";
~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" !== x;
b = x !== "bar";
b = y !== "bar";
@@ -1,7 +1,5 @@
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts(16,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts(25,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts(16,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts(25,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
==== tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts (2 errors) ====
@@ -22,8 +20,7 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts(25,5
b = y == "foo";
b = "foo" == "bar";
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" == x;
b = x == "bar";
b = y == "bar";
@@ -34,8 +31,7 @@ tests/cases/conformance/types/literal/stringLiteralsWithEqualityChecks04.ts(25,5
b = y != "foo";
b = "foo" != "bar";
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
b = "bar" != x;
b = x != "bar";
b = y != "bar";
@@ -1,7 +1,5 @@
tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements02.ts(8,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements02.ts(13,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements02.ts(8,5): error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements02.ts(13,5): error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
==== tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements02.ts (2 errors) ====
@@ -14,15 +12,13 @@ tests/cases/conformance/types/literal/stringLiteralsWithSwitchStatements02.ts(13
b = y == "foo";
b = "foo" == "bar";
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'false' since the types '"foo"' and '"bar"' have no overlap.
b = x != y;
b = "foo" != y
b = y != "foo";
b = "foo" != "bar";
~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"foo"' and '"bar"'.
!!! error TS2367: This condition will always return 'true' since the types '"foo"' and '"bar"' have no overlap.
@@ -1,11 +1,7 @@
tests/cases/conformance/es6/Symbols/symbolType9.ts(3,1): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'symbol' and 'boolean'.
tests/cases/conformance/es6/Symbols/symbolType9.ts(5,1): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types 'number' and 'symbol'.
tests/cases/conformance/es6/Symbols/symbolType9.ts(7,1): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types 'symbol' and 'number'.
tests/cases/conformance/es6/Symbols/symbolType9.ts(9,1): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types 'boolean' and 'symbol'.
tests/cases/conformance/es6/Symbols/symbolType9.ts(3,1): error TS2367: This condition will always return 'false' since the types 'symbol' and 'boolean' have no overlap.
tests/cases/conformance/es6/Symbols/symbolType9.ts(5,1): error TS2367: This condition will always return 'true' since the types 'number' and 'symbol' have no overlap.
tests/cases/conformance/es6/Symbols/symbolType9.ts(7,1): error TS2367: This condition will always return 'false' since the types 'symbol' and 'number' have no overlap.
tests/cases/conformance/es6/Symbols/symbolType9.ts(9,1): error TS2367: This condition will always return 'true' since the types 'boolean' and 'symbol' have no overlap.
==== tests/cases/conformance/es6/Symbols/symbolType9.ts (4 errors) ====
@@ -13,20 +9,16 @@ tests/cases/conformance/es6/Symbols/symbolType9.ts(9,1): error TS2367: The types
s == s;
s == true;
~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'symbol' and 'boolean'.
!!! error TS2367: This condition will always return 'false' since the types 'symbol' and 'boolean' have no overlap.
s != s;
0 != s;
~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types 'number' and 'symbol'.
!!! error TS2367: This condition will always return 'true' since the types 'number' and 'symbol' have no overlap.
s === s;
s === 1;
~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types 'symbol' and 'number'.
!!! error TS2367: This condition will always return 'false' since the types 'symbol' and 'number' have no overlap.
s !== s;
false !== s;
~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types 'boolean' and 'symbol'.
!!! error TS2367: This condition will always return 'true' since the types 'boolean' and 'symbol' have no overlap.
@@ -1,8 +1,7 @@
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts(13,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r1' must be of type 'string', but here has type 'number'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts(20,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r2' must be of type 'boolean', but here has type 'string'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts(27,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r3' must be of type 'number', but here has type 'boolean'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts(30,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts(30,5): error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHasNoEffect.ts(34,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r4' must be of type 'C', but here has type 'string'.
@@ -44,8 +43,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfEqualEqualHa
if (typeof strOrC == "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
var r4 = strOrC; // string | C
}
else {
@@ -1,8 +1,7 @@
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts(13,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r1' must be of type 'number', but here has type 'string'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts(20,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r2' must be of type 'string', but here has type 'boolean'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts(27,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r3' must be of type 'boolean', but here has type 'number'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts(30,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!=' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts(30,5): error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasNoEffect.ts(34,9): error TS2403: Subsequent variable declarations must have the same type. Variable 'r4' must be of type 'string', but here has type 'C'.
@@ -44,8 +43,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfNotEqualHasN
if (typeof strOrC != "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!=' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
var r4 = strOrC; // string | C
}
else {
@@ -1,23 +1,15 @@
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(21,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(27,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(33,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(21,5): error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(27,5): error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(33,5): error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(40,5): error TS2322: Type 'string | C' is not assignable to type 'C'.
Type 'string' is not assignable to type 'C'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(43,9): error TS2322: Type 'string | C' is not assignable to type 'string'.
Type 'C' is not assignable to type 'string'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(46,5): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(56,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(62,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(68,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,5): error TS2367: The types of these values indicate that this condition will always be 'true'.
Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(46,5): error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(56,5): error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(62,5): error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(68,5): error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,5): error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
==== tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts (10 errors) ====
@@ -43,8 +35,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
if (typeof strOrC === "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
c = strOrC; // C
}
else {
@@ -52,8 +43,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
}
if (typeof numOrC === "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
c = numOrC; // C
}
else {
@@ -61,8 +51,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
}
if (typeof boolOrC === "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
c = boolOrC; // C
}
else {
@@ -83,8 +72,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
if (typeof strOrNumOrBool === "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '===' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'false' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
let q1: {} = strOrNumOrBool; // {}
}
else {
@@ -96,8 +84,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
// - when false, narrows the type of x by typeof x === s when true.
if (typeof strOrC !== "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
var r2: string = strOrC; // string
}
else {
@@ -105,8 +92,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
}
if (typeof numOrC !== "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
var r3: number = numOrC; // number
}
else {
@@ -114,8 +100,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
}
if (typeof boolOrC !== "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
var r4: boolean = boolOrC; // boolean
}
else {
@@ -124,8 +109,7 @@ tests/cases/conformance/expressions/typeGuards/typeGuardOfFormTypeOfOther.ts(75,
if (typeof strOrNumOrBool !== "Object") {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'true'.
!!! error TS2367: Operator '!==' cannot be applied to types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"'.
!!! error TS2367: This condition will always return 'true' since the types '"string" | "number" | "boolean" | "symbol" | "undefined" | "object" | "function"' and '"Object"' have no overlap.
let q1: string | number | boolean = strOrNumOrBool; // string | number | boolean
}
else {
@@ -2,8 +2,7 @@ tests/cases/compiler/typeMatch1.ts(18,1): error TS2322: Type 'D' is not assignab
Types have separate declarations of a private property 'x'.
tests/cases/compiler/typeMatch1.ts(19,1): error TS2322: Type 'typeof C' is not assignable to type 'C'.
Property 'x' is missing in type 'typeof C'.
tests/cases/compiler/typeMatch1.ts(20,1): error TS2367: The types of these values indicate that this condition will always be 'false'.
Operator '==' cannot be applied to types 'typeof C' and 'typeof D'.
tests/cases/compiler/typeMatch1.ts(20,1): error TS2367: This condition will always return 'false' since the types 'typeof C' and 'typeof D' have no overlap.
==== tests/cases/compiler/typeMatch1.ts (3 errors) ====
@@ -34,8 +33,7 @@ tests/cases/compiler/typeMatch1.ts(20,1): error TS2367: The types of these value
!!! error TS2322: Property 'x' is missing in type 'typeof C'.
C==D;
~~~~
!!! error TS2367: The types of these values indicate that this condition will always be 'false'.
!!! error TS2367: Operator '==' cannot be applied to types 'typeof C' and 'typeof D'.
!!! error TS2367: This condition will always return 'false' since the types 'typeof C' and 'typeof D' have no overlap.
C==C;