Add Composer autoloading functions and PHPStan for testing

This commit is contained in:
Alex Cabal 2019-02-26 13:03:45 -06:00
parent e198c4db65
commit f5d7d4e02a
1518 changed files with 169063 additions and 30 deletions

View file

@ -0,0 +1,87 @@
Scalar type declarations
-----
<?php
function test(bool $a, Int $b, FLOAT $c, StRiNg $d, iterable $e, object $f) : void {}
-----
!!php7
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
type: Identifier(
name: bool
)
byRef: false
variadic: false
var: Expr_Variable(
name: a
)
default: null
)
1: Param(
type: Identifier(
name: int
)
byRef: false
variadic: false
var: Expr_Variable(
name: b
)
default: null
)
2: Param(
type: Identifier(
name: float
)
byRef: false
variadic: false
var: Expr_Variable(
name: c
)
default: null
)
3: Param(
type: Identifier(
name: string
)
byRef: false
variadic: false
var: Expr_Variable(
name: d
)
default: null
)
4: Param(
type: Identifier(
name: iterable
)
byRef: false
variadic: false
var: Expr_Variable(
name: e
)
default: null
)
5: Param(
type: Identifier(
name: object
)
byRef: false
variadic: false
var: Expr_Variable(
name: f
)
default: null
)
)
returnType: Identifier(
name: void
)
stmts: array(
)
)
)

View file

@ -0,0 +1,49 @@
Return and pass by ref
-----
<?php
function a(&$b) {}
function &a($b) {}
-----
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: a
)
params: array(
0: Param(
type: null
byRef: true
variadic: false
var: Expr_Variable(
name: b
)
default: null
)
)
returnType: null
stmts: array(
)
)
1: Stmt_Function(
byRef: true
name: Identifier(
name: a
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: b
)
default: null
)
)
returnType: null
stmts: array(
)
)
)

View file

@ -0,0 +1,35 @@
Conditional function definition
-----
<?php
if (true) {
function A() {}
}
-----
array(
0: Stmt_If(
cond: Expr_ConstFetch(
name: Name(
parts: array(
0: true
)
)
)
stmts: array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: A
)
params: array(
)
returnType: null
stmts: array(
)
)
)
elseifs: array(
)
else: null
)
)

View file

@ -0,0 +1,170 @@
Default values (static scalar tests)
-----
<?php
function a(
$b = null,
$c = 'foo',
$d = A::B,
$f = +1,
$g = -1.0,
$h = array(),
$i = [],
$j = ['foo'],
$k = ['foo', 'bar' => 'baz']
) {}
-----
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: a
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: b
)
default: Expr_ConstFetch(
name: Name(
parts: array(
0: null
)
)
)
)
1: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: c
)
default: Scalar_String(
value: foo
)
)
2: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: d
)
default: Expr_ClassConstFetch(
class: Name(
parts: array(
0: A
)
)
name: Identifier(
name: B
)
)
)
3: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: f
)
default: Expr_UnaryPlus(
expr: Scalar_LNumber(
value: 1
)
)
)
4: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: g
)
default: Expr_UnaryMinus(
expr: Scalar_DNumber(
value: 1
)
)
)
5: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: h
)
default: Expr_Array(
items: array(
)
)
)
6: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: i
)
default: Expr_Array(
items: array(
)
)
)
7: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: j
)
default: Expr_Array(
items: array(
0: Expr_ArrayItem(
key: null
value: Scalar_String(
value: foo
)
byRef: false
)
)
)
)
8: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: k
)
default: Expr_Array(
items: array(
0: Expr_ArrayItem(
key: null
value: Scalar_String(
value: foo
)
byRef: false
)
1: Expr_ArrayItem(
key: Scalar_String(
value: bar
)
value: Scalar_String(
value: baz
)
byRef: false
)
)
)
)
)
returnType: null
stmts: array(
)
)
)

View file

@ -0,0 +1,55 @@
Nullable types
-----
<?php
function test(?Foo $bar, ?string $foo) : ?Baz {
}
-----
!!php7
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
type: NullableType(
type: Name(
parts: array(
0: Foo
)
)
)
byRef: false
variadic: false
var: Expr_Variable(
name: bar
)
default: null
)
1: Param(
type: NullableType(
type: Identifier(
name: string
)
)
byRef: false
variadic: false
var: Expr_Variable(
name: foo
)
default: null
)
)
returnType: NullableType(
type: Name(
parts: array(
0: Baz
)
)
)
stmts: array(
)
)
)

View file

@ -0,0 +1,64 @@
Return type declarations
-----
<?php
function test1() {}
function test2() : array {}
function test3() : callable {}
function test4() : Foo\Bar {}
-----
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: test1
)
params: array(
)
returnType: null
stmts: array(
)
)
1: Stmt_Function(
byRef: false
name: Identifier(
name: test2
)
params: array(
)
returnType: Identifier(
name: array
)
stmts: array(
)
)
2: Stmt_Function(
byRef: false
name: Identifier(
name: test3
)
params: array(
)
returnType: Identifier(
name: callable
)
stmts: array(
)
)
3: Stmt_Function(
byRef: false
name: Identifier(
name: test4
)
params: array(
)
returnType: Name(
parts: array(
0: Foo
1: Bar
)
)
stmts: array(
)
)
)

View file

@ -0,0 +1,57 @@
Special function variables
-----
<?php
function a() {
global $a, ${'b'}, $$c;
static $c, $d = 'e';
}
-----
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: a
)
params: array(
)
returnType: null
stmts: array(
0: Stmt_Global(
vars: array(
0: Expr_Variable(
name: a
)
1: Expr_Variable(
name: Scalar_String(
value: b
)
)
2: Expr_Variable(
name: Expr_Variable(
name: c
)
)
)
)
1: Stmt_Static(
vars: array(
0: Stmt_StaticVar(
var: Expr_Variable(
name: c
)
default: null
)
1: Stmt_StaticVar(
var: Expr_Variable(
name: d
)
default: Scalar_String(
value: e
)
)
)
)
)
)
)

View file

@ -0,0 +1,63 @@
Type hints
-----
<?php
function a($b, array $c, callable $d, E $f) {}
-----
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: a
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: b
)
default: null
)
1: Param(
type: Identifier(
name: array
)
byRef: false
variadic: false
var: Expr_Variable(
name: c
)
default: null
)
2: Param(
type: Identifier(
name: callable
)
byRef: false
variadic: false
var: Expr_Variable(
name: d
)
default: null
)
3: Param(
type: Name(
parts: array(
0: E
)
)
byRef: false
variadic: false
var: Expr_Variable(
name: f
)
default: null
)
)
returnType: null
stmts: array(
)
)
)

View file

@ -0,0 +1,134 @@
Variadic functions
-----
<?php
function test($a, ... $b) {}
function test($a, &... $b) {}
function test($a, Type ... $b) {}
function test($a, Type &... $b) {}
-----
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: a
)
default: null
)
1: Param(
type: null
byRef: false
variadic: true
var: Expr_Variable(
name: b
)
default: null
)
)
returnType: null
stmts: array(
)
)
1: Stmt_Function(
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: a
)
default: null
)
1: Param(
type: null
byRef: true
variadic: true
var: Expr_Variable(
name: b
)
default: null
)
)
returnType: null
stmts: array(
)
)
2: Stmt_Function(
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: a
)
default: null
)
1: Param(
type: Name(
parts: array(
0: Type
)
)
byRef: false
variadic: true
var: Expr_Variable(
name: b
)
default: null
)
)
returnType: null
stmts: array(
)
)
3: Stmt_Function(
byRef: false
name: Identifier(
name: test
)
params: array(
0: Param(
type: null
byRef: false
variadic: false
var: Expr_Variable(
name: a
)
default: null
)
1: Param(
type: Name(
parts: array(
0: Type
)
)
byRef: true
variadic: true
var: Expr_Variable(
name: b
)
default: null
)
)
returnType: null
stmts: array(
)
)
)

View file

@ -0,0 +1,31 @@
Invalid variadic function
-----
<?php
function foo(...$foo = []) {}
-----
Variadic parameter cannot have a default value from 2:24 to 2:25
array(
0: Stmt_Function(
byRef: false
name: Identifier(
name: foo
)
params: array(
0: Param(
type: null
byRef: false
variadic: true
var: Expr_Variable(
name: foo
)
default: Expr_Array(
items: array(
)
)
)
)
returnType: null
stmts: array(
)
)
)