Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Support generic type aliases that start with Option

Aperta
#208 2 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
38/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
scala

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

  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 softwaremill/quicklens

Tutte le issue di softwaremill/quicklens

Issue simili

Altre issue su Scala

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.