Skip to content

Commit c26f732

Browse files
authored
Merge pull request microsoft#172 from dantleech/class_like
Introduced ClassLike Interface
2 parents 3aaff2f + 1c9bff6 commit c26f732

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

src/ClassLike.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
/*---------------------------------------------------------------------------------------------
3+
* Copyright (c) Microsoft Corporation. All rights reserved.
4+
* Licensed under the MIT License. See License.txt in the project root for license information.
5+
*--------------------------------------------------------------------------------------------*/
6+
7+
namespace Microsoft\PhpParser;
8+
9+
/**
10+
* Represents Classes, Interfaces and Traits.
11+
*/
12+
interface ClassLike {}

src/Node/Statement/ClassDeclaration.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
namespace Microsoft\PhpParser\Node\Statement;
88

9+
use Microsoft\PhpParser\ClassLike;
910
use Microsoft\PhpParser\NamespacedNameInterface;
1011
use Microsoft\PhpParser\NamespacedNameTrait;
1112
use Microsoft\PhpParser\Node\ClassBaseClause;
@@ -14,7 +15,7 @@
1415
use Microsoft\PhpParser\Node\StatementNode;
1516
use Microsoft\PhpParser\Token;
1617

17-
class ClassDeclaration extends StatementNode implements NamespacedNameInterface {
18+
class ClassDeclaration extends StatementNode implements NamespacedNameInterface, ClassLike {
1819
use NamespacedNameTrait;
1920

2021
/** @var Token */

src/Node/Statement/InterfaceDeclaration.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66

77
namespace Microsoft\PhpParser\Node\Statement;
88

9+
use Microsoft\PhpParser\ClassLike;
910
use Microsoft\PhpParser\NamespacedNameInterface;
1011
use Microsoft\PhpParser\NamespacedNameTrait;
1112
use Microsoft\PhpParser\Node\InterfaceBaseClause;
1213
use Microsoft\PhpParser\Node\InterfaceMembers;
1314
use Microsoft\PhpParser\Node\StatementNode;
1415
use Microsoft\PhpParser\Token;
1516

16-
class InterfaceDeclaration extends StatementNode implements NamespacedNameInterface {
17+
class InterfaceDeclaration extends StatementNode implements NamespacedNameInterface, ClassLike {
1718
use NamespacedNameTrait;
1819

1920
/** @var Token */

src/Node/Statement/TraitDeclaration.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66

77
namespace Microsoft\PhpParser\Node\Statement;
88

9+
use Microsoft\PhpParser\ClassLike;
910
use Microsoft\PhpParser\NamespacedNameInterface;
1011
use Microsoft\PhpParser\NamespacedNameTrait;
1112
use Microsoft\PhpParser\Node\StatementNode;
1213
use Microsoft\PhpParser\Node\TraitMembers;
1314
use Microsoft\PhpParser\Token;
1415

15-
class TraitDeclaration extends StatementNode implements NamespacedNameInterface {
16+
class TraitDeclaration extends StatementNode implements NamespacedNameInterface, ClassLike {
1617
use NamespacedNameTrait;
1718

1819
/** @var Token */

0 commit comments

Comments
 (0)