@@ -97,14 +97,13 @@ impl<'db> UnionBuilder<'db> {
9797 // means we shouldn't add it. Otherwise, add a new `UnionElement::StringLiterals`
9898 // containing it.
9999 Type :: StringLiteral ( literal) => {
100- let mut too_large = false ;
101100 let mut found = false ;
102101 for element in & mut self . elements {
103102 match element {
104103 UnionElement :: StringLiterals ( literals) => {
105104 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 ) ;
108107 }
109108 literals. insert ( literal) ;
110109 found = true ;
@@ -116,10 +115,6 @@ impl<'db> UnionBuilder<'db> {
116115 _ => { }
117116 }
118117 }
119- if too_large {
120- let replace_with = KnownClass :: Str . to_instance ( self . db ) ;
121- return self . add ( replace_with) ;
122- }
123118 if !found {
124119 self . elements
125120 . push ( UnionElement :: StringLiterals ( FxOrderSet :: from_iter ( [
@@ -130,13 +125,12 @@ impl<'db> UnionBuilder<'db> {
130125 // Same for bytes literals as for string literals, above.
131126 Type :: BytesLiteral ( literal) => {
132127 let mut found = false ;
133- let mut too_large = false ;
134128 for element in & mut self . elements {
135129 match element {
136130 UnionElement :: BytesLiterals ( literals) => {
137131 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 ) ;
140134 }
141135 literals. insert ( literal) ;
142136 found = true ;
@@ -148,10 +142,6 @@ impl<'db> UnionBuilder<'db> {
148142 _ => { }
149143 }
150144 }
151- if too_large {
152- let replace_with = KnownClass :: Bytes . to_instance ( self . db ) ;
153- return self . add ( replace_with) ;
154- }
155145 if !found {
156146 self . elements
157147 . push ( UnionElement :: BytesLiterals ( FxOrderSet :: from_iter ( [
@@ -162,13 +152,12 @@ impl<'db> UnionBuilder<'db> {
162152 // And same for int literals as well.
163153 Type :: IntLiteral ( literal) => {
164154 let mut found = false ;
165- let mut too_large = false ;
166155 for element in & mut self . elements {
167156 match element {
168157 UnionElement :: IntLiterals ( literals) => {
169158 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 ) ;
172161 }
173162 literals. insert ( literal) ;
174163 found = true ;
@@ -180,10 +169,6 @@ impl<'db> UnionBuilder<'db> {
180169 _ => { }
181170 }
182171 }
183- if too_large {
184- let replace_with = KnownClass :: Int . to_instance ( self . db ) ;
185- return self . add ( replace_with) ;
186- }
187172 if !found {
188173 self . elements
189174 . push ( UnionElement :: IntLiterals ( FxOrderSet :: from_iter ( [ literal] ) ) ) ;
0 commit comments