(node *ast.Node, modifierMask ast.ModifierFlags, modifierAdditions ast.ModifierFlags)
| 127 | } |
| 128 | |
| 129 | func 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 | |
| 142 | func unwrapParenthesizedExpression(o *ast.Node) *ast.Node { |
| 143 | for o.Kind == ast.KindParenthesizedExpression { |
no test coverage detected