File tree Expand file tree Collapse file tree
rules-tests/CodeQuality/Rector/ClassMethod/OptionalParametersAfterRequiredRector/Fixture
rules/CodeQuality/Rector/ClassMethod Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -15,6 +15,10 @@ class TypedParams
1515 function run3 ($ optional = 1 , null |int $ required )
1616 {
1717 }
18+
19+ function run4 ($ optional = 1 , A &B $ required )
20+ {
21+ }
1822}
1923
2024?>
@@ -36,6 +40,10 @@ class TypedParams
3640 function run3 ($ optional = 1 , null |int $ required = null )
3741 {
3842 }
43+
44+ function run4 ($ optional = 1 , (A &B )|null $ required = null )
45+ {
46+ }
3947}
4048
4149?>
Original file line number Diff line number Diff line change @@ -85,32 +85,37 @@ public function refactor(Node $node): ClassMethod|Function_|null
8585 $ hasChanged = true ;
8686
8787 $ param ->default = new ConstFetch (new Name ('null ' ));
88- $ paramType = $ param ->type ;
8988
90- if (! $ paramType instanceof Node) {
89+ if (! $ param -> type instanceof Node) {
9190 continue ;
9291 }
9392
94- if ($ paramType instanceof NullableType) {
93+ if ($ param -> type instanceof NullableType) {
9594 continue ;
9695 }
9796
98- if ($ paramType instanceof UnionType || $ paramType instanceof IntersectionType ) {
99- foreach ($ paramType ->types as $ unionedType ) {
97+ if ($ param -> type instanceof UnionType) {
98+ foreach ($ param -> type ->types as $ unionedType ) {
10099 if ($ unionedType instanceof Identifier && $ this ->isName ($ unionedType , 'null ' )) {
101100 continue 2 ;
102101 }
103102 }
104103
105- $ paramType ->types [] = new Identifier ('null ' );
104+ $ param -> type ->types [] = new Identifier ('null ' );
106105 continue ;
107106 }
108107
109- if ($ paramType instanceof ComplexType) {
108+ if ($ param ->type instanceof IntersectionType) {
109+ $ param ->type = new UnionType ([$ param ->type , new Identifier ('null ' )]);
110+
111+ continue ;
112+ }
113+
114+ if ($ param ->type instanceof ComplexType) {
110115 continue ;
111116 }
112117
113- $ param ->type = new NullableType ($ paramType );
118+ $ param ->type = new NullableType ($ param -> type );
114119 }
115120 }
116121
You can’t perform that action at this time.
0 commit comments