MCPcopy Create free account
hub / github.com/microsoft/typescript-go / maskModifierFlags

Function maskModifierFlags

internal/transformers/declarations/util.go:129–140  ·  view source on GitHub ↗
(node *ast.Node, modifierMask ast.ModifierFlags, modifierAdditions ast.ModifierFlags)

Source from the content-addressed store, hash-verified

127}
128
129func maskModifierFlags(node *ast.Node, modifierMask ast.ModifierFlags, modifierAdditions ast.ModifierFlags) ast.ModifierFlags {
130 flags := (ast.GetCombinedModifierFlags(node) & modifierMask) | modifierAdditions
131 if flags&ast.ModifierFlagsDefault != 0 && (flags&ast.ModifierFlagsExport == 0) {
132 // A non-exported default is a nonsequitor - we usually try to remove all export modifiers
133 // from statements in ambient declarations; but a default export must retain its export modifier to be syntactically valid
134 flags ^= ast.ModifierFlagsExport
135 }
136 if flags&ast.ModifierFlagsDefault != 0 && flags&ast.ModifierFlagsAmbient != 0 {
137 flags ^= ast.ModifierFlagsAmbient // `declare` is never required alongside `default` (and would be an error if printed)
138 }
139 return flags
140}
141
142func unwrapParenthesizedExpression(o *ast.Node) *ast.Node {
143 for o.Kind == ast.KindParenthesizedExpression {

Callers 1

ensureModifierFlagsMethod · 0.85

Calls 1

GetCombinedModifierFlagsFunction · 0.92

Tested by

no test coverage detected