1Property hooks
2-----
3<?php
4class Test {
5    public int $prop {
6        get {
7            return $this->prop + 1;
8        }
9        set {
10            $this->prop = $value - 1;
11        }
12    }
13    public $prop = 1 {
14        #[Attr]
15        &get => $this->prop;
16        final set($value) => $value - 1;
17    }
18    abstract public $prop {
19        get;
20        set;
21    }
22
23    // TODO: Force multiline for hooks?
24    public function __construct(
25        public $foo {
26            get => 42;
27            set => 123;
28        },
29        public $bar
30    ) {}
31}
32-----
33class Test
34{
35    public int $prop {
36        get {
37            return $this->prop + 1;
38        }
39        set {
40            $this->prop = $value - 1;
41        }
42    }
43    public $prop = 1 {
44        #[Attr]
45        &get => $this->prop;
46        final set($value) => $value - 1;
47    }
48    abstract public $prop {
49        get;
50        set;
51    }
52    // TODO: Force multiline for hooks?
53    public function __construct(public $foo {
54        get => 42;
55        set => 123;
56    }, public $bar)
57    {
58    }
59}
60