Closed
Description
Compiler version
3.0.0-RC3
Minimized code
import scala.quoted.*
class C(using q: Quotes)(i: Int = 1, f: q.reflect.Flags = q.reflect.Flags.EmptyFlags)
def test1a(using q: Quotes) = new C()
def test2a(using q: Quotes) = new C(1)
def test3a(using q: Quotes) = new C(1, q.reflect.Flags.Lazy)
def test4a(using q: Quotes) = new C(f = q.reflect.Flags.Lazy)
def test1b(using q: Quotes) = C()
def test2b(using q: Quotes) = C(1)
def test3b(using q: Quotes) = C(1, q.reflect.Flags.Lazy)
def test4b(using q: Quotes) = C(f = q.reflect.Flags.Lazy)
def test1c(using q: Quotes) = new C(using q)()
def test2c(using q: Quotes) = new C(using q)(1)
def test3c(using q: Quotes) = new C(using q)(1, q.reflect.Flags.Lazy)
def test4c(using q: Quotes) = new C(using q)(f = q.reflect.Flags.Lazy)
def test1d(using q: Quotes) = C(using q)()
def test2d(using q: Quotes) = C(using q)(1)
def test3d(using q: Quotes) = C(using q)(1, q.reflect.Flags.Lazy)
def test4d(using q: Quotes) = C(using q)(f = q.reflect.Flags.Lazy)
Output
[error] -- Error: a.scala:5:30 ----------------
[error] 5 |def test1a(using q: Quotes) = new C()
[error] | ^^^^^^^
[error] | missing arguments for constructor C in class C
[error] -- Error: a.scala:6:36 ----------------
[error] 6 |def test2a(using q: Quotes) = new C(1)
[error] | ^
[error] |too many arguments for constructor C in class C: ()(using q: quoted.Quotes)(i: Int, f: q.reflect.Flags): C
[error] -- Error: a.scala:7:36 ----------------
[error] 7 |def test3a(using q: Quotes) = new C(1, q.reflect.Flags.Lazy)
[error] | ^
[error] |too many arguments for constructor C in class C: ()(using q: quoted.Quotes)(i: Int, f: q.reflect.Flags): C
[error] -- Error: a.scala:8:38 ----------------
[error] 8 |def test4a(using q: Quotes) = new C(f = q.reflect.Flags.Lazy)
[error] | ^^^^^^^^^^^^^^^^^^^^^^^^
[error] |constructor C in class C: ()(using q: quoted.Quotes)(i: Int, f: q.reflect.Flags): C does not have a parameter f
[error] -- Error: a.scala:10:30 ---------------
[error] 10 |def test1b(using q: Quotes) = C()
[error] | ^^^
[error] | missing arguments for constructor C in class C
[error] -- Error: a.scala:11:32 ---------------
[error] 11 |def test2b(using q: Quotes) = C(1)
[error] | ^
[error] |too many arguments for constructor C in class C: ()(using q: quoted.Quotes)(i: Int, f: q.reflect.Flags): C
[error] -- Error: a.scala:12:32 ---------------
[error] 12 |def test3b(using q: Quotes) = C(1, q.reflect.Flags.Lazy)
[error] | ^
[error] |too many arguments for constructor C in class C: ()(using q: quoted.Quotes)(i: Int, f: q.reflect.Flags): C
[error] -- Error: a.scala:13:34 ---------------
[error] 13 |def test4b(using q: Quotes) = C(f = q.reflect.Flags.Lazy)
[error] | ^^^^^^^^^^^^^^^^^^^^^^^^
[error] |constructor C in class C: ()(using q: quoted.Quotes)(i: Int, f: q.reflect.Flags): C does not have a parameter f
[error] -- Error: a.scala:15:34 ---------------
[error] 15 |def test1c(using q: Quotes) = new C(using q)()
[error] | ^^^^^^^^^^
[error] |wrong number of arguments at <no phase> for (using q: quoted.Quotes): Int @uncheckedVariance: (C.$lessinit$greater$default$2 :
[error] | (using q: quoted.Quotes): Int @uncheckedVariance
[error] |), expected: 1, found: 0
[error] -- Error: a.scala:16:34 ---------------
[error] 16 |def test2c(using q: Quotes) = new C(using q)(1)
[error] | ^^^^^^^^^^
[error] |wrong number of arguments at <no phase> for (using q: quoted.Quotes): q.reflect.Flags: (C.$lessinit$greater$default$3 : (using q: quoted.Quotes): q.reflect.Flags), expected: 1, found: 0
[error] -- Error: a.scala:18:34 ---------------
[error] 18 |def test4c(using q: Quotes) = new C(using q)(f = q.reflect.Flags.Lazy)
[error] | ^^^^^^^^^^
[error] |wrong number of arguments at <no phase> for (using q: quoted.Quotes): Int @uncheckedVariance: (C.$lessinit$greater$default$2 :
[error] | (using q: quoted.Quotes): Int @uncheckedVariance
[error] |), expected: 1, found: 0
[error] -- Error: a.scala:20:30 ---------------
[error] 20 |def test1d(using q: Quotes) = C(using q)()
[error] | ^^^^^^^^^^
[error] |wrong number of arguments at <no phase> for (using q: quoted.Quotes): Int @uncheckedVariance: (C.$lessinit$greater$default$2 :
[error] | (using q: quoted.Quotes): Int @uncheckedVariance
[error] |), expected: 1, found: 0
[error] -- Error: a.scala:21:30 ---------------
[error] 21 |def test2d(using q: Quotes) = C(using q)(1)
[error] | ^^^^^^^^^^
[error] |wrong number of arguments at <no phase> for (using q: quoted.Quotes): q.reflect.Flags: (C.$lessinit$greater$default$3 : (using q: quoted.Quotes): q.reflect.Flags), expected: 1, found: 0
[error] -- Error: a.scala:23:30 ---------------
[error] 23 |def test4d(using q: Quotes) = C(using q)(f = q.reflect.Flags.Lazy)
[error] | ^^^^^^^^^^
[error] |wrong number of arguments at <no phase> for (using q: quoted.Quotes): Int @uncheckedVariance: (C.$lessinit$greater$default$2 :
[error] | (using q: quoted.Quotes): Int @uncheckedVariance
[error] |), expected: 1, found: 0
[error] 14 errors found
Expectation
Everything should compile. Only test3c
and test3d
compile.