This repository was archived by the owner on Aug 1, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +15
-9
lines changed
Expand file tree Collapse file tree 2 files changed +15
-9
lines changed Original file line number Diff line number Diff line change 99
1010namespace Facebook\HackRouter ;
1111
12+ use namespace HH\Lib\C ;
1213use type Facebook\HackCodegen\{
1314 CodegenClass ,
1415 CodegenShapeMember ,
@@ -43,21 +44,26 @@ final class RequestParametersCodegenBuilder<T as RequestParametersBase>
4344 protected function getCodegenClass (self ::TSpec $spec ): CodegenClass {
4445 $param_builder = $this -> parameterBuilder ;
4546 $controller = $spec [' controller' ];
47+ $getParameters = $this -> getParameters ;
48+ $parameters = $getParameters ($controller );
49+
50+ $body = $this -> cg -> codegenHackBuilder();
4651
47- $body = $this -> cg
48- -> codegenHackBuilder()
49- -> addAssignment(
52+ if ( ! C \ is_empty ( $parameters )) {
53+ // avoid generating an assignment to an unused variable
54+ $body -> addAssignment(
5055 ' $p' ,
5156 ' $this->getParameters()' ,
5257 HackBuilderValues :: literal(),
53- )
58+ );
59+ }
60+
61+ $body
5462 -> addLine(' return shape(' )
5563 -> indent();
5664
57- $getParameters = $this -> getParameters ;
5865 $param_shape = vec [];
59-
60- foreach ($getParameters ($controller ) as $parameter ) {
66+ foreach ($parameters as $parameter ) {
6167 $param_spec = $parameter [' spec' ];
6268 $request_spec = $param_builder :: getRequestSpec($param_spec );
6369 $getter_spec = $request_spec :: getGetterSpec($param_spec );
Original file line number Diff line number Diff line change @@ -33,7 +33,7 @@ final class UriMapBuilderTest extends \Facebook\HackTest\HackTest {
3333 $scanned = await FileParser :: fromFileAsync(
3434 __DIR__ . ' /examples/GetRequestExampleController.hack' ,
3535 );
36- $class = $ scanned-> getClass(GetRequestExampleController :: class );
36+ $scanned -> getClass(GetRequestExampleController :: class );
3737 $builder = $this -> getBuilder($scanned );
3838
3939 expect ($builder -> getUriMap()[HttpMethod :: GET ]-> values())-> toBePHPEqual(
@@ -45,7 +45,7 @@ final class UriMapBuilderTest extends \Facebook\HackTest\HackTest {
4545 $scanned = await FileParser :: fromFileAsync(
4646 __DIR__ . ' /examples/GetRequestExampleController.hack' ,
4747 );
48- $class = $ scanned-> getClass(GetRequestExampleController :: class );
48+ $scanned -> getClass(GetRequestExampleController :: class );
4949 $builder = $this -> getBuilder($scanned );
5050 $map = $builder -> getUriMap();
5151 expect ($map -> containsKey(HttpMethod :: POST ))-> toBeFalse(
You can’t perform that action at this time.
0 commit comments