Support generic type aliases that start with Option
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- scala
- Ambito
- developer-experience
Direzione di ricerca
Inizia con il reproducer nell’issue e segui l’estensione each e la ricerca dell’istanza QuicklensFunctor mostrate nell’errore del compilatore. Conferma il comportamento per Option[Wrapper[String]], quindi verifica che il caso dell’alias OptWrap[T] venga compilato e supporti .each.value.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Let's consider case class containing optional wrapped generic field:
case class Wrapper[T](value: T)
case class X(f1: Option[Wrapper[String]])
val x = X(Option(Wrapper("test")))
modify(x)(_.f1.each.value).using(duplicate)
It works correctly.
But if we define generic type alias like that:
case class Wrapper[T](value: T)
type OptWrap[T] = Option[Wrapper[T]]
case class X(f1: OptWrap[String])
val x = X(Option(Wrapper("test")))
modify(x)(_.f1.each.value).using(duplicate)
then it fails to compile with error:
value each is not a member of ModifyEachTest.this.OptWrap[String].
An extension method was tried, but could not be fully constructed:
com.softwaremill.quicklens.each[[T] =>> Option[ModifyEachTest.this.Wrapper[T]],
String](_$8.f1)(
com.softwaremill.quicklens.QuicklensFunctor.given_QuicklensFunctor_M[K, M])
failed with:
No given instance of type com.softwaremill.quicklens.QuicklensFunctor[
[T] =>> Option[ModifyEachTest.this.Wrapper[T]]] was found for an implicit parameter of method each in package com.softwaremill.quicklens.
I found:
com.softwaremill.quicklens.QuicklensFunctor.given_QuicklensFunctor_M[K, M]
But given instance given_QuicklensFunctor_M in object QuicklensFunctor does not match type com.softwaremill.quicklens.QuicklensFunctor[
[T] =>> Option[ModifyEachTest.this.Wrapper[T]]].
modify(x)(_.f1.each.value).using(duplicate)
Is it possible to support such cases in quicklens?
- Lingua principale
- Scala
- Stelle
- 851
- Fork
- 53
- Merge medio
- 3g 8h
- PR unite (30g)
- 3
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di softwaremill/quicklens
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
softwaremill/quicklens#296 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
softwaremill/quicklens#291 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
softwaremill/quicklens#258 · 4 commenti ·
-
Cannot use modify in opaque typesForse di nuovo libera @KacperFKorban l’ha presa 835 giorni fa e non c’è nessuna pull request aperta. Aperta
softwaremill/quicklens#234 · 2 commenti · 1 assegnatario ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
softwaremill/quicklens#116 · 1 commento ·
Tutte le issue di softwaremill/quicklens
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
bug triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
propensive/soundness#2266 ·
I maintainer di solito rispondono entro 1 giorno
-
Module: Form Builder
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
orbeon/orbeon-forms#7943 ·
I maintainer di solito rispondono entro 2 giorni
-
bbb-web: concurrent joins lose RegisterUserReqMsg (HashMap race in Meeting.userCustomData)Forse già presa @ArsenFesiuk l’ha presa 1 giorno fa. Apertamodule: core
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
bigbluebutton/bigbluebutton#26028 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno