Skip to content

Error on types named "undefined" #57575

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Mar 11, 2024
Merged
Prev Previous commit
Next Next commit
new testing
  • Loading branch information
jakebailey committed Feb 29, 2024
commit ebd8d1c53fe5481cd930cdb20b68975bbd46acf7
36 changes: 0 additions & 36 deletions tests/baselines/reference/typeNamedUndefined.symbols

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
typeNamedUndefined.ts(3,17): error TS2457: Type alias name cannot be 'undefined'.
typeNamedUndefined.ts(13,13): error TS2457: Type alias name cannot be 'undefined'.
typeNamedUndefined1.ts(3,17): error TS2457: Type alias name cannot be 'undefined'.
typeNamedUndefined1.ts(13,13): error TS2457: Type alias name cannot be 'undefined'.


==== typeNamedUndefined.ts (2 errors) ====
==== typeNamedUndefined1.ts (2 errors) ====
export namespace ns {
const s = Symbol();
export type undefined = typeof s;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//// [tests/cases/compiler/typeNamedUndefined.ts] ////
//// [tests/cases/compiler/typeNamedUndefined1.ts] ////

//// [typeNamedUndefined.ts]
//// [typeNamedUndefined1.ts]
export namespace ns {
const s = Symbol();
export type undefined = typeof s;
Expand All @@ -16,7 +16,7 @@ export function x(p: ns.undefined) { // undefined from the namespace
export type undefined = "";


//// [typeNamedUndefined.js]
//// [typeNamedUndefined1.js]
export var ns;
(function (ns) {
const s = Symbol();
Expand Down
36 changes: 36 additions & 0 deletions tests/baselines/reference/typeNamedUndefined1.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//// [tests/cases/compiler/typeNamedUndefined1.ts] ////

=== typeNamedUndefined1.ts ===
export namespace ns {
>ns : Symbol(ns, Decl(typeNamedUndefined1.ts, 0, 0))

const s = Symbol();
>s : Symbol(s, Decl(typeNamedUndefined1.ts, 1, 9))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))

export type undefined = typeof s;
>undefined : Symbol(undefined, Decl(typeNamedUndefined1.ts, 1, 23))
>s : Symbol(s, Decl(typeNamedUndefined1.ts, 1, 9))

export function x(p: undefined): undefined { // global undefined
>x : Symbol(x, Decl(typeNamedUndefined1.ts, 2, 37))
>p : Symbol(p, Decl(typeNamedUndefined1.ts, 3, 22))

return p;
>p : Symbol(p, Decl(typeNamedUndefined1.ts, 3, 22))
}
}

export function x(p: ns.undefined) { // undefined from the namespace
>x : Symbol(x, Decl(typeNamedUndefined1.ts, 6, 1))
>p : Symbol(p, Decl(typeNamedUndefined1.ts, 8, 18))
>ns : Symbol(ns, Decl(typeNamedUndefined1.ts, 0, 0))
>undefined : Symbol(ns.undefined, Decl(typeNamedUndefined1.ts, 1, 23))

return p;
>p : Symbol(p, Decl(typeNamedUndefined1.ts, 8, 18))
}

export type undefined = "";
>undefined : Symbol(undefined, Decl(typeNamedUndefined1.ts, 10, 1))

Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
//// [tests/cases/compiler/typeNamedUndefined.ts] ////
//// [tests/cases/compiler/typeNamedUndefined1.ts] ////

=== typeNamedUndefined.ts ===
=== typeNamedUndefined1.ts ===
export namespace ns {
>ns : typeof ns

Expand Down
28 changes: 28 additions & 0 deletions tests/baselines/reference/typeNamedUndefined2.errors.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
typeNamedUndefined2.ts(4,21): error TS2457: Type alias name cannot be 'undefined'.
typeNamedUndefined2.ts(17,17): error TS2457: Type alias name cannot be 'undefined'.


==== typeNamedUndefined2.ts (2 errors) ====
export namespace ns {
export namespace undefined {
export const s = Symbol();
export type undefined = typeof s;
~~~~~~~~~
!!! error TS2457: Type alias name cannot be 'undefined'.
};
export function x(p: undefined): undefined {
return p;
}
}

export function x(p: ns.undefined.undefined) {
return p;
}

export namespace undefined {
export const s = Symbol();
export type undefined = typeof s;
~~~~~~~~~
!!! error TS2457: Type alias name cannot be 'undefined'.
};

44 changes: 44 additions & 0 deletions tests/baselines/reference/typeNamedUndefined2.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
//// [tests/cases/compiler/typeNamedUndefined2.ts] ////

//// [typeNamedUndefined2.ts]
export namespace ns {
export namespace undefined {
export const s = Symbol();
export type undefined = typeof s;
};
export function x(p: undefined): undefined {
return p;
}
}

export function x(p: ns.undefined.undefined) {
return p;
}

export namespace undefined {
export const s = Symbol();
export type undefined = typeof s;
};


//// [typeNamedUndefined2.js]
export var ns;
(function (ns) {
let undefined;
(function (undefined) {
undefined.s = Symbol();
})(undefined = ns.undefined || (ns.undefined = {}));
;
function x(p) {
return p;
}
ns.x = x;
})(ns || (ns = {}));
export function x(p) {
return p;
}
export var undefined;
(function (undefined) {
undefined.s = Symbol();
})(undefined || (undefined = {}));
;
51 changes: 51 additions & 0 deletions tests/baselines/reference/typeNamedUndefined2.symbols
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
//// [tests/cases/compiler/typeNamedUndefined2.ts] ////

=== typeNamedUndefined2.ts ===
export namespace ns {
>ns : Symbol(ns, Decl(typeNamedUndefined2.ts, 0, 0))

export namespace undefined {
>undefined : Symbol(undefined, Decl(typeNamedUndefined2.ts, 0, 21))

export const s = Symbol();
>s : Symbol(s, Decl(typeNamedUndefined2.ts, 2, 20))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))

export type undefined = typeof s;
>undefined : Symbol(undefined, Decl(typeNamedUndefined2.ts, 2, 34))
>s : Symbol(s, Decl(typeNamedUndefined2.ts, 2, 20))

};
export function x(p: undefined): undefined {
>x : Symbol(x, Decl(typeNamedUndefined2.ts, 4, 6))
>p : Symbol(p, Decl(typeNamedUndefined2.ts, 5, 22))

return p;
>p : Symbol(p, Decl(typeNamedUndefined2.ts, 5, 22))
}
}

export function x(p: ns.undefined.undefined) {
>x : Symbol(x, Decl(typeNamedUndefined2.ts, 8, 1))
>p : Symbol(p, Decl(typeNamedUndefined2.ts, 10, 18))
>ns : Symbol(ns, Decl(typeNamedUndefined2.ts, 0, 0))
>undefined : Symbol(ns.undefined, Decl(typeNamedUndefined2.ts, 0, 21))
>undefined : Symbol(ns.undefined.undefined, Decl(typeNamedUndefined2.ts, 2, 34))

return p;
>p : Symbol(p, Decl(typeNamedUndefined2.ts, 10, 18))
}

export namespace undefined {
>undefined : Symbol(undefined, Decl(typeNamedUndefined2.ts, 12, 1))

export const s = Symbol();
>s : Symbol(s, Decl(typeNamedUndefined2.ts, 15, 16))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))

export type undefined = typeof s;
>undefined : Symbol(undefined, Decl(typeNamedUndefined2.ts, 15, 30))
>s : Symbol(s, Decl(typeNamedUndefined2.ts, 15, 16))

};

52 changes: 52 additions & 0 deletions tests/baselines/reference/typeNamedUndefined2.types
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
//// [tests/cases/compiler/typeNamedUndefined2.ts] ////

=== typeNamedUndefined2.ts ===
export namespace ns {
>ns : typeof ns

export namespace undefined {
>undefined : typeof undefined

export const s = Symbol();
>s : unique symbol
>Symbol() : unique symbol
>Symbol : SymbolConstructor

export type undefined = typeof s;
>undefined : unique symbol
>s : unique symbol

};
export function x(p: undefined): undefined {
>x : (p: undefined) => undefined
>p : undefined

return p;
>p : undefined
}
}

export function x(p: ns.undefined.undefined) {
>x : (p: ns.undefined.undefined) => symbol
>p : unique symbol
>ns : any
>undefined : any

return p;
>p : unique symbol
}

export namespace undefined {
>undefined : typeof undefined

export const s = Symbol();
>s : unique symbol
>Symbol() : unique symbol
>Symbol : SymbolConstructor

export type undefined = typeof s;
>undefined : unique symbol
>s : unique symbol

};

22 changes: 22 additions & 0 deletions tests/cases/compiler/typeNamedUndefined2.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// @strict: true
// @target: esnext
// @lib: esnext

export namespace ns {
export namespace undefined {
export const s = Symbol();
export type undefined = typeof s;
};
export function x(p: undefined): undefined {
return p;
}
}

export function x(p: ns.undefined.undefined) {
return p;
}

export namespace undefined {
export const s = Symbol();
export type undefined = typeof s;
};
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy