31 lines
1.2 KiB
Scala
31 lines
1.2 KiB
Scala
// What is this test in place to test for?
|
|
//
|
|
class One[A]
|
|
class Two[A, B]
|
|
class Fix[Op[A]](x : Op[Fix[Op]])
|
|
|
|
class FixTest {
|
|
// works
|
|
// val zero = new Fix[One](new One)
|
|
|
|
// don't work:
|
|
val two = new Fix(new Two) // this was what I found here
|
|
val zero = new Fix(new One) // this seems like something which could plausibly work
|
|
|
|
// neg/t0653.scala:12: error: no type parameters for constructor Fix: (x: Op[Fix[Op[A]]])Fix[Op[A]] exist so that it can be applied to arguments (Two[Nothing,Nothing])
|
|
// --- because ---
|
|
// argument expression's type is not compatible with formal parameter type;
|
|
// found : Two[Nothing,Nothing]
|
|
// required: ?Op[ Fix[?Op[ A ]] ]
|
|
// val two = new Fix(new Two) // this was what I found here
|
|
// ^
|
|
// neg/t0653.scala:13: error: no type parameters for constructor Fix: (x: Op[Fix[Op[A]]])Fix[Op[A]] exist so that it can be applied to arguments (One[Nothing])
|
|
// --- because ---
|
|
// argument expression's type is not compatible with formal parameter type;
|
|
// found : One[Nothing]
|
|
// required: ?Op[ Fix[?Op[ A ]] ]
|
|
// val zero = new Fix(new One) // this seems like something which could plausibly work
|
|
// ^
|
|
// two errors found
|
|
}
|