11import { satisfies } from 'semver' ;
22import { NonterminalKind } from '@nomicfoundation/slang/cst' ;
33import { printFunctionWithBody } from '../slang-printers/print-function.js' ;
4- import { printVariant } from '../slang-printers/print-variant.js' ;
54import { extractVariant } from '../slang-utils/extract-variant.js' ;
65import { SlangNode } from './SlangNode.js' ;
76import { FunctionName } from './FunctionName.js' ;
@@ -18,7 +17,7 @@ import type { AstNode } from './types.d.ts';
1817export class FunctionDefinition extends SlangNode {
1918 readonly kind = NonterminalKind . FunctionDefinition ;
2019
21- name : FunctionName ;
20+ name : FunctionName [ 'variant' ] ;
2221
2322 parameters : ParametersDeclaration ;
2423
@@ -31,7 +30,7 @@ export class FunctionDefinition extends SlangNode {
3130 constructor ( ast : ast . FunctionDefinition , options : ParserOptions < AstNode > ) {
3231 super ( ast ) ;
3332
34- this . name = new FunctionName ( ast . name ) ;
33+ this . name = extractVariant ( new FunctionName ( ast . name ) ) ;
3534 this . parameters = new ParametersDeclaration ( ast . parameters , options ) ;
3635 this . attributes = new FunctionAttributes ( ast . attributes , options ) ;
3736 if ( ast . returns ) {
@@ -67,7 +66,7 @@ export class FunctionDefinition extends SlangNode {
6766
6867 print ( path : AstPath < FunctionDefinition > , print : PrintFunction ) : Doc {
6968 return printFunctionWithBody (
70- [ 'function ' , path . call ( printVariant ( print ) , 'name' ) ] ,
69+ [ 'function ' , path . call ( print , 'name' ) ] ,
7170 this ,
7271 path ,
7372 print
0 commit comments