Skip to content

Hygiene of constructor default args is not per spec #22700

Open
@som-snytt

Description

@som-snytt

Compiler version

3.6.3

Minimized code

//import Settings.*

object Settings {
  def x = 0
}

case class Settings(value: Double = x)

Output

  snips scala-cli compile --server=false -S 2.13.16 default-arg-hygiene.scala
/home/amarki/snips/default-arg-hygiene.scala:8: error: not found: value x
case class Settings(value: Double = x)
                                    ^
1 error
Compilation failed
  snips scala-cli compile --server=false -S 3.6.3 default-arg-hygiene.scala
  snips

Expectation

Obviously, x is not visible at the default arg. Successful compilation is an artifact of bad hygiene.

Expect (and require) an error as in Scala 2.

Observed at #22690 (comment)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions