Skip to content

Commit 0588a47

Browse files
committed
MC-35405: SVC false-positive: overriding public method in child class
1 parent 997cffe commit 0588a47

File tree

11 files changed

+1000
-608
lines changed

11 files changed

+1000
-608
lines changed

tests/Unit/Console/Command/CompareSourceCommandApiClassesTest.php

Lines changed: 460 additions & 442 deletions
Large diffs are not rendered by default.

tests/Unit/Console/Command/CompareSourceCommandNonApiClassesTest.php

Lines changed: 193 additions & 166 deletions
Large diffs are not rendered by default.

tests/Unit/Console/Command/CompareSourceCommandTest/_files/api-class/added-method-subclass-overwrite-transition/source-code-after/ApiClass.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@ public function testFunction(): string
1616
return 'ApiClass';
1717
}
1818

19+
protected function testFunctionProtected(): string
20+
{
21+
return 'ApiClass';
22+
}
23+
1924
public function __construct()
2025
{
2126
parent::__construct();

tests/Unit/Console/Command/CompareSourceCommandTest/_files/api-class/added-method-subclass-overwrite-transition/source-code-after/BaseApiClass.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ public function testFunction(): string
1212
return 'baseApiClass';
1313
}
1414

15+
protected function testFunctionProtected(): string
16+
{
17+
return 'baseApiClass';
18+
}
19+
1520
public function __construct()
1621
{
1722

tests/Unit/Console/Command/CompareSourceCommandTest/_files/api-class/added-method-subclass-overwrite-transition/source-code-before/BaseApiClass.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ public function testFunction(): string
1212
return 'baseApiClass';
1313
}
1414

15+
protected function testFunctionProtected(): string
16+
{
17+
return 'baseApiClass';
18+
}
19+
1520
public function __construct()
1621
{
1722

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
<?php
2+
/**
3+
*
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
namespace Test\Vcs;
8+
9+
class ClassA extends ClassB
10+
{
11+
public function testFunction(): string
12+
{
13+
return 'ClassA';
14+
}
15+
16+
protected function testFunctionProtected(): string
17+
{
18+
return 'ClassA';
19+
}
20+
21+
public function __construct()
22+
{
23+
parent::__construct();
24+
}
25+
26+
public function __destruct()
27+
{
28+
29+
}
30+
31+
public function __call(string $name, array $arguments)
32+
{
33+
34+
}
35+
36+
public static function __callStatic(string $name, array $arguments)
37+
{
38+
39+
}
40+
41+
public function __get(string $name)
42+
{
43+
return null;
44+
}
45+
46+
public function __set(string $name, $value) : void
47+
{
48+
49+
}
50+
51+
public function __isset(string $name ) : bool
52+
{
53+
return false;
54+
}
55+
56+
public function __unset(string $name ) : void
57+
{
58+
59+
}
60+
61+
public function __sleep() : array
62+
{
63+
return [];
64+
}
65+
66+
public function __wakeup() : void
67+
{
68+
69+
}
70+
71+
public function __serialize() : array
72+
{
73+
return [];
74+
}
75+
76+
public function __unserialize(array $data ) : void
77+
{
78+
79+
}
80+
81+
public function __toString() : string
82+
{
83+
return '';
84+
}
85+
86+
public function __invoke( ...$values)
87+
{
88+
89+
}
90+
91+
public function __set_state(array $properties ) : object
92+
{
93+
return new \stdClass();
94+
}
95+
96+
public function __clone()
97+
{
98+
return;
99+
}
100+
101+
public function __debugInfo() : array
102+
{
103+
return [];
104+
}
105+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Test\Vcs;
4+
5+
class ClassB extends ClassC
6+
{
7+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
<?php
2+
3+
namespace Test\Vcs;
4+
5+
class ClassC
6+
{
7+
public function testFunction(): string
8+
{
9+
return 'ClassC';
10+
}
11+
12+
protected function testFunctionProtected(): string
13+
{
14+
return 'ClassC';
15+
}
16+
17+
public function __construct()
18+
{
19+
20+
}
21+
22+
public function __destruct()
23+
{
24+
25+
}
26+
27+
public function __call(string $name, array $arguments)
28+
{
29+
30+
}
31+
32+
public static function __callStatic(string $name, array $arguments)
33+
{
34+
35+
}
36+
37+
public function __get(string $name)
38+
{
39+
return null;
40+
}
41+
42+
public function __set(string $name, $value) : void
43+
{
44+
45+
}
46+
47+
public function __isset(string $name ) : bool
48+
{
49+
return false;
50+
}
51+
52+
public function __unset(string $name ) : void
53+
{
54+
55+
}
56+
57+
public function __sleep() : array
58+
{
59+
return [];
60+
}
61+
62+
public function __wakeup() : void
63+
{
64+
65+
}
66+
67+
public function __serialize() : array
68+
{
69+
return [];
70+
}
71+
72+
public function __unserialize(array $data ) : void
73+
{
74+
75+
}
76+
77+
public function __toString() : string
78+
{
79+
return '';
80+
}
81+
82+
public function __invoke( ...$values)
83+
{
84+
85+
}
86+
87+
public function __set_state(array $properties ) : object
88+
{
89+
return new \stdClass();
90+
}
91+
92+
public function __clone()
93+
{
94+
return;
95+
}
96+
97+
public function __debugInfo() : array
98+
{
99+
return [];
100+
}
101+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
/**
3+
*
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
namespace Test\Vcs;
8+
9+
class ClassA extends ClassB
10+
{
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace Test\Vcs;
4+
5+
class ClassB extends ClassC
6+
{
7+
}

0 commit comments

Comments
 (0)