Inherit alignment to last else
This commit is contained in:
parent
ac6e6dfd5d
commit
9d96c33d59
@ -988,8 +988,11 @@ fn rewrite(&self, context: &RewriteContext, shape: Shape) -> Option<String> {
|
||||
|
||||
if let Some(else_block) = self.else_block {
|
||||
// Since this is an else block, we should not indent for the assignment preceding
|
||||
// the original if, so set shape.offset to 0.
|
||||
let shape = Shape { offset: 0, ..shape };
|
||||
// the original if, so set shape.offset to shape.indent.alignment.
|
||||
let shape = Shape {
|
||||
offset: shape.indent.alignment,
|
||||
..shape
|
||||
};
|
||||
let mut last_in_chain = false;
|
||||
let rewrite = match else_block.node {
|
||||
// If the else expression is another if-else expression, prevent it
|
||||
|
27
tests/source/issue-1468.rs
Normal file
27
tests/source/issue-1468.rs
Normal file
@ -0,0 +1,27 @@
|
||||
fn issue1468() {
|
||||
euc_jp_decoder_functions!({
|
||||
let trail_minus_offset = byte.wrapping_sub(0xA1);
|
||||
// Fast-track Hiragana (60% according to Lunde)
|
||||
// and Katakana (10% acconding to Lunde).
|
||||
if jis0208_lead_minus_offset == 0x03 &&
|
||||
trail_minus_offset < 0x53 {
|
||||
// Hiragana
|
||||
handle.write_upper_bmp(0x3041 + trail_minus_offset as u16)
|
||||
} else if jis0208_lead_minus_offset == 0x04 &&
|
||||
trail_minus_offset < 0x56 {
|
||||
// Katakana
|
||||
handle.write_upper_bmp(0x30A1 + trail_minus_offset as u16)
|
||||
} else if trail_minus_offset > (0xFE - 0xA1) {
|
||||
if byte < 0x80 {
|
||||
return (DecoderResult::Malformed(1, 0),
|
||||
unread_handle_trail.unread(),
|
||||
handle.written());
|
||||
}
|
||||
return (DecoderResult::Malformed(2, 0),
|
||||
unread_handle_trail.consumed(),
|
||||
handle.written());
|
||||
} else {
|
||||
unreachable!();
|
||||
}
|
||||
});
|
||||
}
|
27
tests/target/issue-1468.rs
Normal file
27
tests/target/issue-1468.rs
Normal file
@ -0,0 +1,27 @@
|
||||
fn issue1468() {
|
||||
euc_jp_decoder_functions!({
|
||||
let trail_minus_offset = byte.wrapping_sub(0xA1);
|
||||
// Fast-track Hiragana (60% according to Lunde)
|
||||
// and Katakana (10% acconding to Lunde).
|
||||
if jis0208_lead_minus_offset == 0x03 &&
|
||||
trail_minus_offset < 0x53 {
|
||||
// Hiragana
|
||||
handle.write_upper_bmp(0x3041 + trail_minus_offset as u16)
|
||||
} else if jis0208_lead_minus_offset == 0x04 &&
|
||||
trail_minus_offset < 0x56 {
|
||||
// Katakana
|
||||
handle.write_upper_bmp(0x30A1 + trail_minus_offset as u16)
|
||||
} else if trail_minus_offset > (0xFE - 0xA1) {
|
||||
if byte < 0x80 {
|
||||
return (DecoderResult::Malformed(1, 0),
|
||||
unread_handle_trail.unread(),
|
||||
handle.written());
|
||||
}
|
||||
return (DecoderResult::Malformed(2, 0),
|
||||
unread_handle_trail.consumed(),
|
||||
handle.written());
|
||||
} else {
|
||||
unreachable!();
|
||||
}
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue
Block a user