Skip to content

Typer regression in http4s/http4s #26625

Description

@WojciechMazur

Based on the OpenCB failure in http4s/http4s - build logs

Compiler version

3.9.0-RC4
Works fine in 3.8.4

Bisect points to 7954ffc / #26161

Minimized code

trait QValue
object QValue:
  val One: QValue = new QValue {}

object LanguageTag:
  def apply(primaryTag: String, subTags: String*): LanguageTag =
    LanguageTag(primaryTag, QValue.One, subTags.toList)

final case class LanguageTag(
    primaryTag: String,
    q: QValue = QValue.One,
    subTags: List[String] = Nil
)

def test(pair: (String, List[String])): LanguageTag =
  pair match
    case (main: String, sub: collection.Seq[String]) =>
      LanguageTag(main, QValue.One, sub)

Output

-- [E134] Type Error: /Users/wmazur/projects/scala/community-build3/http4s.scala:19:6 
19 |      LanguageTag(main, QValue.One, sub)
   |      ^^^^^^^^^^^
   |None of the overloaded alternatives of method apply in object LanguageTag with types
   | (primaryTag: String, subTags: String*): LanguageTag
   | (primaryTag²: String, q: QValue, subTags²: List[String]): LanguageTag
   |match arguments ((main : String), (QValue.One : QValue), (sub : scala.collection.Seq[String]))
   |
   |where:    primaryTag  is a reference to a value parameter
   |          primaryTag² is a reference to a value parameter
   |          subTags     is a reference to a value parameter
   |          subTags²    is a reference to a value parameter

Expectation

Should most likely continue to compile

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions