Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
370 changes: 2 additions & 368 deletions crates/assists/src/handlers/convert_integer_literal.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,34 +129,6 @@ mod tests {
);
}

// Decimal numbers under 3 digits have a special case where they return early because we can't fit a
// other base's prefix, so we have a separate test for that.
#[test]
fn convert_small_decimal_integer() {
let before = "const _: i32 = 10<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b1010;",
"Convert 10 to 0b1010",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o12;",
"Convert 10 to 0o12",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xA;",
"Convert 10 to 0xA",
);
}

#[test]
fn convert_hexadecimal_integer() {
let before = "const _: i32 = 0xFF<|>;";
Expand Down Expand Up @@ -236,7 +208,7 @@ mod tests {
}

#[test]
fn convert_decimal_integer_with_underscores() {
fn convert_integer_with_underscores() {
let before = "const _: i32 = 1_00_0<|>;";

check_assist_by_label(
Expand All @@ -262,111 +234,7 @@ mod tests {
}

#[test]
fn convert_small_decimal_integer_with_underscores() {
let before = "const _: i32 = 1_0<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b1010;",
"Convert 1_0 to 0b1010",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o12;",
"Convert 1_0 to 0o12",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xA;",
"Convert 1_0 to 0xA",
);
}

#[test]
fn convert_hexadecimal_integer_with_underscores() {
let before = "const _: i32 = 0x_F_F<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b11111111;",
"Convert 0x_F_F to 0b11111111",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o377;",
"Convert 0x_F_F to 0o377",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255;",
"Convert 0x_F_F to 255",
);
}

#[test]
fn convert_binary_integer_with_underscores() {
let before = "const _: i32 = 0b1111_1111<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o377;",
"Convert 0b1111_1111 to 0o377",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255;",
"Convert 0b1111_1111 to 255",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xFF;",
"Convert 0b1111_1111 to 0xFF",
);
}

#[test]
fn convert_octal_integer_with_underscores() {
let before = "const _: i32 = 0o3_77<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b11111111;",
"Convert 0o3_77 to 0b11111111",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255;",
"Convert 0o3_77 to 255",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xFF;",
"Convert 0o3_77 to 0xFF",
);
}

#[test]
fn convert_decimal_integer_with_suffix() {
fn convert_integer_with_suffix() {
let before = "const _: i32 = 1000i32<|>;";

check_assist_by_label(
Expand All @@ -391,240 +259,6 @@ mod tests {
);
}

#[test]
fn convert_small_decimal_integer_with_suffix() {
let before = "const _: i32 = 10i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b1010i32;",
"Convert 10i32 to 0b1010i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o12i32;",
"Convert 10i32 to 0o12i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xAi32;",
"Convert 10i32 to 0xAi32",
);
}

#[test]
fn convert_hexadecimal_integer_with_suffix() {
let before = "const _: i32 = 0xFFi32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b11111111i32;",
"Convert 0xFFi32 to 0b11111111i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o377i32;",
"Convert 0xFFi32 to 0o377i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255i32;",
"Convert 0xFFi32 to 255i32",
);
}

#[test]
fn convert_binary_integer_with_suffix() {
let before = "const _: i32 = 0b11111111i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o377i32;",
"Convert 0b11111111i32 to 0o377i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255i32;",
"Convert 0b11111111i32 to 255i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xFFi32;",
"Convert 0b11111111i32 to 0xFFi32",
);
}

#[test]
fn convert_octal_integer_with_suffix() {
let before = "const _: i32 = 0o377i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b11111111i32;",
"Convert 0o377i32 to 0b11111111i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255i32;",
"Convert 0o377i32 to 255i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xFFi32;",
"Convert 0o377i32 to 0xFFi32",
);
}

#[test]
fn convert_decimal_integer_with_underscores_and_suffix() {
let before = "const _: i32 = 1_00_0i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b1111101000i32;",
"Convert 1_00_0i32 to 0b1111101000i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o1750i32;",
"Convert 1_00_0i32 to 0o1750i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0x3E8i32;",
"Convert 1_00_0i32 to 0x3E8i32",
);
}

#[test]
fn convert_small_decimal_integer_with_underscores_and_suffix() {
let before = "const _: i32 = 1_0i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b1010i32;",
"Convert 1_0i32 to 0b1010i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o12i32;",
"Convert 1_0i32 to 0o12i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xAi32;",
"Convert 1_0i32 to 0xAi32",
);
}

#[test]
fn convert_hexadecimal_integer_with_underscores_and_suffix() {
let before = "const _: i32 = 0x_F_Fi32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b11111111i32;",
"Convert 0x_F_Fi32 to 0b11111111i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o377i32;",
"Convert 0x_F_Fi32 to 0o377i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255i32;",
"Convert 0x_F_Fi32 to 255i32",
);
}

#[test]
fn convert_binary_integer_with_underscores_and_suffix() {
let before = "const _: i32 = 0b1111_1111i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0o377i32;",
"Convert 0b1111_1111i32 to 0o377i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255i32;",
"Convert 0b1111_1111i32 to 255i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xFFi32;",
"Convert 0b1111_1111i32 to 0xFFi32",
);
}

#[test]
fn convert_octal_integer_with_underscores_and_suffix() {
let before = "const _: i32 = 0o3_77i32<|>;";

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0b11111111i32;",
"Convert 0o3_77i32 to 0b11111111i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 255i32;",
"Convert 0o3_77i32 to 255i32",
);

check_assist_by_label(
convert_integer_literal,
before,
"const _: i32 = 0xFFi32;",
"Convert 0o3_77i32 to 0xFFi32",
);
}

#[test]
fn convert_overflowing_literal() {
let before = "const _: i32 =
Expand Down