Skip to content

Commit 83b9abb

Browse files
authored
Fix scoping of namespaces which have a dash in their namespace for string literals (#211)
Closes #210
1 parent 91fae9c commit 83b9abb

File tree

3 files changed

+14
-14
lines changed

3 files changed

+14
-14
lines changed

specs/string-literal/array-var.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@
2424
<?php
2525
2626
$x = [
27-
'Symfony\\Component\\Yaml\\Yaml' => 'Symfony\\Component\\Yaml\\Yaml',
28-
'\\Symfony\\Component\\Yaml\\Yaml' => '\\Symfony\\Component\\Yaml\\Yaml',
29-
'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\Yaml',
30-
'\\Humbug\\Symfony\\Component\\Yaml\\Yaml' => '\\Humbug\\Symfony\\Component\\Yaml\\Yaml',
27+
'Symfony\\Component\\Yaml\\Yaml' => 'Symfony\\Component\\Yaml\\_Yaml',
28+
'\\Symfony\\Component\\Yaml\\Yaml' => '\\Symfony\\Component\\Yaml\\_Yaml',
29+
'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\_Yaml',
30+
'\\Humbug\\Symfony\\Component\\Yaml\\Yaml' => '\\Humbug\\Symfony\\Component\\Yaml\\_Yaml',
3131
];
3232
3333
----
3434
<?php
3535
3636
namespace Humbug;
3737
38-
$x = ['Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\Yaml', 'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\Yaml', 'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\Yaml', 'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\Yaml'];
38+
$x = ['Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\_Yaml', 'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\_Yaml', 'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\_Yaml', 'Humbug\\Symfony\\Component\\Yaml\\Yaml' => 'Humbug\\Symfony\\Component\\Yaml\\_Yaml'];
3939

4040
PHP
4141
,

specs/string-literal/class-const.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
<?php
2525
2626
class Foo {
27-
const X = 'Symfony\\Component\\Yaml\\Yaml';
28-
const X = '\\Symfony\\Component\\Yaml\\Yaml';
29-
const X = 'Humbug\\Symfony\\Component\\Yaml\\Yaml';
30-
const X = '\\Humbug\\Symfony\\Component\\Yaml\\Yaml';
27+
const X = 'Symfony\\Component\\Yaml\\Ya_ml';
28+
const X = '\\Symfony\\Component\\Yaml\\Ya_ml';
29+
const X = 'Humbug\\Symfony\\Component\\Yaml\\Ya_ml';
30+
const X = '\\Humbug\\Symfony\\Component\\Yaml\\Ya_ml';
3131
3232
const X = 'HelloWorld';
3333
}
@@ -39,10 +39,10 @@ class Foo {
3939
4040
class Foo
4141
{
42-
const X = 'Humbug\\Symfony\\Component\\Yaml\\Yaml';
43-
const X = 'Humbug\\Symfony\\Component\\Yaml\\Yaml';
44-
const X = 'Humbug\\Symfony\\Component\\Yaml\\Yaml';
45-
const X = 'Humbug\\Symfony\\Component\\Yaml\\Yaml';
42+
const X = 'Humbug\\Symfony\\Component\\Yaml\\Ya_ml';
43+
const X = 'Humbug\\Symfony\\Component\\Yaml\\Ya_ml';
44+
const X = 'Humbug\\Symfony\\Component\\Yaml\\Ya_ml';
45+
const X = 'Humbug\\Symfony\\Component\\Yaml\\Ya_ml';
4646
const X = 'HelloWorld';
4747
}
4848

src/PhpParser/NodeVisitor/StringScalarPrefixer.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public function enterNode(Node $node): Node
7272
private function shouldPrefixScalar(Node $node): bool
7373
{
7474
if (false === ($node instanceof String_ && AppendParentNode::hasParent($node) && is_string($node->value))
75-
|| 1 !== preg_match('/^\\\\*(?:\p{L}+\\\\+)++\p{L}+$/u', $node->value)
75+
|| 1 !== preg_match('/^\\\\*(?:[\p{L}_]+\\\\+)++[\p{L}_]+$/u', $node->value)
7676
) {
7777
return false;
7878
}

0 commit comments

Comments
 (0)