microsoft / microsoft/vscode-cpptools

Outline entries incorrect for specialized template classes containing namespace scopes

Offen
#12,908 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug Feature: Document Symbol Language Service
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

Repro code:

namespace test_namespace
{
	class A
	{
	};
}

template <typename T2>
class B
{
};

template <>
class B<test_namespace::A>
{
};

Resulting outline:

Image

It looks like a :'s from the namespace scope operator is being misinterpreted as a base-specifier colon.

(Maybe a possible fix would involve use of the lexer/BraceMatcher.)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit der bereitgestellten C++-Reproduktion und untersuche, wie das outline rund um den lexer oder BraceMatcher geparst wird, wie im issue vorgeschlagen. Als erledigt gilt die Aufgabe, wenn die spezialisierte Template-Klasse im outline korrekt dargestellt wird und der Namespace-Scope-Operator vom Doppelpunkt des Basisklassenspezifizierers unterschieden wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
compilers, devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.