Merge pull request #24761 from ajafff/avoid-useless-closures
checker: avoid useless closures
This commit is contained in:
commit
d2be8dd6c4
1 changed files with 6 additions and 6 deletions
|
@ -2900,7 +2900,7 @@ namespace ts {
|
||||||
|
|
||||||
function hasVisibleDeclarations(symbol: Symbol, shouldComputeAliasToMakeVisible: boolean): SymbolVisibilityResult | undefined {
|
function hasVisibleDeclarations(symbol: Symbol, shouldComputeAliasToMakeVisible: boolean): SymbolVisibilityResult | undefined {
|
||||||
let aliasesToMakeVisible: LateVisibilityPaintedStatement[] | undefined;
|
let aliasesToMakeVisible: LateVisibilityPaintedStatement[] | undefined;
|
||||||
if (forEach(symbol.declarations, declaration => !getIsDeclarationVisible(declaration))) {
|
if (!every(symbol.declarations, getIsDeclarationVisible)) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
return { accessibility: SymbolAccessibility.Accessible, aliasesToMakeVisible };
|
return { accessibility: SymbolAccessibility.Accessible, aliasesToMakeVisible };
|
||||||
|
@ -5494,7 +5494,7 @@ namespace ts {
|
||||||
// object types.
|
// object types.
|
||||||
function isValidBaseType(type: Type): type is BaseType {
|
function isValidBaseType(type: Type): type is BaseType {
|
||||||
return !!(type.flags & (TypeFlags.Object | TypeFlags.NonPrimitive | TypeFlags.Any)) && !isGenericMappedType(type) ||
|
return !!(type.flags & (TypeFlags.Object | TypeFlags.NonPrimitive | TypeFlags.Any)) && !isGenericMappedType(type) ||
|
||||||
!!(type.flags & TypeFlags.Intersection) && !some((<IntersectionType>type).types, t => !isValidBaseType(t));
|
!!(type.flags & TypeFlags.Intersection) && every((<IntersectionType>type).types, isValidBaseType);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resolveBaseTypesOfInterface(type: InterfaceType): void {
|
function resolveBaseTypesOfInterface(type: InterfaceType): void {
|
||||||
|
@ -10294,7 +10294,7 @@ namespace ts {
|
||||||
return type.flags & TypeFlags.Object ? isEmptyResolvedType(resolveStructuredTypeMembers(<ObjectType>type)) :
|
return type.flags & TypeFlags.Object ? isEmptyResolvedType(resolveStructuredTypeMembers(<ObjectType>type)) :
|
||||||
type.flags & TypeFlags.NonPrimitive ? true :
|
type.flags & TypeFlags.NonPrimitive ? true :
|
||||||
type.flags & TypeFlags.Union ? some((<UnionType>type).types, isEmptyObjectType) :
|
type.flags & TypeFlags.Union ? some((<UnionType>type).types, isEmptyObjectType) :
|
||||||
type.flags & TypeFlags.Intersection ? !some((<UnionType>type).types, t => !isEmptyObjectType(t)) :
|
type.flags & TypeFlags.Intersection ? every((<UnionType>type).types, isEmptyObjectType) :
|
||||||
false;
|
false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11955,7 +11955,7 @@ namespace ts {
|
||||||
|
|
||||||
function isLiteralType(type: Type): boolean {
|
function isLiteralType(type: Type): boolean {
|
||||||
return type.flags & TypeFlags.Boolean ? true :
|
return type.flags & TypeFlags.Boolean ? true :
|
||||||
type.flags & TypeFlags.Union ? type.flags & TypeFlags.EnumLiteral ? true : !forEach((<UnionType>type).types, t => !isUnitType(t)) :
|
type.flags & TypeFlags.Union ? type.flags & TypeFlags.EnumLiteral ? true : every((<UnionType>type).types, isUnitType) :
|
||||||
isUnitType(type);
|
isUnitType(type);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16165,7 +16165,7 @@ namespace ts {
|
||||||
return !!(type.flags & (TypeFlags.AnyOrUnknown | TypeFlags.NonPrimitive) ||
|
return !!(type.flags & (TypeFlags.AnyOrUnknown | TypeFlags.NonPrimitive) ||
|
||||||
getFalsyFlags(type) & TypeFlags.DefinitelyFalsy && isValidSpreadType(removeDefinitelyFalsyTypes(type)) ||
|
getFalsyFlags(type) & TypeFlags.DefinitelyFalsy && isValidSpreadType(removeDefinitelyFalsyTypes(type)) ||
|
||||||
type.flags & TypeFlags.Object && !isGenericMappedType(type) ||
|
type.flags & TypeFlags.Object && !isGenericMappedType(type) ||
|
||||||
type.flags & TypeFlags.UnionOrIntersection && !forEach((<UnionOrIntersectionType>type).types, t => !isValidSpreadType(t)));
|
type.flags & TypeFlags.UnionOrIntersection && every((<UnionOrIntersectionType>type).types, isValidSpreadType));
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkJsxSelfClosingElement(node: JsxSelfClosingElement, checkMode: CheckMode | undefined): Type {
|
function checkJsxSelfClosingElement(node: JsxSelfClosingElement, checkMode: CheckMode | undefined): Type {
|
||||||
|
@ -20443,7 +20443,7 @@ namespace ts {
|
||||||
if (propType.symbol && propType.symbol.flags & SymbolFlags.Class) {
|
if (propType.symbol && propType.symbol.flags & SymbolFlags.Class) {
|
||||||
const name = prop.escapedName;
|
const name = prop.escapedName;
|
||||||
const symbol = resolveName(prop.valueDeclaration, name, SymbolFlags.Type, undefined, name, /*isUse*/ false);
|
const symbol = resolveName(prop.valueDeclaration, name, SymbolFlags.Type, undefined, name, /*isUse*/ false);
|
||||||
if (symbol && symbol.declarations.some(d => d.kind === SyntaxKind.JSDocTypedefTag)) {
|
if (symbol && symbol.declarations.some(isJSDocTypedefTag)) {
|
||||||
grammarErrorOnNode(symbol.declarations[0], Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name));
|
grammarErrorOnNode(symbol.declarations[0], Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name));
|
||||||
return grammarErrorOnNode(prop.valueDeclaration, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name));
|
return grammarErrorOnNode(prop.valueDeclaration, Diagnostics.Duplicate_identifier_0, unescapeLeadingUnderscores(name));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue