1010
1111namespace Facebook\HackRouter ;
1212
13+ use namespace HH\Lib\{C , Vec} ;
14+
1315abstract class UriBuilderBase {
14- protected ImmVector < UriPatternPart > $parts ;
15- protected ImmMap < string , RequestParameter > $parameters ;
16- private Map < string , string > $values = Map {} ;
16+ protected vec < UriPatternPart > $parts ;
17+ protected dict < string , RequestParameter > $parameters ;
18+ private dict < string , string > $values = dict [] ;
1719
1820 public function __construct (Traversable <UriPatternPart > $parts ) {
19- $this -> parts = new ImmVector ($parts );
20- $parameters = Map {} ;
21+ $this -> parts = vec ($parts );
22+ $parameters = dict [] ;
2123 foreach ($parts as $part ) {
2224 if (! $part is RequestParameter ) {
2325 continue ;
2426 }
2527 $parameters [$part -> getName()] = $part ;
2628 }
27- $this -> parameters = $parameters -> immutable() ;
29+ $this -> parameters = $parameters ;
2830 }
2931
3032 final protected function getPathImpl (): string {
@@ -47,11 +49,11 @@ final protected function getPathImpl(): string {
4749
4850 $name = $part -> getName();
4951 invariant (
50- $this -> values -> containsKey( $name ),
52+ C \ contains_key ( $this -> values , $name ),
5153 ' Parameter "%s" must be set' ,
5254 $name ,
5355 );
54- $uri .= $this -> values -> at( $name ) ;
56+ $uri .= $this -> values [ $name ] ;
5557 }
5658 invariant (
5759 \substr ($uri , 0 , 1 ) === ' /' ,
@@ -71,7 +73,10 @@ classname<TypedUriParameter<T>> $parameter_type,
7173 $part !== null ,
7274 ' %s is not a valid parameter - expected one of [%s]' ,
7375 $name ,
74- \implode (' , ' , $this -> parameters -> keys()-> map($x ==> " '" . $x . " '" )),
76+ \implode (
77+ ' , ' ,
78+ Vec \map_with_key ($this -> parameters , ($key , $_ ) ==> " '" . $key . " '" ),
79+ ),
7580 );
7681 invariant (
7782 \is_a ($part , $parameter_type ),
@@ -81,7 +86,7 @@ classname<TypedUriParameter<T>> $parameter_type,
8186 \get_class ($part ),
8287 );
8388 invariant (
84- ! $this -> values -> containsKey( $name ),
89+ ! C \ contains_key ( $this -> values , $name ),
8590 ' trying to set %s twice' ,
8691 $name ,
8792 );
0 commit comments