@@ 275-315 (lines=41) @@ | ||
272 | ||
273 | $declaring_property_id = strtolower($declaring_property_class) . '::$' . $prop_name; |
|
274 | ||
275 | if ($codebase->alter_code) { |
|
276 | $moved_class = $codebase->classlikes->handleClassLikeReferenceInMigration( |
|
277 | $codebase, |
|
278 | $statements_analyzer, |
|
279 | $stmt->class, |
|
280 | $fq_class_name, |
|
281 | $context->calling_method_id |
|
282 | ); |
|
283 | ||
284 | if (!$moved_class) { |
|
285 | foreach ($codebase->property_transforms as $original_pattern => $transformation) { |
|
286 | if ($declaring_property_id === $original_pattern) { |
|
287 | list($old_declaring_fq_class_name) = explode('::$', $declaring_property_id); |
|
288 | list($new_fq_class_name, $new_property_name) = explode('::$', $transformation); |
|
289 | ||
290 | $file_manipulations = []; |
|
291 | ||
292 | if (strtolower($new_fq_class_name) !== strtolower($old_declaring_fq_class_name)) { |
|
293 | $file_manipulations[] = new \Psalm\FileManipulation( |
|
294 | (int) $stmt->class->getAttribute('startFilePos'), |
|
295 | (int) $stmt->class->getAttribute('endFilePos') + 1, |
|
296 | Type::getStringFromFQCLN( |
|
297 | $new_fq_class_name, |
|
298 | $statements_analyzer->getNamespace(), |
|
299 | $statements_analyzer->getAliasedClassesFlipped(), |
|
300 | null |
|
301 | ) |
|
302 | ); |
|
303 | } |
|
304 | ||
305 | $file_manipulations[] = new \Psalm\FileManipulation( |
|
306 | (int) $stmt->name->getAttribute('startFilePos'), |
|
307 | (int) $stmt->name->getAttribute('endFilePos') + 1, |
|
308 | '$' . $new_property_name |
|
309 | ); |
|
310 | ||
311 | FileManipulationBuffer::add($statements_analyzer->getFilePath(), $file_manipulations); |
|
312 | } |
|
313 | } |
|
314 | } |
|
315 | } |
|
316 | ||
317 | $class_storage = $codebase->classlike_storage_provider->get($declaring_property_class); |
|
318 | $property = $class_storage->properties[$prop_name]; |
@@ 133-173 (lines=41) @@ | ||
130 | ||
131 | $declaring_property_id = strtolower((string) $declaring_property_class) . '::$' . $prop_name; |
|
132 | ||
133 | if ($codebase->alter_code && $stmt->class instanceof PhpParser\Node\Name) { |
|
134 | $moved_class = $codebase->classlikes->handleClassLikeReferenceInMigration( |
|
135 | $codebase, |
|
136 | $statements_analyzer, |
|
137 | $stmt->class, |
|
138 | $fq_class_name, |
|
139 | $context->calling_method_id |
|
140 | ); |
|
141 | ||
142 | if (!$moved_class) { |
|
143 | foreach ($codebase->property_transforms as $original_pattern => $transformation) { |
|
144 | if ($declaring_property_id === $original_pattern) { |
|
145 | list($old_declaring_fq_class_name) = explode('::$', $declaring_property_id); |
|
146 | list($new_fq_class_name, $new_property_name) = explode('::$', $transformation); |
|
147 | ||
148 | $file_manipulations = []; |
|
149 | ||
150 | if (strtolower($new_fq_class_name) !== strtolower($old_declaring_fq_class_name)) { |
|
151 | $file_manipulations[] = new \Psalm\FileManipulation( |
|
152 | (int) $stmt->class->getAttribute('startFilePos'), |
|
153 | (int) $stmt->class->getAttribute('endFilePos') + 1, |
|
154 | Type::getStringFromFQCLN( |
|
155 | $new_fq_class_name, |
|
156 | $statements_analyzer->getNamespace(), |
|
157 | $statements_analyzer->getAliasedClassesFlipped(), |
|
158 | null |
|
159 | ) |
|
160 | ); |
|
161 | } |
|
162 | ||
163 | $file_manipulations[] = new \Psalm\FileManipulation( |
|
164 | (int) $stmt->name->getAttribute('startFilePos'), |
|
165 | (int) $stmt->name->getAttribute('endFilePos') + 1, |
|
166 | '$' . $new_property_name |
|
167 | ); |
|
168 | ||
169 | FileManipulationBuffer::add($statements_analyzer->getFilePath(), $file_manipulations); |
|
170 | } |
|
171 | } |
|
172 | } |
|
173 | } |
|
174 | ||
175 | $class_storage = $codebase->classlike_storage_provider->get($declaring_property_class); |
|
176 |