11import type {
22 CallExpression ,
33 EOCallExpression ,
4+ EOCallExpressionInnerCallee ,
45 EOPropertyWithCallExpression ,
56} from '../../ast' ;
7+ import {
8+ isEOCallExpressionInnerCallee ,
9+ isEOMemberExpressionForModifier ,
10+ } from '../../ast' ;
611import type { DecoratorImportInfoMap } from '../../decorator-info' ;
712import type { RuntimeData } from '../../runtime-data' ;
8- import { assert , isString , verified } from '../../util/types' ;
13+ import { verified } from '../../util/types' ;
914import AbstractEOProp from './abstract' ;
1015
1116interface CallExpressionModifier {
@@ -29,7 +34,7 @@ function getModifier(calleeObject: EOCallExpression): CallExpressionModifier {
2934}
3035
3136export default class EOCallExpressionProp extends AbstractEOProp < EOPropertyWithCallExpression > {
32- private calleeObject : CallExpression ;
37+ private calleeObject : EOCallExpressionInnerCallee ;
3338 readonly modifiers : CallExpressionModifier [ ] ;
3439
3540 constructor (
@@ -41,15 +46,11 @@ export default class EOCallExpressionProp extends AbstractEOProp<EOPropertyWithC
4146
4247 let calleeObject = this . _prop . value ;
4348 const modifiers = [ getModifier ( calleeObject ) ] ;
44- while (
45- 'callee' in calleeObject &&
46- calleeObject . callee . type === 'MemberExpression' &&
47- calleeObject . callee . object . type === 'CallExpression'
48- ) {
49+ while ( isEOMemberExpressionForModifier ( calleeObject . callee ) ) {
4950 calleeObject = calleeObject . callee . object ;
5051 modifiers . push ( getModifier ( calleeObject ) ) ;
5152 }
52- this . calleeObject = calleeObject ;
53+ this . calleeObject = verified ( calleeObject , isEOCallExpressionInnerCallee ) ;
5354 this . modifiers = modifiers . reverse ( ) ;
5455 this . modifiers . shift ( ) ;
5556
@@ -64,8 +65,7 @@ export default class EOCallExpressionProp extends AbstractEOProp<EOPropertyWithC
6465 }
6566
6667 private get calleeName ( ) : string {
67- assert ( 'name' in this . calleeObject . callee ) ;
68- return verified ( this . calleeObject . callee . name , isString ) ;
68+ return this . calleeObject . callee . name ;
6969 }
7070
7171 get arguments ( ) : CallExpression [ 'arguments' ] {
0 commit comments