@@ -102,7 +102,7 @@ impl SemicolonBlock {
102
102
}
103
103
104
104
fn semicolon_outside_block ( & self , cx : & LateContext < ' _ > , block : & Block < ' _ > , tail_stmt_expr : & Expr < ' _ > ) {
105
- let insert_span = block. span . with_lo ( block . span . hi ( ) ) ;
105
+ let insert_span = block. span . shrink_to_hi ( ) ;
106
106
107
107
// For macro call semicolon statements (`mac!();`), the statement's span does not actually
108
108
// include the semicolon itself, so use `mac_call_stmt_semi_span`, which finds the semicolon
@@ -144,38 +144,26 @@ impl LateLintPass<'_> for SemicolonBlock {
144
144
kind : ExprKind :: Block ( block, _) ,
145
145
..
146
146
} ) if !block. span . from_expansion ( ) && stmt. span . contains ( block. span ) => {
147
- let Block {
148
- expr : None ,
149
- stmts : [ .., stmt] ,
150
- ..
151
- } = block
152
- else {
153
- return ;
154
- } ;
155
- let & Stmt {
156
- kind : StmtKind :: Semi ( expr) ,
157
- ..
158
- } = stmt
159
- else {
160
- return ;
161
- } ;
162
- self . semicolon_outside_block ( cx, block, expr) ;
147
+ if block. expr . is_none ( )
148
+ && let [ .., stmt] = block. stmts
149
+ && let StmtKind :: Semi ( expr) = stmt. kind
150
+ {
151
+ self . semicolon_outside_block ( cx, block, expr) ;
152
+ }
163
153
} ,
164
154
StmtKind :: Semi ( Expr {
165
- kind : ExprKind :: Block ( block @ Block { expr : Some ( tail ) , .. } , _) ,
155
+ kind : ExprKind :: Block ( block, _) ,
166
156
..
167
157
} ) if !block. span . from_expansion ( ) => {
168
- self . semicolon_inside_block ( cx, block, tail, stmt. span ) ;
158
+ if let Some ( tail) = block. expr {
159
+ self . semicolon_inside_block ( cx, block, tail, stmt. span ) ;
160
+ }
169
161
} ,
170
162
_ => ( ) ,
171
163
}
172
164
}
173
165
}
174
166
175
167
fn get_line ( cx : & LateContext < ' _ > , span : Span ) -> Option < usize > {
176
- if let Ok ( line) = cx. sess ( ) . source_map ( ) . lookup_line ( span. lo ( ) ) {
177
- return Some ( line. line ) ;
178
- }
179
-
180
- None
168
+ cx. sess ( ) . source_map ( ) . lookup_line ( span. lo ( ) ) . ok ( ) . map ( |line| line. line )
181
169
}
0 commit comments