From 1687b4b2846ffabbc98d367aee75da16bb8cd21a Mon Sep 17 00:00:00 2001 From: Joseph Watts Date: Tue, 9 Oct 2018 13:20:01 -0400 Subject: [PATCH 1/2] Fix display of private names in language server Signed-off-by: Joseph Watts --- src/compiler/checker.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 909ec5e82b21b..5888eb6f0b01f 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -4171,7 +4171,10 @@ namespace ts { context.flags ^= NodeBuilderFlags.InInitialEntityName; } let firstChar = symbolName.charCodeAt(0); - const canUsePropertyAccess = isIdentifierStart(firstChar, languageVersion); + const canUsePropertyAccess = firstChar === CharacterCodes.hash ? + symbolName.length > 1 && isIdentifierStart(symbolName.charCodeAt(1), languageVersion) : + isIdentifierStart(firstChar, languageVersion); + if (index === 0 || canUsePropertyAccess) { const identifier = setEmitFlags(createIdentifier(symbolName, typeParameterNodes), EmitFlags.NoAsciiEscaping); identifier.symbol = symbol; From 3fc37568525dfa4b6096e9c5d8daf75b9e5a91ee Mon Sep 17 00:00:00 2001 From: Joseph Watts Date: Tue, 9 Oct 2018 14:16:34 -0400 Subject: [PATCH 2/2] Accept baseline changes Signed-off-by: Joseph Watts --- tests/baselines/reference/privateNameField.symbols | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/baselines/reference/privateNameField.symbols b/tests/baselines/reference/privateNameField.symbols index a9ab08325a0e1..cbaedbc596caf 100644 --- a/tests/baselines/reference/privateNameField.symbols +++ b/tests/baselines/reference/privateNameField.symbols @@ -3,13 +3,13 @@ class A { >A : Symbol(A, Decl(privateNameField.ts, 0, 0)) #name: string; ->#name : Symbol(A[#name], Decl(privateNameField.ts, 0, 9)) +>#name : Symbol(A.#name, Decl(privateNameField.ts, 0, 9)) constructor(name: string) { >name : Symbol(name, Decl(privateNameField.ts, 2, 16)) this.#name = name; ->this.#name : Symbol(A[#name], Decl(privateNameField.ts, 0, 9)) +>this.#name : Symbol(A.#name, Decl(privateNameField.ts, 0, 9)) >this : Symbol(A, Decl(privateNameField.ts, 0, 0)) >name : Symbol(name, Decl(privateNameField.ts, 2, 16)) }