@@ -97,14 +97,13 @@ impl<'db> UnionBuilder<'db> {
97
97
// means we shouldn't add it. Otherwise, add a new `UnionElement::StringLiterals`
98
98
// containing it.
99
99
Type :: StringLiteral ( literal) => {
100
- let mut too_large = false ;
101
100
let mut found = false ;
102
101
for element in & mut self . elements {
103
102
match element {
104
103
UnionElement :: StringLiterals ( literals) => {
105
104
if literals. len ( ) >= MAX_UNION_LITERALS {
106
- too_large = true ;
107
- break ;
105
+ let replace_with = KnownClass :: Str . to_instance ( self . db ) ;
106
+ return self . add ( replace_with ) ;
108
107
}
109
108
literals. insert ( literal) ;
110
109
found = true ;
@@ -116,10 +115,6 @@ impl<'db> UnionBuilder<'db> {
116
115
_ => { }
117
116
}
118
117
}
119
- if too_large {
120
- let replace_with = KnownClass :: Str . to_instance ( self . db ) ;
121
- return self . add ( replace_with) ;
122
- }
123
118
if !found {
124
119
self . elements
125
120
. push ( UnionElement :: StringLiterals ( FxOrderSet :: from_iter ( [
@@ -130,13 +125,12 @@ impl<'db> UnionBuilder<'db> {
130
125
// Same for bytes literals as for string literals, above.
131
126
Type :: BytesLiteral ( literal) => {
132
127
let mut found = false ;
133
- let mut too_large = false ;
134
128
for element in & mut self . elements {
135
129
match element {
136
130
UnionElement :: BytesLiterals ( literals) => {
137
131
if literals. len ( ) >= MAX_UNION_LITERALS {
138
- too_large = true ;
139
- break ;
132
+ let replace_with = KnownClass :: Bytes . to_instance ( self . db ) ;
133
+ return self . add ( replace_with ) ;
140
134
}
141
135
literals. insert ( literal) ;
142
136
found = true ;
@@ -148,10 +142,6 @@ impl<'db> UnionBuilder<'db> {
148
142
_ => { }
149
143
}
150
144
}
151
- if too_large {
152
- let replace_with = KnownClass :: Bytes . to_instance ( self . db ) ;
153
- return self . add ( replace_with) ;
154
- }
155
145
if !found {
156
146
self . elements
157
147
. push ( UnionElement :: BytesLiterals ( FxOrderSet :: from_iter ( [
@@ -162,13 +152,12 @@ impl<'db> UnionBuilder<'db> {
162
152
// And same for int literals as well.
163
153
Type :: IntLiteral ( literal) => {
164
154
let mut found = false ;
165
- let mut too_large = false ;
166
155
for element in & mut self . elements {
167
156
match element {
168
157
UnionElement :: IntLiterals ( literals) => {
169
158
if literals. len ( ) >= MAX_UNION_LITERALS {
170
- too_large = true ;
171
- break ;
159
+ let replace_with = KnownClass :: Int . to_instance ( self . db ) ;
160
+ return self . add ( replace_with ) ;
172
161
}
173
162
literals. insert ( literal) ;
174
163
found = true ;
@@ -180,10 +169,6 @@ impl<'db> UnionBuilder<'db> {
180
169
_ => { }
181
170
}
182
171
}
183
- if too_large {
184
- let replace_with = KnownClass :: Int . to_instance ( self . db ) ;
185
- return self . add ( replace_with) ;
186
- }
187
172
if !found {
188
173
self . elements
189
174
. push ( UnionElement :: IntLiterals ( FxOrderSet :: from_iter ( [ literal] ) ) ) ;
0 commit comments