Add synthetic TypeScriptSettings interface that exposes some compiler flags to type system

This commit is contained in:
Ron Buckton
2024-05-01 18:03:32 -04:00
parent 62c41f8db4
commit e9a627582c
187 changed files with 1260 additions and 115 deletions
+44 -12
View File
@@ -337,6 +337,9 @@ import {
getNameFromIndexInfo,
getNameOfDeclaration,
getNameOfExpando,
getNameOfModuleKind,
getNameOfModuleResolutionKind,
getNameOfScriptTarget,
getNamespaceDeclarationNode,
getNewTargetContainer,
getNonAugmentationDeclaration,
@@ -1089,6 +1092,8 @@ import {
VariableLikeDeclaration,
VariableStatement,
VarianceFlags,
version,
versionMajorMinor,
visitEachChild,
visitNode,
visitNodes,
@@ -1473,6 +1478,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
var compilerOptions = host.getCompilerOptions();
var languageVersion = getEmitScriptTarget(compilerOptions);
var moduleKind = getEmitModuleKind(compilerOptions);
var moduleResolutionKind = getEmitModuleResolutionKind(compilerOptions);
var legacyDecorators = !!compilerOptions.experimentalDecorators;
var useDefineForClassFields = getUseDefineForClassFields(compilerOptions);
var emitStandardClassFields = getEmitStandardClassFields(compilerOptions);
@@ -1485,6 +1491,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
var noImplicitThis = getStrictOptionValue(compilerOptions, "noImplicitThis");
var useUnknownInCatchVariables = getStrictOptionValue(compilerOptions, "useUnknownInCatchVariables");
var exactOptionalPropertyTypes = compilerOptions.exactOptionalPropertyTypes;
var noUncheckedIndexedAccess = compilerOptions.noUncheckedIndexedAccess;
var checkBinaryExpression = createCheckBinaryExpression();
var emitResolver = createResolver();
@@ -2330,6 +2337,28 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
[".jsx", ".jsx"],
[".json", ".json"],
];
var typeScriptSettingsSymbol = createSymbol(SymbolFlags.Interface, "TypeScriptSettings" as __String, CheckFlags.SyntheticInterface);
typeScriptSettingsSymbol.declarations = [];
typeScriptSettingsSymbol.members = createSymbolTable([
createProperty("version" as __String, getStringLiteralType(version), CheckFlags.Readonly),
createProperty("versionMajorMinor" as __String, getStringLiteralType(versionMajorMinor), CheckFlags.Readonly),
createProperty("locale" as __String, compilerOptions.locale ? getStringLiteralType(compilerOptions.locale) : undefinedType, CheckFlags.Readonly),
createProperty("target" as __String, getStringLiteralType(getNameOfScriptTarget(languageVersion) ?? ""), CheckFlags.Readonly),
createProperty("module" as __String, getStringLiteralType(getNameOfModuleKind(moduleKind) ?? ""), CheckFlags.Readonly),
createProperty("moduleResolution" as __String, getStringLiteralType(getNameOfModuleResolutionKind(moduleResolutionKind) ?? ""), CheckFlags.Readonly),
createProperty("customConditions" as __String, createTupleType(compilerOptions.customConditions?.map(cond => getStringLiteralType(cond)) ?? emptyArray, /*elementFlags*/ undefined, /*readonly*/ true), CheckFlags.Readonly),
createProperty("esModuleInterop" as __String, getESModuleInterop(compilerOptions) ? trueType : falseType, CheckFlags.Readonly),
createProperty("exactOptionalPropertyTypes" as __String, exactOptionalPropertyTypes ? trueType : falseType, CheckFlags.Readonly),
createProperty("noImplicitAny" as __String, noImplicitAny ? trueType : falseType, CheckFlags.Readonly),
createProperty("noUncheckedIndexedAccess" as __String, noUncheckedIndexedAccess ? trueType : falseType, CheckFlags.Readonly),
createProperty("strictBindCallApply" as __String, strictBindCallApply ? trueType : falseType, CheckFlags.Readonly),
createProperty("strictFunctionTypes" as __String, strictFunctionTypes ? trueType : falseType, CheckFlags.Readonly),
createProperty("strictNullChecks" as __String, strictNullChecks ? trueType : falseType, CheckFlags.Readonly),
createProperty("useDefineForClassFields" as __String, useDefineForClassFields ? trueType : falseType, CheckFlags.Readonly),
]);
globals.set(typeScriptSettingsSymbol.escapedName, typeScriptSettingsSymbol);
/* eslint-enable no-var */
initializeTypeChecker();
@@ -2542,8 +2571,8 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
return symbol;
}
function createProperty(name: __String, type: Type) {
const symbol = createSymbol(SymbolFlags.Property, name);
function createProperty(name: __String, type: Type, checkFlags?: CheckFlags) {
const symbol = createSymbol(SymbolFlags.Property, name, checkFlags);
symbol.links.type = type;
return symbol;
}
@@ -12079,6 +12108,9 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
// The outer type parameters are those defined by enclosing generic classes, methods, or functions.
function getOuterTypeParametersOfClassOrInterface(symbol: Symbol): TypeParameter[] | undefined {
if (getCheckFlags(symbol) & CheckFlags.SyntheticInterface) {
return undefined;
}
const declaration = (symbol.flags & SymbolFlags.Class || symbol.flags & SymbolFlags.Function)
? symbol.valueDeclaration
: symbol.declarations?.find(decl => {
@@ -18483,7 +18515,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
// In noUncheckedIndexedAccess mode, indexed access operations that occur in an expression in a read position and resolve to
// an index signature have 'undefined' included in their type.
if (compilerOptions.noUncheckedIndexedAccess && accessFlags & AccessFlags.ExpressionPosition) accessFlags |= AccessFlags.IncludeUndefined;
if (noUncheckedIndexedAccess && accessFlags & AccessFlags.ExpressionPosition) accessFlags |= AccessFlags.IncludeUndefined;
// If the index type is generic, or if the object type is generic and doesn't originate in an expression and
// the operation isn't exclusively indexing the fixed (non-variadic) portion of a tuple type, we are performing
// a higher-order index access where we cannot meaningfully access the properties of the object type. Note that
@@ -23923,7 +23955,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
// Invoke the callback for each underlying property symbol of the given symbol and return the first
// value that isn't undefined.
function forEachProperty<T>(prop: Symbol, callback: (p: Symbol) => T): T | undefined {
if (getCheckFlags(prop) & CheckFlags.Synthetic) {
if (getCheckFlags(prop) & CheckFlags.SyntheticMember) {
// NOTE: cast to TransientSymbol should be safe because only TransientSymbols can have CheckFlags.Synthetic
for (const t of (prop as TransientSymbol).links.containingType!.types) {
const p = getPropertyOfType(t, prop.escapedName);
@@ -24340,7 +24372,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
return propType;
}
if (everyType(type, isTupleType)) {
return getTupleElementTypeOutOfStartCount(type, index, compilerOptions.noUncheckedIndexedAccess ? undefinedType : undefined);
return getTupleElementTypeOutOfStartCount(type, index, noUncheckedIndexedAccess ? undefinedType : undefined);
}
return undefined;
}
@@ -27007,7 +27039,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
function includeUndefinedInIndexSignature(type: Type | undefined): Type | undefined {
if (!type) return type;
return compilerOptions.noUncheckedIndexedAccess ?
return noUncheckedIndexedAccess ?
getUnionType([type, missingType]) :
type;
}
@@ -33132,7 +33164,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
propType = indexInfo.type;
if (compilerOptions.noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== AssignmentKind.Definite) {
if (noUncheckedIndexedAccess && getAssignmentTargetKind(node) !== AssignmentKind.Definite) {
propType = getUnionType([propType, missingType]);
}
if (compilerOptions.noPropertyAccessFromIndexSignature && isPropertyAccessExpression(node)) {
@@ -38321,7 +38353,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
// present (aka the tuple element property). This call also checks that the parentType is in
// fact an iterable or array (depending on target language).
const possiblyOutOfBoundsType = checkIteratedTypeOrElementType(IterationUse.Destructuring | IterationUse.PossiblyOutOfBounds, sourceType, undefinedType, node) || errorType;
let inBoundsType: Type | undefined = compilerOptions.noUncheckedIndexedAccess ? undefined : possiblyOutOfBoundsType;
let inBoundsType: Type | undefined = noUncheckedIndexedAccess ? undefined : possiblyOutOfBoundsType;
for (let i = 0; i < elements.length; i++) {
let type = possiblyOutOfBoundsType;
if (node.elements[i].kind === SyntaxKind.SpreadElement) {
@@ -43513,7 +43545,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
const uplevelIteration = languageVersion >= ScriptTarget.ES2015;
const downlevelIteration = !uplevelIteration && compilerOptions.downlevelIteration;
const possibleOutOfBounds = compilerOptions.noUncheckedIndexedAccess && !!(use & IterationUse.PossiblyOutOfBounds);
const possibleOutOfBounds = noUncheckedIndexedAccess && !!(use & IterationUse.PossiblyOutOfBounds);
// Get the iterated type of an `Iterable<T>` or `IterableIterator<T>` only in ES2015
// or higher, when inside of an async generator or for-await-if, or when
@@ -43590,7 +43622,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
const arrayElementType = getIndexTypeOfType(arrayType, numberType);
if (hasStringConstituent && arrayElementType) {
// This is just an optimization for the case where arrayOrStringType is string | string[]
if (arrayElementType.flags & TypeFlags.StringLike && !compilerOptions.noUncheckedIndexedAccess) {
if (arrayElementType.flags & TypeFlags.StringLike && !noUncheckedIndexedAccess) {
return stringType;
}
@@ -45352,7 +45384,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (basePropertyFlags && derivedPropertyFlags) {
// property/accessor is overridden with property/accessor
if (
(getCheckFlags(base) & CheckFlags.Synthetic
(getCheckFlags(base) & CheckFlags.SyntheticMember
? base.declarations?.some(d => isPropertyAbstractOrInterface(d, baseDeclarationFlags))
: base.declarations?.every(d => isPropertyAbstractOrInterface(d, baseDeclarationFlags)))
|| getCheckFlags(base) & CheckFlags.Mapped
@@ -48101,7 +48133,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
return roots ? flatMap(roots, getRootSymbols) : [symbol];
}
function getImmediateRootSymbols(symbol: Symbol): readonly Symbol[] | undefined {
if (getCheckFlags(symbol) & CheckFlags.Synthetic) {
if (getCheckFlags(symbol) & CheckFlags.SyntheticMember) {
return mapDefined(getSymbolLinks(symbol).containingType!.types, type => getPropertyOfType(type, symbol.escapedName));
}
else if (symbol.flags & SymbolFlags.Transient) {
+22 -19
View File
@@ -583,6 +583,27 @@ export const moduleOptionDeclaration: CommandLineOptionOfCustomType = {
defaultValueDescription: undefined,
};
/** @internal */
export const moduleResolutionOptionDeclaration: CommandLineOptionOfCustomType = {
name: "moduleResolution",
type: new Map(Object.entries({
// N.B. The first entry specifies the value shown in `tsc --init`
node10: ModuleResolutionKind.Node10,
node: ModuleResolutionKind.Node10,
classic: ModuleResolutionKind.Classic,
node16: ModuleResolutionKind.Node16,
nodenext: ModuleResolutionKind.NodeNext,
bundler: ModuleResolutionKind.Bundler,
})),
deprecatedKeys: new Set(["node"]),
affectsSourceFile: true,
affectsModuleResolution: true,
paramType: Diagnostics.STRATEGY,
category: Diagnostics.Modules,
description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,
defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node,
};
const commandOptionsWithoutBuild: CommandLineOption[] = [
// CommandLine only options
{
@@ -1028,25 +1049,7 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
},
// Module Resolution
{
name: "moduleResolution",
type: new Map(Object.entries({
// N.B. The first entry specifies the value shown in `tsc --init`
node10: ModuleResolutionKind.Node10,
node: ModuleResolutionKind.Node10,
classic: ModuleResolutionKind.Classic,
node16: ModuleResolutionKind.Node16,
nodenext: ModuleResolutionKind.NodeNext,
bundler: ModuleResolutionKind.Bundler,
})),
deprecatedKeys: new Set(["node"]),
affectsSourceFile: true,
affectsModuleResolution: true,
paramType: Diagnostics.STRATEGY,
category: Diagnostics.Modules,
description: Diagnostics.Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier,
defaultValueDescription: Diagnostics.module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node,
},
moduleResolutionOptionDeclaration,
{
name: "baseUrl",
type: "string",
+5 -2
View File
@@ -4790,8 +4790,11 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
message = Diagnostics.File_is_library_specified_here;
break;
}
const target = getNameOfScriptTarget(getEmitScriptTarget(options));
configFileNode = target ? getOptionsSyntaxByValue("target", target) : undefined;
const target = getEmitScriptTarget(options);
const targetText = getNameOfScriptTarget(target);
configFileNode = target === ScriptTarget.ES2015 ? getOptionsSyntaxByValue("target", "es2015") ?? getOptionsSyntaxByValue("target", "es6") :
targetText ? getOptionsSyntaxByValue("target", targetText) :
undefined;
message = Diagnostics.File_is_default_library_for_target_specified_here;
break;
default:
+2 -1
View File
@@ -5981,7 +5981,8 @@ export const enum CheckFlags {
Mapped = 1 << 18, // Property of mapped type
StripOptional = 1 << 19, // Strip optionality in mapped property
Unresolved = 1 << 20, // Unresolved type alias symbol
Synthetic = SyntheticProperty | SyntheticMethod,
SyntheticInterface = 1 << 21, // Synthetic interface
SyntheticMember = SyntheticProperty | SyntheticMethod,
Discriminant = HasNonUniformType | HasLiteralType,
Partial = ReadPartial | WritePartial,
}
+20 -2
View File
@@ -421,7 +421,9 @@ import {
ModuleDeclaration,
ModuleDetectionKind,
ModuleKind,
moduleOptionDeclaration,
ModuleResolutionKind,
moduleResolutionOptionDeclaration,
moduleResolutionOptionDeclarations,
MultiMap,
NamedDeclaration,
@@ -7808,7 +7810,7 @@ export function getDeclarationModifierFlagsFromSymbol(s: Symbol, isWrite = false
const flags = getCombinedModifierFlags(declaration);
return s.parent && s.parent.flags & SymbolFlags.Class ? flags : flags & ~ModifierFlags.AccessibilityModifier;
}
if (getCheckFlags(s) & CheckFlags.Synthetic) {
if (getCheckFlags(s) & CheckFlags.SyntheticMember) {
// NOTE: potentially unchecked cast to TransientSymbol
const checkFlags = (s as TransientSymbol).links.checkFlags;
const accessModifier = checkFlags & CheckFlags.ContainsPrivate ? ModifierFlags.Private :
@@ -9101,7 +9103,23 @@ export function getStrictOptionValue(compilerOptions: CompilerOptions, flag: Str
/** @internal */
export function getNameOfScriptTarget(scriptTarget: ScriptTarget): string | undefined {
return forEachEntry(targetOptionDeclaration.type, (value, key) => value === scriptTarget ? key : undefined);
const entries = [...targetOptionDeclaration.type].reverse();
return forEach(entries, ([key, value]) => value === scriptTarget ? key : undefined);
}
/** @internal */
export function getNameOfModuleKind(moduleKind: ModuleKind): string | undefined {
const entries = [...moduleOptionDeclaration.type].reverse();
return forEach(entries, ([key, value]) => value === moduleKind ? key : undefined);
}
/** @internal */
export function getNameOfModuleResolutionKind(moduleResolution: ModuleResolutionKind): string | undefined {
if (moduleResolution === ModuleResolutionKind.Node10) {
return "node10";
}
const entries = [...moduleResolutionOptionDeclaration.type].reverse();
return forEach(entries, ([key, value]) => value === moduleResolution ? key : undefined);
}
/** @internal */
+12 -2
View File
@@ -1111,6 +1111,8 @@ export namespace Completion {
return combineExpectedCompletionEntries("typeKeywordsPlus", typeKeywords, plus);
}
const typeScriptSettingsEntry = interfaceEntry("TypeScriptSettings");
const globalTypeDecls: readonly ExpectedCompletionEntryObject[] = [
interfaceEntry("Symbol"),
typeEntry("PropertyKey"),
@@ -1238,11 +1240,19 @@ export namespace Completion {
kind: "module",
sortText: SortText.GlobalsOrKeywords,
};
export const globalTypes = globalTypesPlus([]);
export function globalTypesPlus(plus: readonly ExpectedCompletionEntry[]) {
export const globalTypesNoLib = globalTypesPlus([], { noLib: true });
export function globalTypesPlus(plus: readonly ExpectedCompletionEntry[], options?: { noLib?: boolean; }) {
return combineExpectedCompletionEntries(
"globalTypesPlus",
[globalThisEntry, ...globalTypeDecls, ...typeKeywords],
[
globalThisEntry,
typeScriptSettingsEntry,
...typeKeywords,
...options?.noLib ? [] : globalTypeDecls,
],
plus,
);
}
+1 -1
View File
@@ -2706,7 +2706,7 @@ export namespace Core {
}
return search.includes(baseSymbol || rootSymbol || sym)
// For a base type, use the symbol for the derived type. For a synthetic (e.g. union) property, use the union symbol.
? { symbol: rootSymbol && !(getCheckFlags(sym) & CheckFlags.Synthetic) ? rootSymbol : sym, kind }
? { symbol: rootSymbol && !(getCheckFlags(sym) & CheckFlags.SyntheticMember) ? rootSymbol : sym, kind }
: undefined;
}, /*allowBaseTypes*/ rootSymbol => !(search.parents && !search.parents.some(parent => explicitlyInheritsFrom(rootSymbol.parent!, parent, state.inheritsFromCache, checker))));
}
@@ -331,7 +331,7 @@ function getSymbolForContextualType(node: Node, checker: TypeChecker): Symbol |
if (element) {
const contextualType = checker.getContextualTypeForObjectLiteralElement(element as ObjectLiteralElementLike);
const symbol = contextualType?.getSymbol();
if (symbol && !(getCheckFlags(symbol) & CheckFlags.Synthetic)) {
if (symbol && !(getCheckFlags(symbol) & CheckFlags.SyntheticMember)) {
return symbol;
}
}
+5 -1
View File
@@ -186,7 +186,7 @@ function getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(typeCheck
if (flags & SymbolFlags.Signature) return ScriptElementKind.indexSignatureElement;
if (flags & SymbolFlags.Property) {
if (flags & SymbolFlags.Transient && (symbol as TransientSymbol).links.checkFlags & CheckFlags.Synthetic) {
if (flags & SymbolFlags.Transient && (symbol as TransientSymbol).links.checkFlags & CheckFlags.SyntheticMember) {
// If union property is result of union of non method (property/accessors/variables), it is labeled as property
const unionPropertyKind = forEach(typeChecker.getRootSymbols(symbol), rootSymbol => {
const rootSymbolFlags = rootSymbol.getFlags();
@@ -224,6 +224,10 @@ function getNormalizedSymbolModifiers(symbol: Symbol) {
return modifiers.split(",");
}
}
else if (symbol.flags & SymbolFlags.Interface) {
// Synthetic interface produced by checker, such as 'TypeScriptSettings'
return [ScriptElementKindModifier.ambientModifier];
}
return [];
}
@@ -1,5 +1,8 @@
//// [tests/cases/compiler/jsxChildrenArrayWrongType.tsx] ////
=== Performance Stats ===
Type Count: 1,000
=== index.tsx ===
/// <reference path="react18/react18.d.ts" />
/// <reference path="react18/global.d.ts" />
@@ -1,4 +1,4 @@
regExpWithOpenBracketInCharClass.ts(3,8): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regExpWithOpenBracketInCharClass.ts(3,8): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regExpWithOpenBracketInCharClass.ts(4,7): error TS1005: ']' expected.
regExpWithOpenBracketInCharClass.ts(4,8): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
@@ -8,7 +8,7 @@ regExpWithOpenBracketInCharClass.ts(4,8): error TS1501: This regular expression
/[[]/, // Valid
/[[]/u, // Valid
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/[[]/v, // Well-terminated regex with an incomplete character class
!!! error TS1005: ']' expected.
@@ -24,7 +24,7 @@ regularExpressionScanning.ts(13,29): error TS1487: Octal escape sequences are no
regularExpressionScanning.ts(13,37): error TS1487: Octal escape sequences are not allowed. Use the syntax '\x03'.
regularExpressionScanning.ts(13,42): error TS1533: This backreference refers to a group that does not exist. There are only 4 capturing groups in this regular expression.
regularExpressionScanning.ts(13,43): error TS1487: Octal escape sequences are not allowed. Use the syntax '\x05'.
regularExpressionScanning.ts(13,48): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(13,48): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(14,5): error TS1503: Named capturing groups are only available when targeting 'ES2018' or later.
regularExpressionScanning.ts(14,14): error TS1503: Named capturing groups are only available when targeting 'ES2018' or later.
regularExpressionScanning.ts(14,29): error TS1503: Named capturing groups are only available when targeting 'ES2018' or later.
@@ -55,7 +55,7 @@ regularExpressionScanning.ts(20,59): error TS1530: Unicode property value expres
regularExpressionScanning.ts(20,62): error TS1529: Unknown Unicode property name or value.
regularExpressionScanning.ts(21,28): error TS1529: Unknown Unicode property name or value.
regularExpressionScanning.ts(21,62): error TS1529: Unknown Unicode property name or value.
regularExpressionScanning.ts(21,72): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(21,72): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(22,28): error TS1529: Unknown Unicode property name or value.
regularExpressionScanning.ts(22,62): error TS1529: Unknown Unicode property name or value.
regularExpressionScanning.ts(22,72): error TS1501: This regular expression flag is only available when targeting 'esnext' or later.
@@ -84,7 +84,7 @@ regularExpressionScanning.ts(24,53): error TS1531: '\p' must be followed by a Un
regularExpressionScanning.ts(24,57): error TS1531: '\P' must be followed by a Unicode property value expression enclosed in braces.
regularExpressionScanning.ts(24,62): error TS1527: Expected a Unicode property name or value.
regularExpressionScanning.ts(24,66): error TS1527: Expected a Unicode property name or value.
regularExpressionScanning.ts(24,67): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(24,67): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(25,6): error TS1524: Unknown Unicode property name.
regularExpressionScanning.ts(25,31): error TS1523: Expected a Unicode property name.
regularExpressionScanning.ts(25,32): error TS1525: Expected a Unicode property value.
@@ -108,7 +108,7 @@ regularExpressionScanning.ts(27,6): error TS1528: Any Unicode property that woul
regularExpressionScanning.ts(27,19): error TS1528: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.
regularExpressionScanning.ts(27,34): error TS1528: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.
regularExpressionScanning.ts(27,47): error TS1528: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.
regularExpressionScanning.ts(27,59): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(27,59): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(28,19): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
regularExpressionScanning.ts(28,31): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
regularExpressionScanning.ts(28,47): error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
@@ -119,7 +119,7 @@ regularExpressionScanning.ts(31,15): error TS1512: '\c' must be followed by an A
regularExpressionScanning.ts(31,17): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(31,20): error TS1512: '\c' must be followed by an ASCII letter.
regularExpressionScanning.ts(31,23): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(31,26): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(31,26): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(33,3): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(33,7): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(33,10): error TS1535: This character cannot be escaped in a regular expression.
@@ -132,7 +132,7 @@ regularExpressionScanning.ts(33,41): error TS1508: Unexpected '{'. Did you mean
regularExpressionScanning.ts(33,42): error TS1508: Unexpected ']'. Did you mean to escape it with backslash?
regularExpressionScanning.ts(33,43): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(33,45): error TS1508: Unexpected '{'. Did you mean to escape it with backslash?
regularExpressionScanning.ts(33,47): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(33,47): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(34,3): error TS1511: '\q' is only available inside character class.
regularExpressionScanning.ts(34,7): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(34,10): error TS1521: '\q' must be followed by string alternatives enclosed in braces.
@@ -162,7 +162,7 @@ regularExpressionScanning.ts(37,57): error TS1508: Unexpected '{'. Did you mean
regularExpressionScanning.ts(37,61): error TS1508: Unexpected '}'. Did you mean to escape it with backslash?
regularExpressionScanning.ts(37,63): error TS1517: Range out of order in character class.
regularExpressionScanning.ts(37,76): error TS1535: This character cannot be escaped in a regular expression.
regularExpressionScanning.ts(37,87): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionScanning.ts(37,87): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
regularExpressionScanning.ts(38,8): error TS1005: '--' expected.
regularExpressionScanning.ts(38,9): error TS1520: Expected a class set operand.
regularExpressionScanning.ts(38,11): error TS1520: Expected a class set operand.
@@ -277,7 +277,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
~~~~
!!! error TS1487: Octal escape sequences are not allowed. Use the syntax '\x05'.
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/(?<foo>)((?<bar>bar)bar)(?<baz>baz)|(foo(?<foo>foo))(?<baz>)/,
~~~~~
!!! error TS1503: Named capturing groups are only available when targeting 'ES2018' or later.
@@ -347,7 +347,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
~~~~~~~
!!! error TS1529: Unknown Unicode property name or value.
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/\p{L}\p{gc=L}\p{ASCII}\p{Invalid}[\p{L}\p{gc=L}\P{ASCII}\p{Invalid}]/v,
~~~~~~~
!!! error TS1529: Unknown Unicode property name or value.
@@ -408,7 +408,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
!!! error TS1527: Expected a Unicode property name or value.
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/\p{InvalidProperty=Value}\p{=}\p{sc=}\P{=foo}[\p{}\p\\\P\P{]\p{/v,
~~~~~~~~~~~~~~~
!!! error TS1524: Unknown Unicode property name.
@@ -459,7 +459,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
~~~~~~~~~
!!! error TS1528: Any Unicode property that would possibly match more than a single character is only available when the Unicode Sets (v) flag is set.
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/\p{RGI_Emoji}\P{RGI_Emoji}[^\p{RGI_Emoji}\P{RGI_Emoji}]/v,
~~~~~~~~~
!!! error TS1518: Anything that would possibly match more than a single character is invalid inside a negated character class.
@@ -485,7 +485,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
~~
!!! error TS1535: This character cannot be escaped in a regular expression.
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/\q\\\`[\q\\\`[\Q\\\Q{\q{foo|bar|baz]\q{]\q{/,
/\q\\\`[\q\\\`[\Q\\\Q{\q{foo|bar|baz]\q{]\q{/u,
~~
@@ -513,7 +513,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
~
!!! error TS1508: Unexpected '{'. Did you mean to escape it with backslash?
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/\q\\\`[\q\\\`[\Q\\\Q{\q{foo|bar|baz]\q{]\q{/v,
~~
!!! error TS1511: '\q' is only available inside character class.
@@ -577,7 +577,7 @@ regularExpressionScanning.ts(47,101): error TS1501: This regular expression flag
~~
!!! error TS1535: This character cannot be escaped in a regular expression.
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
/[a--b[--][\d++[]]&&[[&0-9--]&&[\p{L}]--\P{L}-_-]]&&&\q{foo}[0---9][&&q&&&\q{bar}&&]/v,
!!! error TS1005: '--' expected.
@@ -1,7 +1,7 @@
regularExpressionUnicodePropertyValueExpressionSuggestions.ts(1,19): error TS1529: Unknown Unicode property name or value.
regularExpressionUnicodePropertyValueExpressionSuggestions.ts(1,28): error TS1524: Unknown Unicode property name.
regularExpressionUnicodePropertyValueExpressionSuggestions.ts(1,45): error TS1526: Unknown Unicode property value.
regularExpressionUnicodePropertyValueExpressionSuggestions.ts(1,55): error TS1501: This regular expression flag is only available when targeting 'es6' or later.
regularExpressionUnicodePropertyValueExpressionSuggestions.ts(1,55): error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
==== regularExpressionUnicodePropertyValueExpressionSuggestions.ts (4 errors) ====
@@ -16,5 +16,5 @@ regularExpressionUnicodePropertyValueExpressionSuggestions.ts(1,55): error TS150
!!! error TS1526: Unknown Unicode property value.
!!! related TS1369: Did you mean 'Unknown'?
~
!!! error TS1501: This regular expression flag is only available when targeting 'es6' or later.
!!! error TS1501: This regular expression flag is only available when targeting 'es2015' or later.
@@ -174,7 +174,7 @@ Info seq [hh:mm:ss:mss] event:
"configFile": "/a/b/tsconfig.json",
"diagnostics": [
{
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es6'",
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es2015'",
"code": 6053,
"category": "error",
"relatedInformation": [
@@ -127,7 +127,7 @@ Info seq [hh:mm:ss:mss] event:
"configFile": "/a/b/tsconfig.json",
"diagnostics": [
{
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es6'",
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es2015'",
"code": 6053,
"category": "error",
"relatedInformation": [
@@ -133,7 +133,7 @@ Info seq [hh:mm:ss:mss] event:
"configFile": "/a/b/tsconfig.json",
"diagnostics": [
{
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es6'",
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es2015'",
"code": 6053,
"category": "error",
"relatedInformation": [
@@ -142,7 +142,7 @@ Info seq [hh:mm:ss:mss] event:
"configFile": "/a/b/tsconfig.json",
"diagnostics": [
{
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es6'",
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es2015'",
"code": 6053,
"category": "error",
"relatedInformation": [
@@ -142,7 +142,7 @@ Info seq [hh:mm:ss:mss] event:
"configFile": "/a/b/tsconfig.json",
"diagnostics": [
{
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es6'",
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es2015'",
"code": 6053,
"category": "error",
"relatedInformation": [
@@ -1094,6 +1094,12 @@ Info seq [hh:mm:ss:mss] response:
"kindModifiers": "",
"sortText": "15"
},
{
"name": "TypeScriptSettings",
"kind": "interface",
"kindModifiers": "declare",
"sortText": "15"
},
{
"name": "Uint8Array",
"kind": "var",
@@ -458,7 +458,7 @@ Info seq [hh:mm:ss:mss] event:
"configFile": "/user/username/projects/myproject/a/b/tsconfig.json",
"diagnostics": [
{
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es6'",
"text": "File '/a/lib/lib.es6.d.ts' not found.\n The file is in the program because:\n Default library for target 'es2015'",
"code": 6053,
"category": "error",
"relatedInformation": [
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.customConditions.0.ts] ////
=== typeScriptSettings.customConditions.0.ts ===
type customConditions = TypeScriptSettings["customConditions"];
>customConditions : Symbol(customConditions, Decl(typeScriptSettings.customConditions.0.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.customConditions.0.ts] ////
=== typeScriptSettings.customConditions.0.ts ===
type customConditions = TypeScriptSettings["customConditions"];
>customConditions : readonly []
> : ^^^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.customConditions.1.ts] ////
=== typeScriptSettings.customConditions.1.ts ===
type customConditions = TypeScriptSettings["customConditions"];
>customConditions : Symbol(customConditions, Decl(typeScriptSettings.customConditions.1.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.customConditions.1.ts] ////
=== typeScriptSettings.customConditions.1.ts ===
type customConditions = TypeScriptSettings["customConditions"];
>customConditions : readonly ["cond1", "cond2"]
> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.esModuleInterop.ts] ////
=== typeScriptSettings.esModuleInterop.ts ===
type esModuleInterop = TypeScriptSettings["esModuleInterop"];
>esModuleInterop : Symbol(esModuleInterop, Decl(typeScriptSettings.esModuleInterop.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.esModuleInterop.ts] ////
=== typeScriptSettings.esModuleInterop.ts ===
type esModuleInterop = TypeScriptSettings["esModuleInterop"];
>esModuleInterop : false
> : ^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.esModuleInterop.ts] ////
=== typeScriptSettings.esModuleInterop.ts ===
type esModuleInterop = TypeScriptSettings["esModuleInterop"];
>esModuleInterop : Symbol(esModuleInterop, Decl(typeScriptSettings.esModuleInterop.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.esModuleInterop.ts] ////
=== typeScriptSettings.esModuleInterop.ts ===
type esModuleInterop = TypeScriptSettings["esModuleInterop"];
>esModuleInterop : true
> : ^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.exactOptionalPropertyTypes.ts] ////
=== typeScriptSettings.exactOptionalPropertyTypes.ts ===
type exactOptionalPropertyTypes = TypeScriptSettings["exactOptionalPropertyTypes"];
>exactOptionalPropertyTypes : Symbol(exactOptionalPropertyTypes, Decl(typeScriptSettings.exactOptionalPropertyTypes.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.exactOptionalPropertyTypes.ts] ////
=== typeScriptSettings.exactOptionalPropertyTypes.ts ===
type exactOptionalPropertyTypes = TypeScriptSettings["exactOptionalPropertyTypes"];
>exactOptionalPropertyTypes : false
> : ^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.exactOptionalPropertyTypes.ts] ////
=== typeScriptSettings.exactOptionalPropertyTypes.ts ===
type exactOptionalPropertyTypes = TypeScriptSettings["exactOptionalPropertyTypes"];
>exactOptionalPropertyTypes : Symbol(exactOptionalPropertyTypes, Decl(typeScriptSettings.exactOptionalPropertyTypes.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.exactOptionalPropertyTypes.ts] ////
=== typeScriptSettings.exactOptionalPropertyTypes.ts ===
type exactOptionalPropertyTypes = TypeScriptSettings["exactOptionalPropertyTypes"];
>exactOptionalPropertyTypes : true
> : ^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.locale.0.ts] ////
=== typeScriptSettings.locale.0.ts ===
type locale = TypeScriptSettings["locale"];
>locale : Symbol(locale, Decl(typeScriptSettings.locale.0.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.locale.0.ts] ////
=== typeScriptSettings.locale.0.ts ===
type locale = TypeScriptSettings["locale"];
>locale : undefined
> : ^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.locale.1.ts] ////
=== typeScriptSettings.locale.1.ts ===
type locale = TypeScriptSettings["locale"];
>locale : Symbol(locale, Decl(typeScriptSettings.locale.1.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.locale.1.ts] ////
=== typeScriptSettings.locale.1.ts ===
type locale = TypeScriptSettings["locale"];
>locale : "en-US"
> : ^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "amd"
> : ^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "commonjs"
> : ^^^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "es2020"
> : ^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "es2022"
> : ^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "es2015"
> : ^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "esnext"
> : ^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "node16"
> : ^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node16"
> : ^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "nodenext"
> : ^^^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "nodenext"
> : ^^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "none"
> : ^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "preserve"
> : ^^^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "bundler"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "system"
> : ^^^^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : Symbol(module, Decl(typeScriptSettings.module.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.module.ts, 0, 43))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,11 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.module.ts] ////
=== typeScriptSettings.module.ts ===
type module = TypeScriptSettings["module"];
>module : "umd"
> : ^^^^^
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "classic"
> : ^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.bundler.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "bundler"
> : ^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.bundler.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "bundler"
> : ^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.bundler.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "bundler"
> : ^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.bundler.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.bundler.ts] ////
=== typeScriptSettings.moduleResolution.bundler.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "bundler"
> : ^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node10.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node10.ts] ////
=== typeScriptSettings.moduleResolution.node10.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node10"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node16.ts] ////
=== typeScriptSettings.moduleResolution.node16.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node16.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node16.ts] ////
=== typeScriptSettings.moduleResolution.node16.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node16"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node16.ts] ////
=== typeScriptSettings.moduleResolution.node16.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.node16.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.node16.ts] ////
=== typeScriptSettings.moduleResolution.node16.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "node16"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.nodenext.ts] ////
=== typeScriptSettings.moduleResolution.nodenext.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.nodenext.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.nodenext.ts] ////
=== typeScriptSettings.moduleResolution.nodenext.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "nodenext"
> : ^^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.nodenext.ts] ////
=== typeScriptSettings.moduleResolution.nodenext.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : Symbol(moduleResolution, Decl(typeScriptSettings.moduleResolution.nodenext.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.moduleResolution.nodenext.ts] ////
=== typeScriptSettings.moduleResolution.nodenext.ts ===
type moduleResolution = TypeScriptSettings["moduleResolution"];
>moduleResolution : "nodenext"
> : ^^^^^^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.noImplicitAny.ts] ////
=== typeScriptSettings.noImplicitAny.ts ===
type noImplicitAny = TypeScriptSettings["noImplicitAny"];
>noImplicitAny : Symbol(noImplicitAny, Decl(typeScriptSettings.noImplicitAny.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.noImplicitAny.ts] ////
=== typeScriptSettings.noImplicitAny.ts ===
type noImplicitAny = TypeScriptSettings["noImplicitAny"];
>noImplicitAny : false
> : ^^^^^
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.noImplicitAny.ts] ////
=== typeScriptSettings.noImplicitAny.ts ===
type noImplicitAny = TypeScriptSettings["noImplicitAny"];
>noImplicitAny : Symbol(noImplicitAny, Decl(typeScriptSettings.noImplicitAny.ts, 0, 0))
>TypeScriptSettings : Symbol(TypeScriptSettings)
@@ -0,0 +1,7 @@
//// [tests/cases/conformance/types/typeScriptSettings/typeScriptSettings.noImplicitAny.ts] ////
=== typeScriptSettings.noImplicitAny.ts ===
type noImplicitAny = TypeScriptSettings["noImplicitAny"];
>noImplicitAny : true
> : ^^^^

Some files were not shown because too many files have changed in this diff Show More