@@ -23,20 +23,23 @@ class NameScope
23
23
/** @var array<string, true> */
24
24
private array $ typeAliasesMap ;
25
25
26
+ private bool $ bypassTypeAliases ;
27
+
26
28
/**
27
29
* @param string|null $namespace
28
30
* @param array<string, string> $uses alias(string) => fullName(string)
29
31
* @param string|null $className
30
32
* @param array<string, true> $typeAliasesMap
31
33
*/
32
- public function __construct (?string $ namespace , array $ uses , ?string $ className = null , ?string $ functionName = null , ?TemplateTypeMap $ templateTypeMap = null , array $ typeAliasesMap = [])
34
+ public function __construct (?string $ namespace , array $ uses , ?string $ className = null , ?string $ functionName = null , ?TemplateTypeMap $ templateTypeMap = null , array $ typeAliasesMap = [], bool $ bypassTypeAliases = false )
33
35
{
34
36
$ this ->namespace = $ namespace ;
35
37
$ this ->uses = $ uses ;
36
38
$ this ->className = $ className ;
37
39
$ this ->functionName = $ functionName ;
38
40
$ this ->templateTypeMap = $ templateTypeMap ?? TemplateTypeMap::createEmpty ();
39
41
$ this ->typeAliasesMap = $ typeAliasesMap ;
42
+ $ this ->bypassTypeAliases = $ bypassTypeAliases ;
40
43
}
41
44
42
45
public function getNamespace (): ?string
@@ -148,6 +151,16 @@ public function unsetTemplateType(string $name): self
148
151
);
149
152
}
150
153
154
+ public function bypassTypeAliases (): self
155
+ {
156
+ return new self ($ this ->namespace , $ this ->uses , $ this ->className , $ this ->functionName , $ this ->templateTypeMap , $ this ->typeAliasesMap , true );
157
+ }
158
+
159
+ public function shouldBypassTypeAliases (): bool
160
+ {
161
+ return $ this ->bypassTypeAliases ;
162
+ }
163
+
151
164
public function hasTypeAlias (string $ alias ): bool
152
165
{
153
166
return array_key_exists ($ alias , $ this ->typeAliasesMap );
0 commit comments