@@ -68,13 +68,24 @@ public function refactor(Node $node): ?Ternary
6868 $ nullsafeVariable = $ this ->createNullsafeVariable ();
6969
7070 $ assign = new Assign ($ nullsafeVariable , $ node ->var ->var );
71- $ methodCallOrPropertyFetch = $ node ->var instanceof NullsafeMethodCall
72- ? new MethodCall (new MethodCall (
73- $ nullsafeVariable ,
74- $ node ->var ->name ,
75- $ node ->var ->args
76- ), $ node ->name , $ node ->args )
77- : new PropertyFetch (new PropertyFetch ($ nullsafeVariable , $ node ->var ->name ), $ node ->name );
71+
72+ if ($ node instanceof MethodCall) {
73+ if ($ node ->var instanceof NullsafeMethodCall) {
74+ $ methodCallOrPropertyFetch = new MethodCall (new MethodCall ($ nullsafeVariable , $ node ->var ->name , $ node ->var ->args ), $ node ->name , $ node ->args );
75+ return new Ternary ($ assign , $ methodCallOrPropertyFetch , $ this ->nodeFactory ->createNull ());
76+ } else {
77+ $ methodCallOrPropertyFetch = new MethodCall (new PropertyFetch ($ nullsafeVariable , $ node ->var ->name ), $ node ->name , $ node ->args );
78+ return new Ternary ($ assign , $ methodCallOrPropertyFetch , $ this ->nodeFactory ->createNull ());
79+ }
80+ } else {
81+ if ($ node ->var instanceof NullsafeMethodCall) {
82+ $ methodCallOrPropertyFetch = new PropertyFetch (new MethodCall ($ nullsafeVariable , $ node ->var ->name , $ node ->var ->args ), $ node ->name );
83+ return new Ternary ($ assign , $ methodCallOrPropertyFetch , $ this ->nodeFactory ->createNull ());
84+ } else {
85+ $ methodCallOrPropertyFetch = new PropertyFetch (new PropertyFetch ($ nullsafeVariable , $ node ->var ->name ), $ node ->name );
86+ return new Ternary ($ assign , $ methodCallOrPropertyFetch , $ this ->nodeFactory ->createNull ());
87+ }
88+ }
7889
7990 return new Ternary ($ assign , $ methodCallOrPropertyFetch , $ this ->nodeFactory ->createNull ());
8091 }
0 commit comments