File tree Expand file tree Collapse file tree 2 files changed +45
-34
lines changed
tests/PHPStan/Rules/Variables Expand file tree Collapse file tree 2 files changed +45
-34
lines changed Original file line number Diff line number Diff line change @@ -96,23 +96,27 @@ public function testBug12421(): void
96
96
$ this ->analyse ([__DIR__ . '/data/bug-12421.php ' ], [
97
97
[
98
98
'Cannot unset property y of readonly class Bug12421\NativeReadonlyClass. ' ,
99
- 78 ,
99
+ 11 ,
100
100
],
101
101
[
102
102
'Cannot unset readonly property y of Bug12421\NativeReadonlyProperty. ' ,
103
- 82 ,
103
+ 15 ,
104
104
],
105
105
[
106
106
'Cannot unset property y of immutable class Bug12421\PhpdocReadonlyClass. ' ,
107
- 86 ,
107
+ 19 ,
108
108
],
109
109
[
110
110
'Cannot unset @readonly property y of Bug12421\PhpdocReadonlyProperty. ' ,
111
- 90 ,
111
+ 23 ,
112
112
],
113
113
[
114
114
'Cannot unset property y of immutable class Bug12421\PhpdocImmutableClass. ' ,
115
- 94 ,
115
+ 27 ,
116
+ ],
117
+ [
118
+ 'Cannot unset readonly property y of Bug12421\NativeReadonlyPropertySubClass. ' ,
119
+ 34 ,
116
120
],
117
121
]);
118
122
}
Original file line number Diff line number Diff line change 2
2
3
3
namespace Bug12421 ;
4
4
5
+ function doFoo () {
6
+ $ x = new RegularProperty ();
7
+ unset($ x ->y );
8
+ var_dump ($ x ->y );
9
+
10
+ $ x = new NativeReadonlyClass ();
11
+ unset($ x ->y );
12
+ var_dump ($ x ->y );
13
+
14
+ $ x = new NativeReadonlyProperty ();
15
+ unset($ x ->y );
16
+ var_dump ($ x ->y );
17
+
18
+ $ x = new PhpdocReadonlyClass ();
19
+ unset($ x ->y );
20
+ var_dump ($ x ->y );
21
+
22
+ $ x = new PhpdocReadonlyProperty ();
23
+ unset($ x ->y );
24
+ var_dump ($ x ->y );
25
+
26
+ $ x = new PhpdocImmutableClass ();
27
+ unset($ x ->y );
28
+ var_dump ($ x ->y );
29
+
30
+ $ x = new \stdClass ();
31
+ unset($ x ->y );
32
+
33
+ $ x = new NativeReadonlyPropertySubClass ();
34
+ unset($ x ->y );
35
+ var_dump ($ x ->y );
36
+ }
37
+
5
38
readonly class NativeReadonlyClass
6
39
{
7
40
public Y $ y ;
@@ -65,37 +98,11 @@ public function __construct()
65
98
}
66
99
}
67
100
68
- class Y
101
+ class NativeReadonlyPropertySubClass extends NativeReadonlyProperty
69
102
{
70
103
}
71
104
72
- function doFoo () {
73
- $ x = new RegularProperty ();
74
- unset($ x ->y );
75
- var_dump ($ x ->y );
76
-
77
- $ x = new NativeReadonlyClass ();
78
- unset($ x ->y );
79
- var_dump ($ x ->y );
80
-
81
- $ x = new NativeReadonlyProperty ();
82
- unset($ x ->y );
83
- var_dump ($ x ->y );
84
-
85
- $ x = new PhpdocReadonlyClass ();
86
- unset($ x ->y );
87
- var_dump ($ x ->y );
88
-
89
- $ x = new PhpdocReadonlyProperty ();
90
- unset($ x ->y );
91
- var_dump ($ x ->y );
92
-
93
- $ x = new PhpdocImmutableClass ();
94
- unset($ x ->y );
95
- var_dump ($ x ->y );
96
-
97
- $ x = new \stdClass ();
98
- unset($ x ->y );
99
-
105
+ class Y
106
+ {
100
107
}
101
108
You can’t perform that action at this time.
0 commit comments