Skip to content

Information about type bounds is lost for class members #16105

Closed
@WojciechMazur

Description

@WojciechMazur

Regression found in Open CB #271 for scalikejdbc/scalikejdbc

Compiler version

Works in 3.2.1-RC1
Fails in 3.2.1-RC2
Fails in 3.2.2-RC1-bin-20220925-562ab85-NIGHTLY

Bisect points to 57f53d0

Minimized code

trait SQLSyntaxSupport[A]

trait ResultNameSQLSyntaxProvider[S <: SQLSyntaxSupport[A], A]
trait QuerySQLSyntaxProvider[S <: SQLSyntaxSupport[A], A]{
  def resultName: ResultNameSQLSyntaxProvider[S, A] = ???
}

def include(syntaxProviders: QuerySQLSyntaxProvider[_, _]*) = {
  syntax(syntaxProviders.map(_.resultName): _*)
}

def syntax(resultNames: ResultNameSQLSyntaxProvider[_, _]*) = ???

Output

[error] ./test.scala:9:30: Found:    ResultNameSQLSyntaxProvider[_$1.S, _$1.A]
[error] Required: ResultNameSQLSyntaxProvider[? <: SQLSyntaxSupport[A], ?]
[error]   syntax(syntaxProviders.map(_.resultName): _*)
[error]       

Expectation

Should compile

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions