mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-07-02 14:48:32 -05:00
Merge branch 'master' into bom
Conflicts: src/compiler/commandLineParser.ts src/compiler/emitter.ts
This commit is contained in:
97
tests/cases/compiler/privacyClassExtendsClauseDeclFile.ts
Normal file
97
tests/cases/compiler/privacyClassExtendsClauseDeclFile.ts
Normal file
@@ -0,0 +1,97 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
|
||||
// @Filename: privacyClassExtendsClauseDeclFile_externalModule.ts
|
||||
export module publicModule {
|
||||
export class publicClassInPublicModule {
|
||||
private f1() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassInPublicModule {
|
||||
}
|
||||
|
||||
class privateClassExtendingPublicClassInModule extends publicClassInPublicModule {
|
||||
}
|
||||
class privateClassExtendingPrivateClassInModule extends privateClassInPublicModule {
|
||||
}
|
||||
export class publicClassExtendingPublicClassInModule extends publicClassInPublicModule {
|
||||
}
|
||||
export class publicClassExtendingPrivateClassInModule extends privateClassInPublicModule { // Should error
|
||||
}
|
||||
|
||||
class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
|
||||
}
|
||||
export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
|
||||
}
|
||||
}
|
||||
|
||||
module privateModule {
|
||||
export class publicClassInPrivateModule {
|
||||
private f1() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassInPrivateModule {
|
||||
}
|
||||
|
||||
class privateClassExtendingPublicClassInModule extends publicClassInPrivateModule {
|
||||
}
|
||||
class privateClassExtendingPrivateClassInModule extends privateClassInPrivateModule {
|
||||
}
|
||||
export class publicClassExtendingPublicClassInModule extends publicClassInPrivateModule {
|
||||
}
|
||||
export class publicClassExtendingPrivateClassInModule extends privateClassInPrivateModule {
|
||||
}
|
||||
|
||||
class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
|
||||
}
|
||||
export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
private f1() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
class privateClassExtendingPublicClass extends publicClass {
|
||||
}
|
||||
class privateClassExtendingPrivateClassInModule extends privateClass {
|
||||
}
|
||||
export class publicClassExtendingPublicClass extends publicClass {
|
||||
}
|
||||
export class publicClassExtendingPrivateClass extends privateClass { // Should error
|
||||
}
|
||||
|
||||
class privateClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule {
|
||||
}
|
||||
export class publicClassExtendingFromPrivateModuleClass extends privateModule.publicClassInPrivateModule { // Should error
|
||||
}
|
||||
|
||||
// @Filename: privacyClassExtendsClauseDeclFile_GlobalFile.ts
|
||||
module publicModuleInGlobal {
|
||||
export class publicClassInPublicModule {
|
||||
private f1() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassInPublicModule {
|
||||
}
|
||||
|
||||
class privateClassExtendingPublicClassInModule extends publicClassInPublicModule {
|
||||
}
|
||||
class privateClassExtendingPrivateClassInModule extends privateClassInPublicModule {
|
||||
}
|
||||
export class publicClassExtendingPublicClassInModule extends publicClassInPublicModule {
|
||||
}
|
||||
export class publicClassExtendingPrivateClassInModule extends privateClassInPublicModule { // Should error
|
||||
}
|
||||
}
|
||||
class publicClassInGlobal {
|
||||
}
|
||||
class publicClassExtendingPublicClassInGlobal extends publicClassInGlobal {
|
||||
}
|
||||
94
tests/cases/compiler/privacyClassImplementsClauseDeclFile.ts
Normal file
94
tests/cases/compiler/privacyClassImplementsClauseDeclFile.ts
Normal file
@@ -0,0 +1,94 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
|
||||
// @Filename: privacyClassImplementsClauseDeclFile_externalModule.ts
|
||||
export module publicModule {
|
||||
export interface publicInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
class privateClassImplementingPublicInterfaceInModule implements publicInterfaceInPublicModule {
|
||||
}
|
||||
class privateClassImplementingPrivateInterfaceInModule implements privateInterfaceInPublicModule {
|
||||
}
|
||||
export class publicClassImplementingPublicInterfaceInModule implements publicInterfaceInPublicModule {
|
||||
}
|
||||
export class publicClassImplementingPrivateInterfaceInModule implements privateInterfaceInPublicModule { // Should error
|
||||
}
|
||||
|
||||
class privateClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
export class publicClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule { // Should error
|
||||
}
|
||||
|
||||
export class publicClassImplementingPrivateAndPublicInterface implements privateInterfaceInPublicModule, publicInterfaceInPublicModule { // Should error
|
||||
}
|
||||
}
|
||||
|
||||
module privateModule {
|
||||
export interface publicInterfaceInPrivateModule {
|
||||
|
||||
}
|
||||
|
||||
interface privateInterfaceInPrivateModule {
|
||||
}
|
||||
|
||||
class privateClassImplementingPublicInterfaceInModule implements publicInterfaceInPrivateModule {
|
||||
}
|
||||
class privateClassImplementingPrivateInterfaceInModule implements privateInterfaceInPrivateModule {
|
||||
}
|
||||
export class publicClassImplementingPublicInterfaceInModule implements publicInterfaceInPrivateModule {
|
||||
}
|
||||
export class publicClassImplementingPrivateInterfaceInModule implements privateInterfaceInPrivateModule {
|
||||
}
|
||||
|
||||
class privateClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
export class publicClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
}
|
||||
|
||||
export interface publicInterface {
|
||||
|
||||
}
|
||||
|
||||
interface privateInterface {
|
||||
}
|
||||
|
||||
class privateClassImplementingPublicInterface implements publicInterface {
|
||||
}
|
||||
class privateClassImplementingPrivateInterfaceInModule implements privateInterface {
|
||||
}
|
||||
export class publicClassImplementingPublicInterface implements publicInterface {
|
||||
}
|
||||
export class publicClassImplementingPrivateInterface implements privateInterface { // Should error
|
||||
}
|
||||
|
||||
class privateClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
export class publicClassImplementingFromPrivateModuleInterface implements privateModule.publicInterfaceInPrivateModule { // Should error
|
||||
}
|
||||
|
||||
// @Filename: privacyClassImplementsClauseDeclFile_GlobalFile.ts
|
||||
module publicModuleInGlobal {
|
||||
export interface publicInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
class privateClassImplementingPublicInterfaceInModule implements publicInterfaceInPublicModule {
|
||||
}
|
||||
class privateClassImplementingPrivateInterfaceInModule implements privateInterfaceInPublicModule {
|
||||
}
|
||||
export class publicClassImplementingPublicInterfaceInModule implements publicInterfaceInPublicModule {
|
||||
}
|
||||
export class publicClassImplementingPrivateInterfaceInModule implements privateInterfaceInPublicModule { // Should error
|
||||
}
|
||||
}
|
||||
interface publicInterfaceInGlobal {
|
||||
}
|
||||
class publicClassImplementingPublicInterfaceInGlobal implements publicInterfaceInGlobal {
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
|
||||
// @Filename: privacyInterfaceExtendsClauseDeclFile_externalModule.ts
|
||||
export module publicModule {
|
||||
export interface publicInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingPublicInterfaceInModule extends publicInterfaceInPublicModule {
|
||||
}
|
||||
interface privateInterfaceImplementingPrivateInterfaceInModule extends privateInterfaceInPublicModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingPublicInterfaceInModule extends publicInterfaceInPublicModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingPrivateInterfaceInModule extends privateInterfaceInPublicModule { // Should error
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule { // Should error
|
||||
}
|
||||
|
||||
export interface publicInterfaceImplementingPrivateAndPublicInterface extends privateInterfaceInPublicModule, publicInterfaceInPublicModule { // Should error
|
||||
}
|
||||
}
|
||||
|
||||
module privateModule {
|
||||
export interface publicInterfaceInPrivateModule {
|
||||
|
||||
}
|
||||
|
||||
interface privateInterfaceInPrivateModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingPublicInterfaceInModule extends publicInterfaceInPrivateModule {
|
||||
}
|
||||
interface privateInterfaceImplementingPrivateInterfaceInModule extends privateInterfaceInPrivateModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingPublicInterfaceInModule extends publicInterfaceInPrivateModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingPrivateInterfaceInModule extends privateInterfaceInPrivateModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
}
|
||||
|
||||
export interface publicInterface {
|
||||
|
||||
}
|
||||
|
||||
interface privateInterface {
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingPublicInterface extends publicInterface {
|
||||
}
|
||||
interface privateInterfaceImplementingPrivateInterfaceInModule extends privateInterface {
|
||||
}
|
||||
export interface publicInterfaceImplementingPublicInterface extends publicInterface {
|
||||
}
|
||||
export interface publicInterfaceImplementingPrivateInterface extends privateInterface { // Should error
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingFromPrivateModuleInterface extends privateModule.publicInterfaceInPrivateModule { // Should error
|
||||
}
|
||||
|
||||
// @Filename: privacyInterfaceExtendsClauseDeclFile_GlobalFile.ts
|
||||
module publicModuleInGlobal {
|
||||
export interface publicInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceInPublicModule {
|
||||
}
|
||||
|
||||
interface privateInterfaceImplementingPublicInterfaceInModule extends publicInterfaceInPublicModule {
|
||||
}
|
||||
interface privateInterfaceImplementingPrivateInterfaceInModule extends privateInterfaceInPublicModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingPublicInterfaceInModule extends publicInterfaceInPublicModule {
|
||||
}
|
||||
export interface publicInterfaceImplementingPrivateInterfaceInModule extends privateInterfaceInPublicModule { // Should error
|
||||
}
|
||||
}
|
||||
interface publicInterfaceInGlobal {
|
||||
}
|
||||
interface publicInterfaceImplementingPublicInterfaceInGlobal extends publicInterfaceInGlobal {
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// @module: commonjs
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
|
||||
440
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts
Normal file
440
tests/cases/compiler/privacyTypeParameterOfFunctionDeclFile.ts
Normal file
@@ -0,0 +1,440 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateTypeParameters {
|
||||
new <T extends privateClass>(): privateClass; // Error
|
||||
<T extends privateClass>(): privateClass; // Error
|
||||
myMethod<T extends privateClass>(): privateClass; // Error
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParameters {
|
||||
new <T extends publicClass>(): publicClass;
|
||||
<T extends publicClass>(): publicClass;
|
||||
myMethod<T extends publicClass>(): publicClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateTypeParameters {
|
||||
new <T extends privateClass>(): privateClass;
|
||||
<T extends privateClass>(): privateClass;
|
||||
myMethod<T extends privateClass>(): privateClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParameters {
|
||||
new <T extends publicClass>(): publicClass;
|
||||
<T extends publicClass>(): publicClass;
|
||||
myMethod<T extends publicClass>(): publicClass;
|
||||
}
|
||||
|
||||
export class publicClassWithWithPrivateTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateClass>() { // Error
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateClass>() { // Error
|
||||
}
|
||||
private myPrivateMethod<T extends privateClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithWithPublicTypeParameters {
|
||||
static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithWithPrivateTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends privateClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithWithPublicTypeParameters {
|
||||
static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
export function publicFunctionWithPrivateTypeParameters<T extends privateClass>() { // Error
|
||||
}
|
||||
|
||||
export function publicFunctionWithPublicTypeParameters<T extends publicClass>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPrivateTypeParameters<T extends privateClass>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPublicTypeParameters<T extends publicClass>() {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParametersWithoutExtends {
|
||||
new <T>(): publicClass;
|
||||
<T>(): publicClass;
|
||||
myMethod<T>(): publicClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParametersWithoutExtends {
|
||||
new <T>(): publicClass;
|
||||
<T>(): publicClass;
|
||||
myMethod<T>(): publicClass;
|
||||
}
|
||||
|
||||
export class publicClassWithWithPublicTypeParametersWithoutExtends {
|
||||
static myPublicStaticMethod<T>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T>() {
|
||||
}
|
||||
myPublicMethod<T>() {
|
||||
}
|
||||
private myPrivateMethod<T>() {
|
||||
}
|
||||
}
|
||||
class privateClassWithWithPublicTypeParametersWithoutExtends {
|
||||
static myPublicStaticMethod<T>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T>() {
|
||||
}
|
||||
myPublicMethod<T>() {
|
||||
}
|
||||
private myPrivateMethod<T>() {
|
||||
}
|
||||
}
|
||||
|
||||
export function publicFunctionWithPublicTypeParametersWithoutExtends<T>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPublicTypeParametersWithoutExtends<T>() {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivatModuleTypeParameters {
|
||||
new <T extends privateModule.publicClass>(): privateModule.publicClass; // Error
|
||||
<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
|
||||
myMethod<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
|
||||
}
|
||||
export class publicClassWithWithPrivateModuleTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateModule.publicClass>() { // Error
|
||||
}
|
||||
myPublicMethod<T extends privateModule.publicClass>() { // Error
|
||||
}
|
||||
}
|
||||
export function publicFunctionWithPrivateMopduleTypeParameters<T extends privateModule.publicClass>() { // Error
|
||||
}
|
||||
|
||||
|
||||
interface privateInterfaceWithPrivatModuleTypeParameters {
|
||||
new <T extends privateModule.publicClass>(): privateModule.publicClass;
|
||||
<T extends privateModule.publicClass>(): privateModule.publicClass;
|
||||
myMethod<T extends privateModule.publicClass>(): privateModule.publicClass;
|
||||
}
|
||||
class privateClassWithWithPrivateModuleTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateModule.publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateModule.publicClass>() {
|
||||
}
|
||||
}
|
||||
function privateFunctionWithPrivateMopduleTypeParameters<T extends privateModule.publicClass>() {
|
||||
}
|
||||
|
||||
|
||||
export module publicModule {
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateTypeParameters {
|
||||
new <T extends privateClass>(): privateClass; // Error
|
||||
<T extends privateClass>(): privateClass; // Error
|
||||
myMethod<T extends privateClass>(): privateClass; // Error
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParameters {
|
||||
new <T extends publicClass>(): publicClass;
|
||||
<T extends publicClass>(): publicClass;
|
||||
myMethod<T extends publicClass>(): publicClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateTypeParameters {
|
||||
new <T extends privateClass>(): privateClass;
|
||||
<T extends privateClass>(): privateClass;
|
||||
myMethod<T extends privateClass>(): privateClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParameters {
|
||||
new <T extends publicClass>(): publicClass;
|
||||
<T extends publicClass>(): publicClass;
|
||||
myMethod<T extends publicClass>(): publicClass;
|
||||
}
|
||||
|
||||
export class publicClassWithWithPrivateTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateClass>() { // Error
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateClass>() { // Error
|
||||
}
|
||||
private myPrivateMethod<T extends privateClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithWithPublicTypeParameters {
|
||||
static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithWithPrivateTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends privateClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithWithPublicTypeParameters {
|
||||
static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
export function publicFunctionWithPrivateTypeParameters<T extends privateClass>() { // Error
|
||||
}
|
||||
|
||||
export function publicFunctionWithPublicTypeParameters<T extends publicClass>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPrivateTypeParameters<T extends privateClass>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPublicTypeParameters<T extends publicClass>() {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParametersWithoutExtends {
|
||||
new <T>(): publicClass;
|
||||
<T>(): publicClass;
|
||||
myMethod<T>(): publicClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParametersWithoutExtends {
|
||||
new <T>(): publicClass;
|
||||
<T>(): publicClass;
|
||||
myMethod<T>(): publicClass;
|
||||
}
|
||||
|
||||
export class publicClassWithWithPublicTypeParametersWithoutExtends {
|
||||
static myPublicStaticMethod<T>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T>() {
|
||||
}
|
||||
myPublicMethod<T>() {
|
||||
}
|
||||
private myPrivateMethod<T>() {
|
||||
}
|
||||
}
|
||||
class privateClassWithWithPublicTypeParametersWithoutExtends {
|
||||
static myPublicStaticMethod<T>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T>() {
|
||||
}
|
||||
myPublicMethod<T>() {
|
||||
}
|
||||
private myPrivateMethod<T>() {
|
||||
}
|
||||
}
|
||||
|
||||
export function publicFunctionWithPublicTypeParametersWithoutExtends<T>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPublicTypeParametersWithoutExtends<T>() {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivatModuleTypeParameters {
|
||||
new <T extends privateModule.publicClass>(): privateModule.publicClass; // Error
|
||||
<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
|
||||
myMethod<T extends privateModule.publicClass>(): privateModule.publicClass; // Error
|
||||
}
|
||||
export class publicClassWithWithPrivateModuleTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateModule.publicClass>() { // Error
|
||||
}
|
||||
myPublicMethod<T extends privateModule.publicClass>() { // Error
|
||||
}
|
||||
}
|
||||
export function publicFunctionWithPrivateMopduleTypeParameters<T extends privateModule.publicClass>() { // Error
|
||||
}
|
||||
|
||||
|
||||
interface privateInterfaceWithPrivatModuleTypeParameters {
|
||||
new <T extends privateModule.publicClass>(): privateModule.publicClass;
|
||||
<T extends privateModule.publicClass>(): privateModule.publicClass;
|
||||
myMethod<T extends privateModule.publicClass>(): privateModule.publicClass;
|
||||
}
|
||||
class privateClassWithWithPrivateModuleTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateModule.publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateModule.publicClass>() {
|
||||
}
|
||||
}
|
||||
function privateFunctionWithPrivateMopduleTypeParameters<T extends privateModule.publicClass>() {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module privateModule {
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateTypeParameters {
|
||||
new <T extends privateClass>(): privateClass;
|
||||
<T extends privateClass>(): privateClass;
|
||||
myMethod<T extends privateClass>(): privateClass;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParameters {
|
||||
new <T extends publicClass>(): publicClass;
|
||||
<T extends publicClass>(): publicClass;
|
||||
myMethod<T extends publicClass>(): publicClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateTypeParameters {
|
||||
new <T extends privateClass>(): privateClass;
|
||||
<T extends privateClass>(): privateClass;
|
||||
myMethod<T extends privateClass>(): privateClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParameters {
|
||||
new <T extends publicClass>(): publicClass;
|
||||
<T extends publicClass>(): publicClass;
|
||||
myMethod<T extends publicClass>(): publicClass;
|
||||
}
|
||||
|
||||
export class publicClassWithWithPrivateTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends privateClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithWithPublicTypeParameters {
|
||||
static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithWithPrivateTypeParameters {
|
||||
static myPublicStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends privateClass>() {
|
||||
}
|
||||
myPublicMethod<T extends privateClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends privateClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithWithPublicTypeParameters {
|
||||
static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
private myPrivateMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
|
||||
export function publicFunctionWithPrivateTypeParameters<T extends privateClass>() {
|
||||
}
|
||||
|
||||
export function publicFunctionWithPublicTypeParameters<T extends publicClass>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPrivateTypeParameters<T extends privateClass>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPublicTypeParameters<T extends publicClass>() {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParametersWithoutExtends {
|
||||
new <T>(): publicClass;
|
||||
<T>(): publicClass;
|
||||
myMethod<T>(): publicClass;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParametersWithoutExtends {
|
||||
new <T>(): publicClass;
|
||||
<T>(): publicClass;
|
||||
myMethod<T>(): publicClass;
|
||||
}
|
||||
|
||||
export class publicClassWithWithPublicTypeParametersWithoutExtends {
|
||||
static myPublicStaticMethod<T>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T>() {
|
||||
}
|
||||
myPublicMethod<T>() {
|
||||
}
|
||||
private myPrivateMethod<T>() {
|
||||
}
|
||||
}
|
||||
class privateClassWithWithPublicTypeParametersWithoutExtends {
|
||||
static myPublicStaticMethod<T>() {
|
||||
}
|
||||
private static myPrivateStaticMethod<T>() {
|
||||
}
|
||||
myPublicMethod<T>() {
|
||||
}
|
||||
private myPrivateMethod<T>() {
|
||||
}
|
||||
}
|
||||
|
||||
export function publicFunctionWithPublicTypeParametersWithoutExtends<T>() {
|
||||
}
|
||||
|
||||
function privateFunctionWithPublicTypeParametersWithoutExtends<T>() {
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// @module: commonjs
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
|
||||
155
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts
Normal file
155
tests/cases/compiler/privacyTypeParametersOfClassDeclFile.ts
Normal file
@@ -0,0 +1,155 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
}
|
||||
|
||||
export class publicClassWithPrivateTypeParameters<T extends privateClass> { // Error
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithPublicTypeParameters<T extends publicClass> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPrivateTypeParameters<T extends privateClass> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPublicTypeParameters<T extends publicClass> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithTypeParametersFromPrivateModule<T extends privateModule.publicClassInPrivateModule> { // Error
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithTypeParametersFromPrivateModule<T extends privateModule.publicClassInPrivateModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export module publicModule {
|
||||
class privateClassInPublicModule {
|
||||
}
|
||||
|
||||
export class publicClassInPublicModule {
|
||||
}
|
||||
|
||||
export class publicClassWithPrivateTypeParameters<T extends privateClassInPublicModule> { // Error
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithPublicTypeParameters<T extends publicClassInPublicModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPrivateTypeParameters<T extends privateClassInPublicModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPublicTypeParameters<T extends publicClassInPublicModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithTypeParametersFromPrivateModule<T extends privateModule.publicClassInPrivateModule> { // Error
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithTypeParametersFromPrivateModule<T extends privateModule.publicClassInPrivateModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module privateModule {
|
||||
class privateClassInPrivateModule {
|
||||
}
|
||||
|
||||
export class publicClassInPrivateModule {
|
||||
}
|
||||
|
||||
export class publicClassWithPrivateTypeParameters<T extends privateClassInPrivateModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithPublicTypeParameters<T extends publicClassInPrivateModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPrivateTypeParameters<T extends privateClassInPrivateModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPublicTypeParameters<T extends publicClassInPrivateModule> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
export class publicClassWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
|
||||
class privateClassWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T {
|
||||
return val;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// @module: commonjs
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
|
||||
192
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts
Normal file
192
tests/cases/compiler/privacyTypeParametersOfInterfaceDeclFile.ts
Normal file
@@ -0,0 +1,192 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
}
|
||||
|
||||
class privateClassT<T> {
|
||||
}
|
||||
|
||||
export class publicClassT<T> {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateTypeParameters<T extends privateClass> { // Error
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassT<T>;
|
||||
myMethod1(): privateClassT<privateClass>;
|
||||
myMethod2(): privateClassT<publicClass>;
|
||||
myMethod3(): publicClassT<privateClass>;
|
||||
myMethod4(): publicClassT<publicClass>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParameters<T extends publicClass> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassT<T>
|
||||
myMethod1(): privateClassT<privateClass>;
|
||||
myMethod2(): privateClassT<publicClass>;
|
||||
myMethod3(): publicClassT<privateClass>;
|
||||
myMethod4(): publicClassT<publicClass>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateTypeParameters<T extends privateClass> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassT<T>;
|
||||
myMethod1(): privateClassT<privateClass>;
|
||||
myMethod2(): privateClassT<publicClass>;
|
||||
myMethod3(): publicClassT<privateClass>;
|
||||
myMethod4(): publicClassT<publicClass>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParameters<T extends publicClass> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassT<T>;
|
||||
myMethod1(): privateClassT<privateClass>;
|
||||
myMethod2(): privateClassT<publicClass>;
|
||||
myMethod3(): publicClassT<privateClass>;
|
||||
myMethod4(): publicClassT<publicClass>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassT<T>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassT<T>;
|
||||
}
|
||||
|
||||
|
||||
export interface publicInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
|
||||
}
|
||||
|
||||
export module publicModule {
|
||||
class privateClassInPublicModule {
|
||||
}
|
||||
|
||||
export class publicClassInPublicModule {
|
||||
}
|
||||
|
||||
class privateClassInPublicModuleT<T> {
|
||||
}
|
||||
|
||||
export class publicClassInPublicModuleT<T> {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateTypeParameters<T extends privateClassInPublicModule> { // Error
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPublicModuleT<T>;
|
||||
myMethod1(): privateClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod2(): privateClassInPublicModuleT<publicClassInPublicModule>;
|
||||
myMethod3(): publicClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod4(): publicClassInPublicModuleT<publicClassInPublicModule>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParameters<T extends publicClassInPublicModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPublicModuleT<T>
|
||||
myMethod1(): privateClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod2(): privateClassInPublicModuleT<publicClassInPublicModule>;
|
||||
myMethod3(): publicClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod4(): publicClassInPublicModuleT<publicClassInPublicModule>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateTypeParameters<T extends privateClassInPublicModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPublicModuleT<T>;
|
||||
myMethod1(): privateClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod2(): privateClassInPublicModuleT<publicClassInPublicModule>;
|
||||
myMethod3(): publicClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod4(): publicClassInPublicModuleT<publicClassInPublicModule>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParameters<T extends publicClassInPublicModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPublicModuleT<T>;
|
||||
myMethod1(): privateClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod2(): privateClassInPublicModuleT<publicClassInPublicModule>;
|
||||
myMethod3(): publicClassInPublicModuleT<privateClassInPublicModule>;
|
||||
myMethod4(): publicClassInPublicModuleT<publicClassInPublicModule>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPublicModuleT<T>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPublicModuleT<T>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateModuleTypeParameterConstraints<T extends privateModule.publicClassInPrivateModule> { // Error
|
||||
}
|
||||
}
|
||||
|
||||
module privateModule {
|
||||
class privateClassInPrivateModule {
|
||||
}
|
||||
|
||||
export class publicClassInPrivateModule {
|
||||
}
|
||||
|
||||
class privateClassInPrivateModuleT<T> {
|
||||
}
|
||||
|
||||
export class publicClassInPrivateModuleT<T> {
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPrivateTypeParameters<T extends privateClassInPrivateModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPrivateModuleT<T>;
|
||||
myMethod1(): privateClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod2(): privateClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
myMethod3(): publicClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod4(): publicClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParameters<T extends publicClassInPrivateModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPrivateModuleT<T>
|
||||
myMethod1(): privateClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod2(): privateClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
myMethod3(): publicClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod4(): publicClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPrivateTypeParameters<T extends privateClassInPrivateModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPrivateModuleT<T>;
|
||||
myMethod1(): privateClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod2(): privateClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
myMethod3(): publicClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod4(): publicClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParameters<T extends publicClassInPrivateModule> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPrivateModuleT<T>;
|
||||
myMethod1(): privateClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod2(): privateClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
myMethod3(): publicClassInPrivateModuleT<privateClassInPrivateModule>;
|
||||
myMethod4(): publicClassInPrivateModuleT<publicClassInPrivateModule>;
|
||||
}
|
||||
|
||||
export interface publicInterfaceWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPrivateModuleT<T>;
|
||||
}
|
||||
|
||||
interface privateInterfaceWithPublicTypeParametersWithoutExtends<T> {
|
||||
myMethod(val: T): T;
|
||||
myMethod0(): publicClassInPrivateModuleT<T>;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
// @module: commonjs
|
||||
// @declaration: true
|
||||
class privateClass {
|
||||
}
|
||||
|
||||
export class publicClass {
|
||||
}
|
||||
|
||||
export class publicClassWithWithPrivateTypeParameters {
|
||||
private static myPrivateStaticMethod1<T extends privateClass>() { // do not emit extends clause
|
||||
}
|
||||
private myPrivateMethod1<T extends privateClass>() { // do not emit extends clause
|
||||
}
|
||||
private static myPrivateStaticMethod2<T extends publicClass>() { // do not emit extends clause
|
||||
}
|
||||
private myPrivateMethod2<T extends publicClass>() { // do not emit extends clause
|
||||
}
|
||||
public static myPublicStaticMethod<T extends publicClass>() {
|
||||
}
|
||||
public myPublicMethod<T extends publicClass>() {
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user