ExplicitVisit method for some TSqlFragment descendant classes is never called

Aperta
#145 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
csharp, sql
Ambito
devtools

Direzione di ricerca

Inizia con TSqlFragmentVisitor e i relativi metodi ExplicitVisit, quindi confronta il dispatch di DataModificationStatement con discendenti concreti come InsertStatement. Verifica in che modo Visit e TSqlConcreteFragmentVisitor dovrebbero differire. Il lavoro è completo quando il comportamento del dispatch delle classi astratte è stato risolto e sono stati documentati i casi in cui usare ExplicitVisit, Visit e TSqlConcreteFragmentVisitor.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

For example, TSqlFragmentVisitor has virtual method for visiting DataModificationStatement - ExplicitVisit(DataModificationStatement) which can be overridden and "used" for whatever reason in an app... The thing is - it is never called. There is no code invoking ExplicitVisit for this abstract class and many others. These methods are stillborn and it takes some time to realize that the code does not work and to discover why. For concrete descendants of DataModificationStatement (InsertStatement etc.) it does work as expected.

Consider removing such stillborn methods from TSqlFragmentVisitor or mark them sealed or start invoking them.

Also it'd be great to improve documentation: please elaborate scenarios in which ExplicitVisit method should be used instead of Visit, when TSqlConcreteFragmentVisitor should be utilized.

Lingua principale
GAP
Stelle
277
Fork
43
Merge medio
6g 17h
PR unite (30g)
3

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/SqlScriptDOM

Tutte le issue di microsoft/SqlScriptDOM

Issue simili

Altre issue su DevTools

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.