Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Cannot use modify in opaque types

Abierto
#234 2 comentarios 0 reacciones 1 asignado Ver en GitHub

@KacperFKorban ya está trabajando en esto.

Desde el 30/6/2024.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

Following opaque type has defined both getters and copy, but it is not possible to use quicklens on it:

import com.softwaremill.quicklens.*

object Types {
  case class V(x: Double, y: Double)

  opaque type Vec = V

  object Vec {
    def apply(x: Double, y: Double): Vec = V(x, y)
  }
  extension (v: Vec) {
    def x: Double = v.x
    def y: Double = v.y
    def copy(x: Double = v.x, y: Double = v.y): Vec = V(x, y)
  }
}

object Main {
  import Types.*
  def main(args: Array[String]): Unit = {
    val a = Vec(1, 2)
    val b = a.modify(_.x).using(_ + 1)
    println(b)
  }

}

With Scala 3.4.2 the error is:

Unsupported path element. Path must have shape: .field1.field2.each.field3.(...), got: (($1: Types.Vec) => Types.x($1))
val b = a.modify(
.x).using(_ + 1)

Lenguaje dominante
Scala
Estrellas
851
Forks
53
Merge medio
3 d 8 h
PR fusionados (30 d)
3

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de softwaremill/quicklens

Todos los issues de softwaremill/quicklens

Issues similares

Más issues de Scala

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.