I believe we generally agreed that it is nonsense to use an apply parameter (i.e. one given to a control block on application) in the initialization of that control block, which should happen before the application. Like so:
control ingress(inout Headers h) {
Headers h1 = h; // Happens before h is passed in?
...
}
Let's disallow it in the spec? Notably, it is important that it can still be used in actions e.g. (which I guess wouldn't get instantiated until they're applied with some parameter?) so the language may be a bit subtle.
@ChrisDodd, @KunJeong, @jaehyun1ee, @rcgoodfellow, and @ajwalton for visibility.
I believe we generally agreed that it is nonsense to use an apply parameter (i.e. one given to a control block on application) in the initialization of that control block, which should happen before the application. Like so:
Let's disallow it in the spec? Notably, it is important that it can still be used in actions e.g. (which I guess wouldn't get instantiated until they're applied with some parameter?) so the language may be a bit subtle.
@ChrisDodd, @KunJeong, @jaehyun1ee, @rcgoodfellow, and @ajwalton for visibility.