Skip to content

Commit 623e201

Browse files
author
Joan He
committed
MAGETWO-41996: [GitHub] DI compilation fails on class keyword #1722
1 parent 18b6326 commit 623e201

File tree

5 files changed

+31
-6
lines changed

5 files changed

+31
-6
lines changed

dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/namespace.txt

+1
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,4 @@ setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/M
9898
setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Helper/Test.php
9999
setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Element.php
100100
setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/ElementFactory.php
101+
setup/src/Magento/Setup/Test/Unit/Module/Di/_files/app/code/Magento/SomeModule/Model/DoubleColon.php

dev/tests/static/testsuite/Magento/Test/Integrity/_files/blacklist/reference.txt

+2-1
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,5 @@ Model3
7070
\Magento\Mtf\Client\Element
7171
\Magento\Mtf\TestSuite\AppState
7272
\Magento\Framework\A
73-
\Magento\Framework\B
73+
\Magento\Framework\B
74+
DoubleColon

setup/src/Magento/Setup/Module/Di/Code/Scanner/PhpScanner.php

+4-4
Original file line numberDiff line numberDiff line change
@@ -227,17 +227,17 @@ protected function _fetchClasses($namespace, $tokenIterator, $count, $tokens)
227227
protected function _getDeclaredClasses($file)
228228
{
229229
$classes = [];
230-
$namespace = "";
230+
$namespace = '';
231231
$tokens = token_get_all(file_get_contents($file));
232232
$count = count($tokens);
233233

234234
for ($tokenIterator = 0; $tokenIterator < $count; $tokenIterator++) {
235-
if ($tokens[$tokenIterator][0] === T_NAMESPACE) {
235+
if ($tokens[$tokenIterator][0] == T_NAMESPACE) {
236236
$namespace .= $this->_fetchNamespace($tokenIterator, $count, $tokens);
237237
}
238238

239-
if ($tokens[$tokenIterator][0] === T_CLASS
240-
|| $tokens[$tokenIterator][0] === T_INTERFACE
239+
if (($tokens[$tokenIterator][0] == T_CLASS || $tokens[$tokenIterator][0] == T_INTERFACE)
240+
&& $tokens[$tokenIterator - 1][0] != T_DOUBLE_COLON
241241
) {
242242
$classes = array_merge($classes, $this->_fetchClasses($namespace, $tokenIterator, $count, $tokens));
243243
}

setup/src/Magento/Setup/Test/Unit/Module/Di/Code/Scanner/PhpScannerTest.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77

88
require_once __DIR__ . '/../../_files/app/code/Magento/SomeModule/Helper/Test.php';
99
require_once __DIR__ . '/../../_files/app/code/Magento/SomeModule/ElementFactory.php';
10+
require_once __DIR__ . '/../../_files/app/code/Magento/SomeModule/Model/DoubleColon.php';
11+
1012
class PhpScannerTest extends \PHPUnit_Framework_TestCase
1113
{
1214
/**
@@ -35,7 +37,10 @@ protected function setUp()
3537
$this->_logMock = $this->getMock('\Magento\Setup\Module\Di\Compiler\Log\Log', [], [], '', false)
3638
);
3739
$this->_testDir = str_replace('\\', '/', realpath(__DIR__ . '/../../') . '/_files');
38-
$this->_testFiles = [$this->_testDir . '/app/code/Magento/SomeModule/Helper/Test.php'];
40+
$this->_testFiles = [
41+
$this->_testDir . '/app/code/Magento/SomeModule/Helper/Test.php',
42+
$this->_testDir . '/app/code/Magento/SomeModule/Model/DoubleColon.php'
43+
];
3944
}
4045

4146
public function testCollectEntities()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\SomeModule\Model;
7+
8+
class DoubleColon
9+
{
10+
public function __construct()
11+
{
12+
DoubleColon::class;
13+
}
14+
15+
public function method()
16+
{
17+
}
18+
}

0 commit comments

Comments
 (0)