1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
|
=== tests/cases/compiler/privacyTypeParametersOfInterface.ts ===
class privateClass {
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
}
export class publicClass {
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
}
class privateClassT<T> {
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 6, 20))
}
export class publicClassT<T> {
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 9, 26))
}
// TypeParameter_0_of_exported_interface_1_has_or_is_using_private_type_2
export interface publicInterfaceWithPrivateTypeParameters<T extends privateClass> {
>publicInterfaceWithPrivateTypeParameters : Symbol(publicInterfaceWithPrivateTypeParameters, Decl(privacyTypeParametersOfInterface.ts, 10, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 13, 58))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod(val: T): T; // Error
>myMethod : Symbol(publicInterfaceWithPrivateTypeParameters.myMethod, Decl(privacyTypeParametersOfInterface.ts, 13, 83))
>val : Symbol(val, Decl(privacyTypeParametersOfInterface.ts, 14, 13))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 13, 58))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 13, 58))
myMethod0(): publicClassT<T>; // error
>myMethod0 : Symbol(publicInterfaceWithPrivateTypeParameters.myMethod0, Decl(privacyTypeParametersOfInterface.ts, 14, 24))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 13, 58))
myMethod1(): privateClassT<privateClass>; // error
>myMethod1 : Symbol(publicInterfaceWithPrivateTypeParameters.myMethod1, Decl(privacyTypeParametersOfInterface.ts, 15, 33))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod2(): privateClassT<publicClass>; // error
>myMethod2 : Symbol(publicInterfaceWithPrivateTypeParameters.myMethod2, Decl(privacyTypeParametersOfInterface.ts, 16, 45))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
myMethod3(): publicClassT<privateClass>; //error
>myMethod3 : Symbol(publicInterfaceWithPrivateTypeParameters.myMethod3, Decl(privacyTypeParametersOfInterface.ts, 17, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod4(): publicClassT<publicClass>; // no error
>myMethod4 : Symbol(publicInterfaceWithPrivateTypeParameters.myMethod4, Decl(privacyTypeParametersOfInterface.ts, 18, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
}
export interface publicInterfaceWithPublicTypeParameters<T extends publicClass> {
>publicInterfaceWithPublicTypeParameters : Symbol(publicInterfaceWithPublicTypeParameters, Decl(privacyTypeParametersOfInterface.ts, 20, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 22, 57))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
myMethod(val: T): T; // No Error
>myMethod : Symbol(publicInterfaceWithPublicTypeParameters.myMethod, Decl(privacyTypeParametersOfInterface.ts, 22, 81))
>val : Symbol(val, Decl(privacyTypeParametersOfInterface.ts, 23, 13))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 22, 57))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 22, 57))
myMethod0(): publicClassT<T>; // No error
>myMethod0 : Symbol(publicInterfaceWithPublicTypeParameters.myMethod0, Decl(privacyTypeParametersOfInterface.ts, 23, 24))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 22, 57))
myMethod1(): privateClassT<privateClass>; // error
>myMethod1 : Symbol(publicInterfaceWithPublicTypeParameters.myMethod1, Decl(privacyTypeParametersOfInterface.ts, 24, 33))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod2(): privateClassT<publicClass>; // error
>myMethod2 : Symbol(publicInterfaceWithPublicTypeParameters.myMethod2, Decl(privacyTypeParametersOfInterface.ts, 25, 45))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
myMethod3(): publicClassT<privateClass>; //error
>myMethod3 : Symbol(publicInterfaceWithPublicTypeParameters.myMethod3, Decl(privacyTypeParametersOfInterface.ts, 26, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod4(): publicClassT<publicClass>; // no error
>myMethod4 : Symbol(publicInterfaceWithPublicTypeParameters.myMethod4, Decl(privacyTypeParametersOfInterface.ts, 27, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
}
interface privateInterfaceWithPrivateTypeParameters<T extends privateClass> {
>privateInterfaceWithPrivateTypeParameters : Symbol(privateInterfaceWithPrivateTypeParameters, Decl(privacyTypeParametersOfInterface.ts, 29, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 31, 52))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod(val: T): T; // No Error
>myMethod : Symbol(privateInterfaceWithPrivateTypeParameters.myMethod, Decl(privacyTypeParametersOfInterface.ts, 31, 77))
>val : Symbol(val, Decl(privacyTypeParametersOfInterface.ts, 32, 13))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 31, 52))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 31, 52))
myMethod0(): publicClassT<T>; // No error
>myMethod0 : Symbol(privateInterfaceWithPrivateTypeParameters.myMethod0, Decl(privacyTypeParametersOfInterface.ts, 32, 24))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 31, 52))
myMethod1(): privateClassT<privateClass>; // No error
>myMethod1 : Symbol(privateInterfaceWithPrivateTypeParameters.myMethod1, Decl(privacyTypeParametersOfInterface.ts, 33, 33))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod2(): privateClassT<publicClass>; // No error
>myMethod2 : Symbol(privateInterfaceWithPrivateTypeParameters.myMethod2, Decl(privacyTypeParametersOfInterface.ts, 34, 45))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
myMethod3(): publicClassT<privateClass>; //No error
>myMethod3 : Symbol(privateInterfaceWithPrivateTypeParameters.myMethod3, Decl(privacyTypeParametersOfInterface.ts, 35, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod4(): publicClassT<publicClass>; // no error
>myMethod4 : Symbol(privateInterfaceWithPrivateTypeParameters.myMethod4, Decl(privacyTypeParametersOfInterface.ts, 36, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
}
interface privateInterfaceWithPublicTypeParameters<T extends publicClass> {
>privateInterfaceWithPublicTypeParameters : Symbol(privateInterfaceWithPublicTypeParameters, Decl(privacyTypeParametersOfInterface.ts, 38, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 40, 51))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
myMethod(val: T): T; // No Error
>myMethod : Symbol(privateInterfaceWithPublicTypeParameters.myMethod, Decl(privacyTypeParametersOfInterface.ts, 40, 75))
>val : Symbol(val, Decl(privacyTypeParametersOfInterface.ts, 41, 13))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 40, 51))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 40, 51))
myMethod0(): publicClassT<T>; // No error
>myMethod0 : Symbol(privateInterfaceWithPublicTypeParameters.myMethod0, Decl(privacyTypeParametersOfInterface.ts, 41, 24))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 40, 51))
myMethod1(): privateClassT<privateClass>; // No error
>myMethod1 : Symbol(privateInterfaceWithPublicTypeParameters.myMethod1, Decl(privacyTypeParametersOfInterface.ts, 42, 33))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod2(): privateClassT<publicClass>; // No error
>myMethod2 : Symbol(privateInterfaceWithPublicTypeParameters.myMethod2, Decl(privacyTypeParametersOfInterface.ts, 43, 45))
>privateClassT : Symbol(privateClassT, Decl(privacyTypeParametersOfInterface.ts, 4, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
myMethod3(): publicClassT<privateClass>; //No error
>myMethod3 : Symbol(privateInterfaceWithPublicTypeParameters.myMethod3, Decl(privacyTypeParametersOfInterface.ts, 44, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>privateClass : Symbol(privateClass, Decl(privacyTypeParametersOfInterface.ts, 0, 0))
myMethod4(): publicClassT<publicClass>; // no error
>myMethod4 : Symbol(privateInterfaceWithPublicTypeParameters.myMethod4, Decl(privacyTypeParametersOfInterface.ts, 45, 44))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>publicClass : Symbol(publicClass, Decl(privacyTypeParametersOfInterface.ts, 1, 1))
}
export interface publicInterfaceWithPublicTypeParametersWithoutExtends<T> {
>publicInterfaceWithPublicTypeParametersWithoutExtends : Symbol(publicInterfaceWithPublicTypeParametersWithoutExtends, Decl(privacyTypeParametersOfInterface.ts, 47, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 49, 71))
myMethod(val: T): T; // No Error
>myMethod : Symbol(publicInterfaceWithPublicTypeParametersWithoutExtends.myMethod, Decl(privacyTypeParametersOfInterface.ts, 49, 75))
>val : Symbol(val, Decl(privacyTypeParametersOfInterface.ts, 50, 13))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 49, 71))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 49, 71))
myMethod0(): publicClassT<T>; // No error
>myMethod0 : Symbol(publicInterfaceWithPublicTypeParametersWithoutExtends.myMethod0, Decl(privacyTypeParametersOfInterface.ts, 50, 24))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 49, 71))
}
interface privateInterfaceWithPublicTypeParametersWithoutExtends<T> {
>privateInterfaceWithPublicTypeParametersWithoutExtends : Symbol(privateInterfaceWithPublicTypeParametersWithoutExtends, Decl(privacyTypeParametersOfInterface.ts, 52, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 54, 65))
myMethod(val: T): T; // No Error
>myMethod : Symbol(privateInterfaceWithPublicTypeParametersWithoutExtends.myMethod, Decl(privacyTypeParametersOfInterface.ts, 54, 69))
>val : Symbol(val, Decl(privacyTypeParametersOfInterface.ts, 55, 13))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 54, 65))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 54, 65))
myMethod0(): publicClassT<T>; // No error
>myMethod0 : Symbol(privateInterfaceWithPublicTypeParametersWithoutExtends.myMethod0, Decl(privacyTypeParametersOfInterface.ts, 55, 24))
>publicClassT : Symbol(publicClassT, Decl(privacyTypeParametersOfInterface.ts, 7, 1))
>T : Symbol(T, Decl(privacyTypeParametersOfInterface.ts, 54, 65))
}
|