You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by "Junichi Yamamoto (Jira)" <ji...@apache.org> on 2021/11/11 03:46:00 UTC
[jira] [Created] (NETBEANS-6193) Can't use attributes with
interface constants and methods
Junichi Yamamoto created NETBEANS-6193:
------------------------------------------
Summary: Can't use attributes with interface constants and methods
Key: NETBEANS-6193
URL: https://issues.apache.org/jira/browse/NETBEANS-6193
Project: NetBeans
Issue Type: Bug
Components: php - Editor
Affects Versions: 12.5
Reporter: Junichi Yamamoto
Assignee: Junichi Yamamoto
The following code is valid. However, if we use attributes with interface constants and methods, syntax errors occur.
Example code:
{code:php}
<?php
#[I1]
interface I {
#[I2(1)] // syntax error occurs
public const I_CONST = "interface";
#[I3] // syntax error occurs
public function method(#[I4] $param1, #[I5(), I6("test")] $param): void; // syntax error occurs
}
$refI = new \ReflectionClass(I::class);
$sourcesI = [
$refI,
$refI->getReflectionConstant('I_CONST'),
$refI->getMethod('method'),
$refI->getMethod('method')->getParameters()[0],
$refI->getMethod('method')->getParameters()[1],
];
foreach ($sourcesI as $r) {
$attr = $r->getAttributes();
var_dump(get_class($r), count($attr));
foreach ($attr as $a) {
var_dump($a->getName(), $a->getArguments());
}
echo "\n";
}{code}
Result:
string(15) "ReflectionClass"
int(1)
string(2) "I1"
array(0) {
}
string(23) "ReflectionClassConstant"
int(1)
string(2) "I2"
array(1) {
[0]=>
int(1)
}
string(16) "ReflectionMethod"
int(1)
string(2) "I3"
array(0) {
}
string(19) "ReflectionParameter"
int(1)
string(2) "I4"
array(0) {
}
string(19) "ReflectionParameter"
int(2)
string(2) "I5"
array(0) {
}
string(2) "I6"
array(1) {
[0]=>
string(4) "test"
}
Steps to reproduce:
# Create a PHP project
# Create a new file
# Copy and paste the above example code
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists