@@ -46,16 +46,16 @@ object Checkable {
46
46
* 1. if `P` is a singleton type, TRUE
47
47
* 2. if `P` is WildcardType, TRUE
48
48
* 3. if `P = T @unchecked`, TRUE
49
- * 3 . if `P` refers to an abstract type member, FALSE
50
- * 4 . if `P = Array[T]`, checkable(E, T) where `E` is the element type of `X`, defaults to `Any`.
51
- * 5 . if `P` is `pre.F[Ts]` and `pre.F` refers to a class which is not `Array`:
49
+ * 4 . if `P` refers to an abstract type member, FALSE
50
+ * 5 . if `P = Array[T]`, checkable(E, T) where `E` is the element type of `X`, defaults to `Any`.
51
+ * 6 . if `P` is `pre.F[Ts]` and `pre.F` refers to a class which is not `Array`:
52
52
* (a) replace `Ts` with fresh type variables `Xs`
53
53
* (b) instantiate `Xs` with the constraint `pre.F[Xs] <:< X`
54
54
* (c) `pre.F[Xs] <:< P2`, where `P2` is `P` with pattern binder types (e.g., `_$1`)
55
55
* replaced with `WildcardType`.
56
- * 6 . if `P = T1 | T2` or `P = T1 & T2`, checkable(X, T1) && checkable(X, T2).
57
- * 7 . if `P` is a refinement type, FALSE
58
- * 8 . otherwise, TRUE
56
+ * 7 . if `P = T1 | T2` or `P = T1 & T2`, checkable(X, T1) && checkable(X, T2).
57
+ * 8 . if `P` is a refinement type, FALSE
58
+ * 9 . otherwise, TRUE
59
59
*/
60
60
def checkable (X : Type , P : Type )(implicit ctx : Context ): Boolean = {
61
61
def Psym = P .dealias.typeSymbol
0 commit comments