fix(44701): allow renaming string literal in rhs/lhs of equality (#44708)

This commit is contained in:
Oleksandr T 2021-07-17 00:45:06 +03:00 committed by GitHub
parent 193b7494d0
commit ba2e2600c8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 7 deletions

View File

@ -802,6 +802,11 @@ namespace ts {
return contextualType;
}
const parent = node.parent;
if (parent && isBinaryExpression(parent) && isEqualityOperatorKind(parent.operatorToken.kind)) {
return checker.getTypeAtLocation(node === parent.left ? parent.right : parent.left);
}
const ancestorTypeNode = getAncestorTypeNode(node);
return ancestorTypeNode && checker.getTypeAtLocation(ancestorTypeNode);
}

View File

@ -9,10 +9,3 @@
//// ff.f = '[|foo|]'
verify.rangesWithSameTextAreRenameLocations("foo");
interface Foo {
f: 'foo' | 'bar'
}
const d: 'foo' = 'foo'
declare const f: Foo
f.f = 'foo'

View File

@ -0,0 +1,22 @@
/// <reference path='fourslash.ts' />
////type Foo = "[|a|]" | "b";
////
////class C {
//// p: Foo = "[|a|]";
//// m() {
//// if (this.p === "[|a|]") {}
//// if ("[|a|]" === this.p) {}
////
//// if (this.p !== "[|a|]") {}
//// if ("[|a|]" !== this.p) {}
////
//// if (this.p == "[|a|]") {}
//// if ("[|a|]" == this.p) {}
////
//// if (this.p != "[|a|]") {}
//// if ("[|a|]" != this.p) {}
//// }
////}
verify.rangesWithSameTextAreRenameLocations("a");