Skip to content

Commit 88a3b75

Browse files
committed
transform expando properties
1 parent de20274 commit 88a3b75

File tree

75 files changed

+1627
-1232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1627
-1232
lines changed

internal/ast/utilities.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3652,3 +3652,7 @@ func IsExpandoInitializer(initializer *Node) bool {
36523652
}
36533653
return false
36543654
}
3655+
3656+
func HasModifier(node *Node, flags ModifierFlags) bool {
3657+
return node.ModifierFlags()&flags != 0
3658+
}

internal/checker/checker.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4239,7 +4239,7 @@ func (c *Checker) checkBaseTypeAccessibility(t *Type, node *ast.Node) {
42394239
signatures := c.getSignaturesOfType(t, SignatureKindConstruct)
42404240
if len(signatures) != 0 {
42414241
declaration := signatures[0].declaration
4242-
if declaration != nil && HasModifier(declaration, ast.ModifierFlagsPrivate) {
4242+
if declaration != nil && ast.HasModifier(declaration, ast.ModifierFlagsPrivate) {
42434243
typeClassDeclaration := ast.GetClassLikeDeclarationOfSymbol(t.symbol)
42444244
if !c.isNodeWithinClass(node, typeClassDeclaration) {
42454245
c.error(node, diagnostics.Cannot_extend_a_class_0_Class_constructor_is_marked_as_private, c.getFullyQualifiedName(t.symbol, nil))
@@ -6452,7 +6452,7 @@ func (c *Checker) checkAliasSymbol(node *ast.Node) {
64526452
name := node.PropertyNameOrName().Text()
64536453
c.addTypeOnlyDeclarationRelatedInfo(c.error(node, message, name), core.IfElse(isType, nil, typeOnlyAlias), name)
64546454
}
6455-
if isType && node.Kind == ast.KindImportEqualsDeclaration && HasModifier(node, ast.ModifierFlagsExport) {
6455+
if isType && node.Kind == ast.KindImportEqualsDeclaration && ast.HasModifier(node, ast.ModifierFlagsExport) {
64566456
c.error(node, diagnostics.Cannot_use_export_import_on_a_type_or_type_only_namespace_when_0_is_enabled, c.getIsolatedModulesLikeFlagName())
64576457
}
64586458
case ast.KindExportSpecifier:
@@ -6740,7 +6740,7 @@ func (c *Checker) checkUnusedClassMembers(node *ast.Node) {
67406740
break // Already would have reported an error on the getter.
67416741
}
67426742
symbol := c.getSymbolOfDeclaration(member)
6743-
if !c.isReferenced(symbol) && (HasModifier(member, ast.ModifierFlagsPrivate) || member.Name() != nil && ast.IsPrivateIdentifier(member.Name())) && member.Flags&ast.NodeFlagsAmbient == 0 {
6743+
if !c.isReferenced(symbol) && (ast.HasModifier(member, ast.ModifierFlagsPrivate) || member.Name() != nil && ast.IsPrivateIdentifier(member.Name())) && member.Flags&ast.NodeFlagsAmbient == 0 {
67446744
c.reportUnused(member, UnusedKindLocal, NewDiagnosticForNode(member.Name(), diagnostics.X_0_is_declared_but_its_value_is_never_read, c.symbolToString(symbol)))
67456745
}
67466746
case ast.KindConstructor:
@@ -8299,7 +8299,7 @@ func (c *Checker) resolveNewExpression(node *ast.Node, candidatesOutArray *[]*Si
82998299
}
83008300
if expressionType.symbol != nil {
83018301
valueDecl := ast.GetClassLikeDeclarationOfSymbol(expressionType.symbol)
8302-
if valueDecl != nil && HasModifier(valueDecl, ast.ModifierFlagsAbstract) {
8302+
if valueDecl != nil && ast.HasModifier(valueDecl, ast.ModifierFlagsAbstract) {
83038303
c.error(node, diagnostics.Cannot_create_an_instance_of_an_abstract_class)
83048304
return c.resolveErrorCall(node)
83058305
}
@@ -18779,7 +18779,7 @@ func (c *Checker) getIndexInfosOfIndexSymbol(indexSymbol *ast.Symbol, siblingSym
1877918779
}
1878018780
forEachType(c.getTypeFromTypeNode(typeNode), func(keyType *Type) {
1878118781
if c.isValidIndexKeyType(keyType) && findIndexInfo(indexInfos, keyType) == nil {
18782-
indexInfo := c.newIndexInfo(keyType, valueType, HasModifier(declaration, ast.ModifierFlagsReadonly), declaration)
18782+
indexInfo := c.newIndexInfo(keyType, valueType, ast.HasModifier(declaration, ast.ModifierFlagsReadonly), declaration)
1878318783
indexInfos = append(indexInfos, indexInfo)
1878418784
}
1878518785
})
@@ -26671,7 +26671,7 @@ func (c *Checker) markPropertyAsReferenced(prop *ast.Symbol, nodeForCheckWriteOn
2667126671
if prop.Flags&ast.SymbolFlagsClassMember == 0 || prop.ValueDeclaration == nil {
2667226672
return
2667326673
}
26674-
hasPrivateModifier := HasModifier(prop.ValueDeclaration, ast.ModifierFlagsPrivate)
26674+
hasPrivateModifier := ast.HasModifier(prop.ValueDeclaration, ast.ModifierFlagsPrivate)
2667526675
hasPrivateIdentifier := prop.ValueDeclaration.Name() != nil && ast.IsPrivateIdentifier(prop.ValueDeclaration.Name())
2667626676
if !hasPrivateModifier && !hasPrivateIdentifier {
2667726677
return

internal/checker/utilities.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,8 @@ func getSelectedModifierFlags(node *ast.Node, flags ast.ModifierFlags) ast.Modif
7676
return node.ModifierFlags() & flags
7777
}
7878

79-
func HasModifier(node *ast.Node, flags ast.ModifierFlags) bool {
80-
return node.ModifierFlags()&flags != 0
81-
}
82-
8379
func hasReadonlyModifier(node *ast.Node) bool {
84-
return HasModifier(node, ast.ModifierFlagsReadonly)
80+
return ast.HasModifier(node, ast.ModifierFlagsReadonly)
8581
}
8682

8783
func isStaticPrivateIdentifierProperty(s *ast.Symbol) bool {
@@ -405,7 +401,7 @@ func declarationBelongsToPrivateAmbientMember(declaration *ast.Node) bool {
405401
}
406402

407403
func isPrivateWithinAmbient(node *ast.Node) bool {
408-
return (HasModifier(node, ast.ModifierFlagsPrivate) || ast.IsPrivateIdentifierClassElementDeclaration(node)) && node.Flags&ast.NodeFlagsAmbient != 0
404+
return (ast.HasModifier(node, ast.ModifierFlagsPrivate) || ast.IsPrivateIdentifierClassElementDeclaration(node)) && node.Flags&ast.NodeFlagsAmbient != 0
409405
}
410406

411407
func isTypeAssertion(node *ast.Node) bool {

internal/ls/findallreferences.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ func getSymbolScope(symbol *ast.Symbol) *ast.Node {
340340
// If this is private property or method, the scope is the containing class
341341
if symbol.Flags&(ast.SymbolFlagsProperty|ast.SymbolFlagsMethod) != 0 {
342342
privateDeclaration := core.Find(declarations, func(d *ast.Node) bool {
343-
return checker.HasModifier(d, ast.ModifierFlagsPrivate) || ast.IsPrivateIdentifierClassElementDeclaration(d)
343+
return ast.HasModifier(d, ast.ModifierFlagsPrivate) || ast.IsPrivateIdentifierClassElementDeclaration(d)
344344
})
345345
if privateDeclaration != nil {
346346
return ast.FindAncestorKind(privateDeclaration, ast.KindClassDeclaration)

0 commit comments

Comments
 (0)