mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-11 19:27:35 -06:00
Revert "Don't consider 'typeof a' as using 'a' (#28528)"
This reverts commit 0c4ceeec24f16f87e75386355c86ac38612a1175.
This commit is contained in:
parent
21965c16ca
commit
1f34a4e25f
@ -1483,7 +1483,7 @@ namespace ts {
|
||||
// We just climbed up parents looking for the name, meaning that we started in a descendant node of `lastLocation`.
|
||||
// If `result === lastSelfReferenceLocation.symbol`, that means that we are somewhere inside `lastSelfReferenceLocation` looking up a name, and resolving to `lastLocation` itself.
|
||||
// That means that this is a self-reference of `lastLocation`, and shouldn't count this when considering whether `lastLocation` is used.
|
||||
if (isUse && result && (!lastSelfReferenceLocation || result !== lastSelfReferenceLocation.symbol) && !isInTypeQuery(originalLocation!)) {
|
||||
if (isUse && result && (!lastSelfReferenceLocation || result !== lastSelfReferenceLocation.symbol)) {
|
||||
result.isReferenced! |= meaning;
|
||||
}
|
||||
|
||||
@ -19055,7 +19055,7 @@ namespace ts {
|
||||
}
|
||||
|
||||
function markPropertyAsReferenced(prop: Symbol, nodeForCheckWriteOnly: Node | undefined, isThisAccess: boolean) {
|
||||
if (nodeForCheckWriteOnly && isInTypeQuery(nodeForCheckWriteOnly) || !(prop.flags & SymbolFlags.ClassMember) || !prop.valueDeclaration || !hasModifier(prop.valueDeclaration, ModifierFlags.Private)) {
|
||||
if (!prop || !(prop.flags & SymbolFlags.ClassMember) || !prop.valueDeclaration || !hasModifier(prop.valueDeclaration, ModifierFlags.Private)) {
|
||||
return;
|
||||
}
|
||||
if (nodeForCheckWriteOnly && isWriteOnlyAccess(nodeForCheckWriteOnly) && !(prop.flags & SymbolFlags.SetAccessor && !(prop.flags & SymbolFlags.GetAccessor))) {
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
tests/cases/compiler/unusedParameterUsedInTypeOf.ts(1,14): error TS6133: 'a' is declared but its value is never read.
|
||||
|
||||
|
||||
==== tests/cases/compiler/unusedParameterUsedInTypeOf.ts (1 errors) ====
|
||||
function f1 (a: number, b: typeof a) {
|
||||
~
|
||||
!!! error TS6133: 'a' is declared but its value is never read.
|
||||
return b;
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
tests/cases/compiler/unusedPropertyUsedInTypeOf.ts(2,29): error TS6133: 'x' is declared but its value is never read.
|
||||
|
||||
|
||||
==== tests/cases/compiler/unusedPropertyUsedInTypeOf.ts (1 errors) ====
|
||||
class C {
|
||||
private static readonly x: number;
|
||||
~
|
||||
!!! error TS6133: 'x' is declared but its value is never read.
|
||||
m(p: typeof C.x) { return p; }
|
||||
}
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
//// [unusedPropertyUsedInTypeOf.ts]
|
||||
class C {
|
||||
private static readonly x: number;
|
||||
m(p: typeof C.x) { return p; }
|
||||
}
|
||||
|
||||
|
||||
//// [unusedPropertyUsedInTypeOf.js]
|
||||
var C = /** @class */ (function () {
|
||||
function C() {
|
||||
}
|
||||
C.prototype.m = function (p) { return p; };
|
||||
return C;
|
||||
}());
|
||||
@ -1,16 +0,0 @@
|
||||
=== tests/cases/compiler/unusedPropertyUsedInTypeOf.ts ===
|
||||
class C {
|
||||
>C : Symbol(C, Decl(unusedPropertyUsedInTypeOf.ts, 0, 0))
|
||||
|
||||
private static readonly x: number;
|
||||
>x : Symbol(C.x, Decl(unusedPropertyUsedInTypeOf.ts, 0, 9))
|
||||
|
||||
m(p: typeof C.x) { return p; }
|
||||
>m : Symbol(C.m, Decl(unusedPropertyUsedInTypeOf.ts, 1, 38))
|
||||
>p : Symbol(p, Decl(unusedPropertyUsedInTypeOf.ts, 2, 6))
|
||||
>C.x : Symbol(C.x, Decl(unusedPropertyUsedInTypeOf.ts, 0, 9))
|
||||
>C : Symbol(C, Decl(unusedPropertyUsedInTypeOf.ts, 0, 0))
|
||||
>x : Symbol(C.x, Decl(unusedPropertyUsedInTypeOf.ts, 0, 9))
|
||||
>p : Symbol(p, Decl(unusedPropertyUsedInTypeOf.ts, 2, 6))
|
||||
}
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
=== tests/cases/compiler/unusedPropertyUsedInTypeOf.ts ===
|
||||
class C {
|
||||
>C : C
|
||||
|
||||
private static readonly x: number;
|
||||
>x : number
|
||||
|
||||
m(p: typeof C.x) { return p; }
|
||||
>m : (p: number) => number
|
||||
>p : number
|
||||
>C.x : number
|
||||
>C : typeof C
|
||||
>x : number
|
||||
>p : number
|
||||
}
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
// @noUnusedLocals:true
|
||||
// @noUnusedParameters:true
|
||||
|
||||
class C {
|
||||
private static readonly x: number;
|
||||
m(p: typeof C.x) { return p; }
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user