A canonical path should have all existing components canonicalized
- Lingua principale
- C#
- Stelle
- 104
- Fork
- 15
- Merge medio
- 9m
- PR unite (30g)
- 2
Descrizione
Currently, `AbsolutePath::Canonicalize` will mostly do nothing for a non-existing path, it will be returned as-is.
Which is mostly fine, but might cause misinterpretation on the user's side: e.g. while `myPath.Canonicalize()` is okay-ish and follows the spec "canonical if exists", `myPath.Canonicalize().Parent` is not okay — if `myPath` doesn't exist then this will _not_ be canonicalized, even if existing.
We should think about this situation, perhaps let's introduce two more methods?
- `CanonicalIfExists(): AbsolutePath?`
- `CanonicalRecursive(): AbsolutePath` — which will essentially do `CanonicalIfExists() ?? Parent.CanonicalRecursive() / FileName` — e.g. will try to canonicalize existing parent chain whenever possible
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia con AbsolutePath::Canonicalize e gli esempi nell’issue, concentrandoti sul comportamento per i percorsi inesistenti e i parent esistenti. Decidi se CanonicalIfExists e CanonicalRecursive siano l’API appropriata, includendo la semantica del loro valore restituito e della catena dei parent. Il lavoro è completo quando il comportamento di canonicalizzazione e i contratti dei metodi sono chiaramente definiti e coperti dai test pertinenti del progetto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- csharp
- Ambito
- operating-systems
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100