ernie-research/MEnvData-SWE huggingface dataset:
Repository: actix/actix-web (Rust)

Issue:
missing status text "Not Found" in response status line
```
extern crate actix_web;
use actix_web::{server, App, HttpResponse};

fn main() {
    server::new(|| {
        App::new()
        .prefix("/app")
        .resource("", |r| r.f(|_| HttpResponse::Ok()))  // <- handle `/app` path
        .resource("/", |r| r.f(|_| HttpResponse::Ok())) // <- handle `/app/` path
        .resource("/test", |r| {
            r.get().f(|_| HttpResponse::Ok());
            r.head().f(|_| HttpResponse::MethodNotAllowed());
        })
    }).bind("localhost:3000")
        .unwrap()
        .run();
}
```
```
$ curl -I http://localhost:3000/app/z
HTTP/1.1 404 Not Found  // <= it works here

$ curl -I http://localhost:3000/app
HTTP/1.1 200 OK

$ curl -I http://localhost:3000/ap
HTTP/1.1 404  // <= missing `Not Found` here
```


Discussion:
Hm, this is quite interesting find, so we have status code, but not its text representation in response?
If no one else is working on this, I will have a look and create a testcase for it later today.
Great! Just assign ticket to yourself
I can't assign myself to this ticket.
fixed #498 



Patch:
diff --git a/src/server/error.rs b/src/server/error.rs
index 5bd0bf83bd0..d08ccf87f08 100644
--- a/src/server/error.rs
+++ b/src/server/error.rs
@@ -21,7 +21,12 @@ impl HttpHandlerTask for ServerError {
             bytes.reserve(helpers::STATUS_LINE_BUF_SIZE + 1);
             helpers::write_status_line(self.0, self.1.as_u16(), bytes);
         }
+        // Convert Status Code to Reason.
+        let reason = self.1.canonical_reason().unwrap_or("");
+        io.buffer().extend_from_slice(reason.as_bytes());
+        // No response body.
         io.buffer().extend_from_slice(b"\r\ncontent-length: 0\r\n");
+        // date header
         io.set_date();
         Ok(Async::Ready(true))
     }


Test patch:
diff --git a/tests/test_server.rs b/tests/test_server.rs
index c573c4e129c..8235be6b6ba 100644
--- a/tests/test_server.rs
+++ b/tests/test_server.rs
@@ -932,6 +932,29 @@ fn test_application() {
     assert!(response.status().is_success());
 }
 
+#[test]
+fn test_default_404_handler_response() {
+    let mut srv = test::TestServer::with_factory(|| {
+        App::new()
+            .prefix("/app")
+            .resource("", |r| r.f(|_| HttpResponse::Ok()))
+            .resource("/", |r| r.f(|_| HttpResponse::Ok()))
+    });
+    let addr = srv.addr();
+
+    let mut buf = [0; 24];
+    let request = TcpStream::connect(&addr)
+        .and_then(|sock| {
+            tokio::io::write_all(sock, "HEAD / HTTP/1.1\r\nHost: localhost\r\n\r\n")
+                .and_then(|(sock, _)| tokio::io::read_exact(sock, &mut buf))
+                .and_then(|(_, buf)| Ok(buf))
+        })
+        .map_err(|e| panic!("{:?}", e));
+    let response = srv.execute(request).unwrap();
+    let rep = String::from_utf8_lossy(&response[..]);
+    assert!(rep.contains("HTTP/1.1 404 Not Found"));
+}
+
 #[test]
 fn test_server_cookies() {
     use actix_web::http;
Repository: paupino/rust-decimal (Rust)

Issue:
Implement num_traits::Inv
`num_traits` is already a dependency, and some traits from it like `CheckedDiv` are already implemented. So it makes sense to support [`Inv`](https://docs.rs/num-traits/0.2.14/num_traits/ops/inv/trait.Inv.html#tymethod.inv) as well. I can submit a PR if you're interested.


Discussion:
Makes sense! 



Patch:
diff --git a/src/arithmetic_impls.rs b/src/arithmetic_impls.rs
index c51b6ebe..81cfa305 100644
--- a/src/arithmetic_impls.rs
+++ b/src/arithmetic_impls.rs
@@ -3,7 +3,7 @@
 
 use crate::{decimal::CalculationResult, ops, Decimal};
 use core::ops::{Add, Div, Mul, Rem, Sub};
-use num_traits::{CheckedAdd, CheckedDiv, CheckedMul, CheckedRem, CheckedSub};
+use num_traits::{CheckedAdd, CheckedDiv, CheckedMul, CheckedRem, CheckedSub, Inv};
 
 // Macros and `Decimal` implementations
 
@@ -32,10 +32,10 @@ macro_rules! impl_checked {
 macro_rules! impl_saturating {
     ($long:literal, $short:literal, $fun:ident, $impl:ident, $cmp:ident) => {
         #[doc = concat!(
-            "Saturating ", 
-            $long, 
+            "Saturating ",
+            $long,
             ". Computes `self ",
-            $short, 
+            $short,
             " other`, saturating at the relevant upper or lower boundary.",
         )]
         #[inline(always)]
@@ -198,6 +198,15 @@ impl CheckedRem for Decimal {
     }
 }
 
+impl Inv for Decimal {
+    type Output = Self;
+
+    #[inline]
+    fn inv(self) -> Self {
+        Decimal::ONE / self
+    }
+}
+
 forward_all_binop!(impl Div for Decimal, div);
 impl<'a, 'b> Div<&'b Decimal> for &'a Decimal {
     type Output = Decimal;


Test patch:
diff --git a/tests/decimal_tests.rs b/tests/decimal_tests.rs
index 8cf0e211..667b80f2 100644
--- a/tests/decimal_tests.rs
+++ b/tests/decimal_tests.rs
@@ -5,7 +5,7 @@ use core::{
     convert::{TryFrom, TryInto},
     str::FromStr,
 };
-use num_traits::{Signed, ToPrimitive};
+use num_traits::{Inv, Signed, ToPrimitive};
 use rust_decimal::{Decimal, Error, RoundingStrategy};
 
 #[test]
@@ -3366,6 +3366,11 @@ fn test_constants() {
     assert_eq!("2", Decimal::TWO.to_string());
 }
 
+#[test]
+fn test_inv() {
+    assert_eq!("0.01", Decimal::ONE_HUNDRED.inv().to_string());
+}
+
 // Mathematical features
 #[cfg(feature = "maths")]
 mod maths {
Repository: paupino/rust-decimal (Rust)

Issue:
Signed zeros are not equal, is this intended?
```
#[test]
fn test_decimal_behavior() {
    let zero: Decimal = 0.into();

    assert!(zero == zero);
    assert!(-zero == zero);
    assert!(zero == -zero);
}
```

The second and third `assert` would fail. Is this the intended behavior of the `Decimal`?


Discussion:
Not intended. I'll issue a fix for master, but will wait for a couple of extra changes to make it in before issuing a minor release.
Thanks for the quick response and patch!



Patch:
diff --git a/src/decimal.rs b/src/decimal.rs
index d054ca79..b220cc6d 100644
--- a/src/decimal.rs
+++ b/src/decimal.rs
@@ -2669,8 +2669,14 @@ impl Ord for Decimal {
         let self_negative = self.is_sign_negative();
         let other_negative = other.is_sign_negative();
         if self_negative && !other_negative {
+            if self.is_zero() && other.is_zero() {
+                return Ordering::Equal;
+            }
             return Ordering::Less;
         } else if !self_negative && other_negative {
+            if self.is_zero() && other.is_zero() {
+                return Ordering::Equal;
+            }
             return Ordering::Greater;
         }
 


Test patch:
diff --git a/tests/decimal_tests.rs b/tests/decimal_tests.rs
index 7986fe28..e6446fa9 100644
--- a/tests/decimal_tests.rs
+++ b/tests/decimal_tests.rs
@@ -1292,6 +1292,15 @@ fn it_panics_when_scale_too_large() {
     let _ = Decimal::new(1, 29);
 }
 
+#[test]
+fn test_zero_eq_negative_zero() {
+    let zero: Decimal = 0.into();
+
+    assert!(zero == zero);
+    assert!(-zero == zero);
+    assert!(zero == -zero);
+}
+
 #[cfg(feature = "postgres")]
 #[test]
 fn to_from_sql() {
Repository: paupino/rust-decimal (Rust)

Issue:
`attempt to negate with overflow` when using `checked_add`
This bug was found by fuzzing tests.

```rust
let a = Decimal::from_parts(0, 67108864, 0, false, 0);
let b = Decimal::from_parts(0, 0, 3873892070, false, 3873892070);
let _c = a.checked_sub(b);
```


Discussion:
Hi @c410-f3r - what compile time environment/options did you use when receiving this error? 
I've tried reproducing this however I don't seem to get this error? 
https://github.com/paupino/rust-decimal/pull/new/issues/384
Sorry. Just updated the code with an actual falling test



Patch:
diff --git a/src/ops/add.rs b/src/ops/add.rs
index 408ba53b..52ba675f 100644
--- a/src/ops/add.rs
+++ b/src/ops/add.rs
@@ -157,7 +157,7 @@ fn aligned_add(lhs: Dec64, rhs: Dec64, negative: bool, scale: u32, subtract: boo
 fn flip_sign(result: &mut Dec64) {
     // Bitwise not the high portion
     result.hi = !result.hi;
-    let low64 = (-(result.low64 as i64)) as u64;
+    let low64 = ((result.low64 as i64).wrapping_neg()) as u64;
     if low64 == 0 {
         result.hi += 1;
     }


Test patch:
diff --git a/tests/decimal_tests.rs b/tests/decimal_tests.rs
index 34c35f32..117f4aa6 100644
--- a/tests/decimal_tests.rs
+++ b/tests/decimal_tests.rs
@@ -3970,3 +3970,23 @@ mod rust_fuzz {
         assert!(d.is_ok());
     }
 }
+
+mod issues {
+    use rust_decimal::prelude::*;
+
+    #[test]
+    fn issue_384_neg_overflow_during_subtract_carry() {
+        // 288230376151711744
+        let a = Decimal::from_parts(0, 67108864, 0, false, 0);
+        // 714606955844629274884780.85120
+        let b = Decimal::from_parts(0, 0, 3873892070, false, 3873892070);
+        let c = a.checked_sub(b);
+        assert!(c.is_some());
+
+        //         288230376151711744.
+        // - 714606955844629274884780.85120
+        // =
+        // - 714606667614253123173036.85120
+        assert_eq!("-714606667614253123173036.85120", c.unwrap().to_string());
+    }
+}
Repository: roc-lang/roc (Rust)

Issue:
Error message: SYNTAX PROBLEM trying to parse record error typo
There is a typo in the error message when a record name is expected but not found, example:

```shell
$ roc repl
  The rockin' roc repl
────────────────────────

Enter an expression, or :help, or :q to quit.

» y.

── SYNTAX PROBLEM ──────────────────────────────────────────────────────────────

I trying to parse a record field access here:

4│      y.
          ^

So I expect to see a lowercase letter next, like .name or .height.

```

Should be 'I am trying to parse a record field access here'


Discussion:

Patch:
diff --git a/crates/reporting/src/error/canonicalize.rs b/crates/reporting/src/error/canonicalize.rs
index dae48321b95..cad1da98791 100644
--- a/crates/reporting/src/error/canonicalize.rs
+++ b/crates/reporting/src/error/canonicalize.rs
@@ -1177,7 +1177,7 @@ fn to_bad_ident_expr_report<'b>(
             let region = LineColumnRegion::from_pos(lines.convert_pos(pos));
 
             alloc.stack([
-                alloc.reflow(r"I trying to parse a record field access here:"),
+                alloc.reflow(r"I am trying to parse a record field access here:"),
                 alloc.region_with_subregion(lines.convert_region(surroundings), region),
                 alloc.concat([
                     alloc.reflow("So I expect to see a lowercase letter next, like "),
@@ -1377,7 +1377,7 @@ fn to_bad_ident_pattern_report<'b>(
             let region = LineColumnRegion::from_pos(lines.convert_pos(pos));
 
             alloc.stack([
-                alloc.reflow(r"I trying to parse a record field accessor here:"),
+                alloc.reflow(r"I am trying to parse a record field accessor here:"),
                 alloc.region_with_subregion(lines.convert_region(surroundings), region),
                 alloc.concat([
                     alloc.reflow("Something like "),


Test patch:
diff --git a/crates/compiler/load/tests/test_reporting.rs b/crates/compiler/load/tests/test_reporting.rs
index df088211c85..26a774057f1 100644
--- a/crates/compiler/load/tests/test_reporting.rs
+++ b/crates/compiler/load/tests/test_reporting.rs
@@ -4269,7 +4269,7 @@ mod test_reporting {
         @r###"
     ── SYNTAX PROBLEM ──────────────────────────────────────── /code/proj/Main.roc ─
 
-    I trying to parse a record field access here:
+    I am trying to parse a record field access here:
 
     4│      foo.bar.
                     ^
@@ -5667,7 +5667,7 @@ All branches in an `if` must have the same type!
         @r###"
     ── SYNTAX PROBLEM ──────────────────────────────────────── /code/proj/Main.roc ─
 
-    I trying to parse a record field access here:
+    I am trying to parse a record field access here:
 
     4│      Num.add . 23
                      ^
Repository: apache/datafusion-sqlparser-rs (Rust)

Issue:
Create sequence allows dangling `NO`
I was writing a PR for #1102, and I found a bug where a dangling `No` slips through in create sequence options

https://github.com/sqlparser-rs/sqlparser-rs/blob/b0b62887a2bbc464642a17e590b259411bf1c11d/src/parser/mod.rs#L8604-L8611

If a `No` is consumed, the case where nothing exists isn't handled. 

This should be

```rust
if self.parse_keywords(&[Keyword::NO, Keyword::CYCLE]) {
    sequence_options.push(SequenceOptions::Cycle(true));
} else if self.parse_keywords(&[Keyword::CYCLE]) {
    sequence_options.push(SequenceOptions::Cycle(false));
}
```
I will open a PR.


Discussion:

Patch:
diff --git a/src/parser/mod.rs b/src/parser/mod.rs
index 08fbc6d3c..832cba4a8 100644
--- a/src/parser/mod.rs
+++ b/src/parser/mod.rs
@@ -8602,13 +8602,12 @@ impl<'a> Parser<'a> {
             )));
         }
         // [ [ NO ] CYCLE ]
-        if self.parse_keywords(&[Keyword::NO]) {
-            if self.parse_keywords(&[Keyword::CYCLE]) {
-                sequence_options.push(SequenceOptions::Cycle(true));
-            }
+        if self.parse_keywords(&[Keyword::NO, Keyword::CYCLE]) {
+            sequence_options.push(SequenceOptions::Cycle(true));
         } else if self.parse_keywords(&[Keyword::CYCLE]) {
             sequence_options.push(SequenceOptions::Cycle(false));
         }
+
         Ok(sequence_options)
     }
 


Test patch:
diff --git a/tests/sqlparser_postgres.rs b/tests/sqlparser_postgres.rs
index 8d90ca91f..38fbbe606 100644
--- a/tests/sqlparser_postgres.rs
+++ b/tests/sqlparser_postgres.rs
@@ -276,6 +276,11 @@ fn parse_create_sequence() {
         sql6,
         "CREATE TEMPORARY SEQUENCE IF NOT EXISTS name3 INCREMENT 1 NO MINVALUE MAXVALUE 20 OWNED BY NONE",
     );
+
+    assert!(matches!(
+        pg().parse_sql_statements("CREATE SEQUENCE foo INCREMENT 1 NO MINVALUE NO"),
+        Err(ParserError::ParserError(_))
+    ));
 }
 
 #[test]
Repository: uutils/coreutils (Rust)

Issue:
`seq` should not accept `-w` and `-f` at the same time
```
$ seq -w -f "%f" 1 2
seq: format string may not be specified when printing equal width strings
Try 'seq --help' for more information.
$ cargo run seq -w -f "%f" 1 2
1.000000
2.000000
```


Discussion:

Patch:
diff --git a/src/uu/seq/src/error.rs b/src/uu/seq/src/error.rs
index 8c951240fa0..819368aad98 100644
--- a/src/uu/seq/src/error.rs
+++ b/src/uu/seq/src/error.rs
@@ -28,6 +28,10 @@ pub enum SeqError {
     /// No arguments were passed to this function, 1 or more is required
     #[error("missing operand")]
     NoArguments,
+
+    /// Both a format and equal width where passed to seq
+    #[error("format string may not be specified when printing equal width strings")]
+    FormatAndEqualWidth,
 }
 
 fn parse_error_type(e: &ParseNumberError) -> &'static str {
diff --git a/src/uu/seq/src/seq.rs b/src/uu/seq/src/seq.rs
index 2ef829a6d36..b51df980227 100644
--- a/src/uu/seq/src/seq.rs
+++ b/src/uu/seq/src/seq.rs
@@ -114,6 +114,10 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
         format: matches.get_one::<String>(OPT_FORMAT).map(|s| s.as_str()),
     };
 
+    if options.equal_width && options.format.is_some() {
+        return Err(SeqError::FormatAndEqualWidth.into());
+    }
+
     let first = if numbers.len() > 1 {
         match numbers[0].parse() {
             Ok(num) => num,


Test patch:
diff --git a/tests/by-util/test_seq.rs b/tests/by-util/test_seq.rs
index b112c75d835..62870a8f68b 100644
--- a/tests/by-util/test_seq.rs
+++ b/tests/by-util/test_seq.rs
@@ -19,6 +19,14 @@ fn test_no_args() {
         .stderr_contains("missing operand");
 }
 
+#[test]
+fn test_format_and_equal_width() {
+    new_ucmd!()
+        .args(&["-w", "-f", "%f", "1"])
+        .fails_with_code(1)
+        .stderr_contains("format string may not be specified");
+}
+
 #[test]
 fn test_hex_rejects_sign_after_identifier() {
     new_ucmd!()
Repository: uutils/coreutils (Rust)

Issue:
echo: prints version when input is "--ver" different from GNU echo
GNU echo 
```shell
$ /bin/echo --ver
--ver
```

coreutills
```shell
$ cargo run --features unix -- echo --ver
echo 0.0.24
```
other coreutils have the same behavior, but they match the output of their counterparts, tested `ls`, `touch` and `sleep`




Discussion:
Oh that's funny 😄 I'll try to fix this in my new argument parser too. For the `clap` parser, I think this is just a matter of removing `infer_long_args`. Let me give that a shot.



Patch:
diff --git a/src/uu/echo/src/echo.rs b/src/uu/echo/src/echo.rs
index a34c99bc91d..c94443822e0 100644
--- a/src/uu/echo/src/echo.rs
+++ b/src/uu/echo/src/echo.rs
@@ -132,13 +132,15 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
 }
 
 pub fn uu_app() -> Command {
+    // Note: echo is different from the other utils in that it should **not**
+    // have `infer_long_args(true)`, because, for example, `--ver` should be
+    // printed as `--ver` and not show the version text.
     Command::new(uucore::util_name())
         // TrailingVarArg specifies the final positional argument is a VarArg
         // and it doesn't attempts the parse any further args.
         // Final argument must have multiple(true) or the usage string equivalent.
         .trailing_var_arg(true)
         .allow_hyphen_values(true)
-        .infer_long_args(true)
         .version(crate_version!())
         .about(ABOUT)
         .after_help(AFTER_HELP)


Test patch:
diff --git a/tests/by-util/test_echo.rs b/tests/by-util/test_echo.rs
index ac6bd74d1e0..4ae623f2f6f 100644
--- a/tests/by-util/test_echo.rs
+++ b/tests/by-util/test_echo.rs
@@ -293,3 +293,13 @@ fn old_octal_syntax() {
         .succeeds()
         .stdout_is("A1\n");
 }
+
+#[test]
+fn partial_version_argument() {
+    new_ucmd!().arg("--ver").succeeds().stdout_is("--ver\n");
+}
+
+#[test]
+fn partial_help_argument() {
+    new_ucmd!().arg("--he").succeeds().stdout_is("--he\n");
+}
Repository: rust-lang/cc-rs (Rust)

Issue:
Target strings that end in -none (such as aarch64-unknown-none) should not default to -fPIC
According to the [docs](https://docs.rs/cc/latest/cc/struct.Build.html#method.pic)

> This [pic] option defaults to false for windows-gnu and bare metal targets and to true for all other targets.

This means the bare metal target `aarch64-unknown-none` should default to false, but the current logic only looks for `-none-`, and not `-none`.


Discussion:

Patch:
diff --git a/src/lib.rs b/src/lib.rs
index e96382868..2a7e3a11f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1983,6 +1983,7 @@ impl Build {
                 if self.pic.unwrap_or(
                     !target.contains("windows")
                         && !target.contains("-none-")
+                        && !target.ends_with("-none")
                         && !target.contains("uefi"),
                 ) {
                     cmd.push_cc_arg("-fPIC".into());


Test patch:
diff --git a/tests/test.rs b/tests/test.rs
index 5f31f3eb7..9d5ce508e 100644
--- a/tests/test.rs
+++ b/tests/test.rs
@@ -269,6 +269,20 @@ fn gnu_x86_64_no_plt() {
     test.cmd(0).must_have("-fno-plt");
 }
 
+#[test]
+fn gnu_aarch64_none_no_pic() {
+    for target in &["aarch64-unknown-none-gnu", "aarch64-unknown-none"] {
+        let test = Test::gnu();
+        test.gcc()
+            .target(&target)
+            .host(&target)
+            .file("foo.c")
+            .compile("foo");
+
+        test.cmd(0).must_not_have("-fPIC");
+    }
+}
+
 #[test]
 fn gnu_set_stdlib() {
     reset_env();
Repository: uutils/coreutils (Rust)

Issue:
ls: zero block size leads to "divide by zero" error
When providing `--block-size=0 -l` we panic with:
```
$ cargo run -q ls --block-size=0 -l

thread 'main' panicked at src/uu/ls/src/ls.rs:2691:34:
attempt to divide by zero
```
GNU `ls`, on the other hand, shows an error message:
```
$ ls --block-size=0 -l
ls: invalid --block-size argument '0'
```


Discussion:
Looking for a first contribution - can I take a stab at this?
@yrakcaz sure, go ahead :)



Patch:
diff --git a/src/uu/ls/src/ls.rs b/src/uu/ls/src/ls.rs
index 5d3136a58cb..064e1b1e51c 100644
--- a/src/uu/ls/src/ls.rs
+++ b/src/uu/ls/src/ls.rs
@@ -68,7 +68,7 @@ use uucore::{
     line_ending::LineEnding,
     os_str_as_bytes_lossy,
     parser::parse_glob,
-    parser::parse_size::parse_size_u64,
+    parser::parse_size::parse_size_non_zero_u64,
     parser::shortcut_value_parser::ShortcutValueParser,
     quoting_style::{QuotingStyle, locale_aware_escape_dir_name, locale_aware_escape_name},
     show, show_error, show_warning,
@@ -902,7 +902,7 @@ impl Config {
 
         let (file_size_block_size, block_size) = if !opt_si && !opt_hr && !raw_block_size.is_empty()
         {
-            match parse_size_u64(&raw_block_size.to_string_lossy()) {
+            match parse_size_non_zero_u64(&raw_block_size.to_string_lossy()) {
                 Ok(size) => match (is_env_var_blocksize, opt_kb) {
                     (true, true) => (DEFAULT_FILE_SIZE_BLOCK_SIZE, DEFAULT_BLOCK_SIZE),
                     (true, false) => (DEFAULT_FILE_SIZE_BLOCK_SIZE, size),


Test patch:
diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs
index 46ff9934608..a8ce2c32cfb 100644
--- a/tests/by-util/test_ls.rs
+++ b/tests/by-util/test_ls.rs
@@ -5355,6 +5355,12 @@ fn test_ls_invalid_block_size() {
         .fails_with_code(2)
         .no_stdout()
         .stderr_is("ls: invalid --block-size argument 'invalid'\n");
+
+    new_ucmd!()
+        .arg("--block-size=0")
+        .fails_with_code(2)
+        .no_stdout()
+        .stderr_is("ls: invalid --block-size argument '0'\n");
 }
 
 #[cfg(all(unix, feature = "dd"))]
@@ -5394,6 +5400,14 @@ fn test_ls_invalid_block_size_in_env_var() {
         .succeeds()
         .stdout_contains_line("total 4")
         .stdout_contains(" 1024 ");
+
+    scene
+        .ucmd()
+        .arg("-og")
+        .env("BLOCKSIZE", "0")
+        .succeeds()
+        .stdout_contains_line("total 4")
+        .stdout_contains(" 1024 ");
 }
 
 #[cfg(all(unix, feature = "dd"))]
Repository: influxdata/influxdb (Rust)

Issue:
Update v2 write endpoint to accept `Token` in place of `Bearer`
This could be on any of the write endpoints or just on the v2 endpoint, but it should accept either `Bearer` or `Token` in the authorization header. Thus both of these should be valid headers for passing a token:
1. `Authorization: Token ...`
2. `Authorization: Bearer ...`


Discussion:

Patch:
diff --git a/influxdb3_server/src/http.rs b/influxdb3_server/src/http.rs
index b28b2c6ae45..4f744c7cc9e 100644
--- a/influxdb3_server/src/http.rs
+++ b/influxdb3_server/src/http.rs
@@ -801,9 +801,9 @@ fn validate_auth_header(header: HeaderValue) -> Result<Vec<u8>, AuthorizationErr
     // Split the header value into two parts
     let mut header = header.to_str()?.split(' ');
 
-    // Check that the header is the 'Bearer' auth scheme
-    let bearer = header.next().ok_or(AuthorizationError::MalformedRequest)?;
-    if bearer != "Bearer" {
+    // Check that the header is the 'Bearer' or 'Token' auth scheme
+    let auth_scheme = header.next().ok_or(AuthorizationError::MalformedRequest)?;
+    if auth_scheme != "Bearer" && auth_scheme != "Token" {
         return Err(AuthorizationError::MalformedRequest);
     }
 


Test patch:
diff --git a/influxdb3/tests/server/auth.rs b/influxdb3/tests/server/auth.rs
index ddcab4b45f6..5d4fdca6a3b 100644
--- a/influxdb3/tests/server/auth.rs
+++ b/influxdb3/tests/server/auth.rs
@@ -55,6 +55,19 @@ async fn auth() {
             .status(),
         StatusCode::OK
     );
+    assert_eq!(
+        client
+            .post(&write_lp_url)
+            .query(&write_lp_params)
+            .body("cpu,host=a val=1i 123")
+            // support both Bearer and Token auth schemes
+            .header("Authorization", format!("Token {TOKEN}"))
+            .send()
+            .await
+            .unwrap()
+            .status(),
+        StatusCode::OK
+    );
     assert_eq!(
         client
             .get(&query_sql_url)
Repository: Automattic/harper (Rust)

Issue:
Typst content blocks are not isolated
**Describe the bug**
Text inside content blocks is treated as if it were not isolated from that inside other content blocks.
An example is in a table, content blocks that are for different columns but are on the same row get joined together.

**To Reproduce**
Create two content blocks next to each other with `No` in each. The repeated word linter triggers.

**Expected behavior**
These should be treated as different paragraphs/blocks of text.

**Screenshots**
Note the columns on the right:
<img width="1752" height="882" alt="Image" src="https://github.com/user-attachments/assets/cceacef9-ea6f-41bc-b93d-dbb89d859f48" />


Discussion:
Also, unrelated, the repeated word isn't triggering on Yes but it is on No. Not sure if this is documented yet.



Patch:
diff --git a/harper-typst/src/typst_translator.rs b/harper-typst/src/typst_translator.rs
index 2c2db3c84..78bae05d2 100644
--- a/harper-typst/src/typst_translator.rs
+++ b/harper-typst/src/typst_translator.rs
@@ -152,6 +152,17 @@ impl<'a> TypstTranslator<'a> {
             };
         }
 
+        fn parbreak() -> Option<Vec<Token>> {
+            Some(vec![Token {
+                span: harper_core::Span::EMPTY,
+                kind: TokenKind::ParagraphBreak,
+            }])
+        }
+
+        fn isolate(inner: Option<Vec<Token>>) -> Option<Vec<Token>> {
+            merge![parbreak(), inner, parbreak()]
+        }
+
         // Recurse on each element of an iterator
         let iter_recurse = |exprs: &mut dyn Iterator<Item = Expr>| {
             let mut buf = Vec::new();
@@ -294,7 +305,9 @@ impl<'a> TypstTranslator<'a> {
                         .collect_vec(),
                 )
             }
-            Expr::Content(content_block) => iter_recurse(&mut content_block.body().exprs()),
+            Expr::Content(content_block) => {
+                isolate(iter_recurse(&mut content_block.body().exprs()))
+            }
             Expr::Parenthesized(parenthesized) => recurse!(parenthesized.expr()),
             Expr::Array(array) => Some(
                 array


Test patch:
diff --git a/harper-typst/tests/run_tests.rs b/harper-typst/tests/run_tests.rs
index d4bd79ad0..ff766a141 100644
--- a/harper-typst/tests/run_tests.rs
+++ b/harper-typst/tests/run_tests.rs
@@ -40,3 +40,4 @@ create_test!(simplified_document.typ, 0);
 create_test!(complex_document_with_spelling_mistakes.typ, 4);
 // create_test!(issue_399.typ, 3);
 create_test!(function_with_ignorable_args.typ, 9);
+create_test!(issue_1926.typ, 1);
diff --git a/harper-typst/tests/test_sources/issue_1926.typ b/harper-typst/tests/test_sources/issue_1926.typ
new file mode 100644
index 000000000..fce9a2fa9
--- /dev/null
+++ b/harper-typst/tests/test_sources/issue_1926.typ
@@ -0,0 +1,5 @@
+No No
+#table(
+  columns: 2,
+  [No], [No]
+)
Repository: boa-dev/boa (Rust)

Issue:
Boa can't parse a class with a keyword as name
<!--
Thank you for reporting a bug in Boa! This will make us improve the engine. But first, fill the following template so that we better understand what's happening. Feel free to add or remove sections as you feel appropriate.
-->

**Describe the bug**
Boa can't parse a file containing `class of {}`. I found such a javascript file in some minified JS code.

<!-- E.g.:
The variable statement is not working as expected, it always adds 10 when assigning a number to a variable"
-->

**To Reproduce**
Steps to reproduce the issue, or JavaScript code that causes this failure.

This JavaScript code reproduces the issue:
```javascript
class of {}
```

**Expected behavior**
A class with name `of` should be created, like in browsers and node.

**Build environment (please complete the following information):**

- OS: Arch Linux
- Version: 0.20.0
- Target triple: `x86-unknown-linux-gnu`
- Rustc version: rustc 1.87.0 (17067e9ac 2025-05-09)

**Additional context**
N/a

<!-- E.g.:
You can find more information in [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/var).
-->



Discussion:

Patch:
diff --git a/core/parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs b/core/parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs
index 5369c219e9b..c6815c1c40e 100644
--- a/core/parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs
+++ b/core/parser/src/parser/statement/declaration/hoistable/class_decl/mod.rs
@@ -89,6 +89,10 @@ where
                 BindingIdentifier::new(self.allow_yield, self.allow_await)
                     .parse(cursor, interner)?
             }
+            TokenKind::Keyword((k, _)) if !k.to_sym().is_reserved_identifier() => {
+                BindingIdentifier::new(self.allow_yield, self.allow_await)
+                    .parse(cursor, interner)?
+            }
             _ if self.is_default.0 => Identifier::new(Sym::DEFAULT, span),
             _ => {
                 return Err(Error::unexpected(


Test patch:
diff --git a/core/parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs b/core/parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs
index aa5b2878fe4..823cc6ee804 100644
--- a/core/parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs
+++ b/core/parser/src/parser/statement/declaration/hoistable/class_decl/tests.rs
@@ -230,3 +230,28 @@ fn check_new_target_with_property_access() {
         interner,
     );
 }
+
+#[test]
+fn check_non_reserved_keyword_as_identifier() {
+    let interner = &mut Interner::default();
+
+    check_script_parser(
+        indoc! {r#"
+            class of {}
+        "#},
+        [Declaration::ClassDeclaration(
+            ClassDeclaration::new(
+                Identifier::new(
+                    interner.get_or_intern_static("of", utf16!("of")),
+                    Span::new((1, 7), (1, 9)),
+                ),
+                None,
+                None,
+                vec![].into(),
+            )
+            .into(),
+        )
+        .into()],
+        interner,
+    );
+}
Repository: uutils/coreutils (Rust)

Issue:
printf: `%0s` and `%0c` should fail
While reviewing https://github.com/uutils/coreutils/pull/6028 I noticed that the format specifications `%0s` and `%0c` fail with GNU `printf` whereas with uutils `printf` they don't:
```
$ /usr/bin/printf "%0s"
/usr/bin/printf: %0s: invalid conversion specification
$ echo $?
1
$ /usr/bin/printf "%0c"
/usr/bin/printf: %0c: invalid conversion specification
$ echo $?
1

$ cargo run printf "%0s"
$ echo $?
0
$ cargo run printf "%0c"
$ echo $?
0
```


Discussion:

Patch:
diff --git a/src/uucore/src/lib/features/format/spec.rs b/src/uucore/src/lib/features/format/spec.rs
index af8a912d2b8..7c173a3a9b6 100644
--- a/src/uucore/src/lib/features/format/spec.rs
+++ b/src/uucore/src/lib/features/format/spec.rs
@@ -171,7 +171,7 @@ impl Spec {
         Ok(match type_spec {
             // GNU accepts minus, plus and space even though they are not used
             b'c' => {
-                if flags.hash || precision.is_some() {
+                if flags.zero || flags.hash || precision.is_some() {
                     return Err(&start[..index]);
                 }
                 Self::Char {
@@ -180,7 +180,7 @@ impl Spec {
                 }
             }
             b's' => {
-                if flags.hash {
+                if flags.zero || flags.hash {
                     return Err(&start[..index]);
                 }
                 Self::String {


Test patch:
diff --git a/tests/by-util/test_printf.rs b/tests/by-util/test_printf.rs
index 38d7b10a6ff..0cb603da4a4 100644
--- a/tests/by-util/test_printf.rs
+++ b/tests/by-util/test_printf.rs
@@ -765,3 +765,15 @@ fn pad_string() {
             .stdout_only(expected);
     }
 }
+
+#[test]
+fn format_spec_zero_char_fails() {
+    // It is invalid to have the format spec '%0c'
+    new_ucmd!().args(&["%0c", "3"]).fails().code_is(1);
+}
+
+#[test]
+fn format_spec_zero_string_fails() {
+    // It is invalid to have the format spec '%0s'
+    new_ucmd!().args(&["%0s", "3"]).fails().code_is(1);
+}
Repository: rust-lang/rust-analyzer (Rust)

Issue:
Closure incorrectly tries to move instead of borrow in `ref` patterns within `if let`
```rs
struct NotCopy;
struct S(NotCopy);
impl S {
    fn f(&mut self) {
        || {
            if let ref mut cb = self.0 {
            }
        };
    }
}


```
This incorrectly reports `cannot move `NotCopy` out of reference`. This closure is not actually moving the `0` field out.


Discussion:

Patch:
diff --git a/crates/hir-ty/src/infer/closure.rs b/crates/hir-ty/src/infer/closure.rs
index d1432cacf8d8..b756bb859d3e 100644
--- a/crates/hir-ty/src/infer/closure.rs
+++ b/crates/hir-ty/src/infer/closure.rs
@@ -1230,11 +1230,15 @@ impl InferenceContext<'_> {
                     self.select_from_expr(*expr);
                 }
             }
+            Expr::Let { pat: _, expr } => {
+                self.walk_expr(*expr);
+                let place = self.place_of_expr(*expr);
+                self.ref_expr(*expr, place);
+            }
             Expr::UnaryOp { expr, op: _ }
             | Expr::Array(Array::Repeat { initializer: expr, repeat: _ })
             | Expr::Await { expr }
             | Expr::Loop { body: expr, label: _ }
-            | Expr::Let { pat: _, expr }
             | Expr::Box { expr }
             | Expr::Cast { expr, type_ref: _ } => {
                 self.consume_expr(*expr);
diff --git a/crates/ide-diagnostics/src/handlers/moved_out_of_ref.rs b/crates/ide-diagnostics/src/handlers/moved_out_of_ref.rs
index 7181d708fe33..0928262d22fa 100644
--- a/crates/ide-diagnostics/src/handlers/moved_out_of_ref.rs
+++ b/crates/ide-diagnostics/src/handlers/moved_out_of_ref.rs
@@ -220,4 +220,23 @@ fn test() {
             "#,
         )
     }
+
+    #[test]
+    fn regression_18201() {
+        check_diagnostics(
+            r#"
+//- minicore: copy
+struct NotCopy;
+struct S(NotCopy);
+impl S {
+    fn f(&mut self) {
+        || {
+            if let ref mut _cb = self.0 {
+            }
+        };
+    }
+}
+"#,
+        )
+    }
 }


Test patch:
diff --git a/crates/hir-ty/src/tests/closure_captures.rs b/crates/hir-ty/src/tests/closure_captures.rs
index 88d21be81ea6..7fb981752de8 100644
--- a/crates/hir-ty/src/tests/closure_captures.rs
+++ b/crates/hir-ty/src/tests/closure_captures.rs
@@ -444,3 +444,22 @@ fn main() {
         expect!["99..165;49..54;120..121,133..134 ByRef(Mut { kind: Default }) a &'? mut A"],
     );
 }
+
+#[test]
+fn let_binding_is_a_ref_capture() {
+    check_closure_captures(
+        r#"
+//- minicore:copy
+struct S;
+fn main() {
+    let mut s = S;
+    let s_ref = &mut s;
+    let closure = || {
+        if let ref cb = s_ref {
+        }
+    };
+}
+"#,
+        expect!["83..135;49..54;112..117 ByRef(Shared) s_ref &'? &'? mut S"],
+    );
+}
Repository: casey/just (Rust)

Issue:
Can't access env vars defined in Justfile from submodule
It seems that version 1.42 introduced a change https://github.com/casey/just/pull/2810 that does not allow submodules to access env variables defined in the main Justfile. 

`Justfile`
```
mod test './test.justfile'

export a := "a"
```

`test.justfile`
```
test:
    echo $a
```

Running `just test` fails because a is unbound variable.


Discussion:
Thank you for the report! Fixed in #2816.
I just released [1.42.1](https://github.com/casey/just/releases/tag/1.42.1) with the fix.



Patch:
diff --git a/src/justfile.rs b/src/justfile.rs
index 50a4354b6f..f0b26d6592 100644
--- a/src/justfile.rs
+++ b/src/justfile.rs
@@ -91,7 +91,7 @@ impl<'src> Justfile<'src> {
         config,
         dotenv,
         &BTreeMap::new(),
-        root,
+        scope,
         scopes,
         search,
       )?;


Test patch:
diff --git a/tests/modules.rs b/tests/modules.rs
index b27ee59298..6075aa77ac 100644
--- a/tests/modules.rs
+++ b/tests/modules.rs
@@ -1018,3 +1018,54 @@ fn overrides_work_when_submodule_is_present() {
     .stdout("b\n")
     .run();
 }
+
+#[test]
+fn exported_variables_are_available_in_submodules() {
+  Test::new()
+    .write("foo.just", "bar:\n @echo $x")
+    .justfile(
+      "
+        mod foo
+
+        export x := 'a'
+      ",
+    )
+    .test_round_trip(false)
+    .arg("foo::bar")
+    .stdout("a\n")
+    .run();
+}
+
+#[test]
+fn exported_variables_can_be_unexported_in_submodules() {
+  Test::new()
+    .write("foo.just", "unexport x\nbar:\n @echo ${x:-default}")
+    .justfile(
+      "
+        mod foo
+
+        export x := 'a'
+      ",
+    )
+    .test_round_trip(false)
+    .arg("foo::bar")
+    .stdout("default\n")
+    .run();
+}
+
+#[test]
+fn exported_variables_can_be_overridden_in_submodules() {
+  Test::new()
+    .write("foo.just", "export x := 'b'\nbar:\n @echo $x")
+    .justfile(
+      "
+        mod foo
+
+        export x := 'a'
+      ",
+    )
+    .test_round_trip(false)
+    .arg("foo::bar")
+    .stdout("b\n")
+    .run();
+}
Repository: astral-sh/uv (Rust)

Issue:
Strip trailing whitespace on each row in `pip list`
Like `pip`, we should strip the trailing whitespace in each row.


Discussion:
This also breaks tests if your editor strips trailing whitespace today, which keeps biting me :joy:



Patch:
diff --git a/crates/uv/src/commands/pip_list.rs b/crates/uv/src/commands/pip_list.rs
index 534689c482f4c..dd329d66a5e2b 100644
--- a/crates/uv/src/commands/pip_list.rs
+++ b/crates/uv/src/commands/pip_list.rs
@@ -111,7 +111,7 @@ pub(crate) fn pip_list(
             }
 
             for elems in MultiZip(columns.iter().map(Column::fmt).collect_vec()) {
-                writeln!(printer.stdout(), "{}", elems.join(" "))?;
+                writeln!(printer.stdout(), "{}", elems.join(" ").trim_end())?;
             }
         }
         ListFormat::Json => {


Test patch:
diff --git a/crates/uv/tests/pip_list.rs b/crates/uv/tests/pip_list.rs
index bb91f213f9ccb..d0cc1c272d376 100644
--- a/crates/uv/tests/pip_list.rs
+++ b/crates/uv/tests/pip_list.rs
@@ -84,7 +84,7 @@ fn list_single_no_editable() -> Result<()> {
     ----- stdout -----
     Package    Version
     ---------- -------
-    markupsafe 2.1.3  
+    markupsafe 2.1.3
 
     ----- stderr -----
     "###
@@ -181,9 +181,9 @@ fn list_editable() -> Result<()> {
     success: true
     exit_code: 0
     ----- stdout -----
-    Package         Version Editable project location                                
+    Package         Version Editable project location
     --------------- ------- ---------------------------------------------------------
-    numpy           1.26.2                                                           
+    numpy           1.26.2
     poetry-editable 0.1.0   [WORKSPACE_DIR]/scripts/editable-installs/poetry_editable
 
     ----- stderr -----
@@ -275,7 +275,7 @@ fn list_editable_only() -> Result<()> {
     success: true
     exit_code: 0
     ----- stdout -----
-    Package         Version Editable project location                                
+    Package         Version Editable project location
     --------------- ------- ---------------------------------------------------------
     poetry-editable 0.1.0   [WORKSPACE_DIR]/scripts/editable-installs/poetry_editable
 
@@ -296,7 +296,7 @@ fn list_editable_only() -> Result<()> {
     ----- stdout -----
     Package Version
     ------- -------
-    numpy   1.26.2 
+    numpy   1.26.2
 
     ----- stderr -----
     "###
@@ -405,7 +405,7 @@ fn list_exclude() -> Result<()> {
     success: true
     exit_code: 0
     ----- stdout -----
-    Package         Version Editable project location                                
+    Package         Version Editable project location
     --------------- ------- ---------------------------------------------------------
     poetry-editable 0.1.0   [WORKSPACE_DIR]/scripts/editable-installs/poetry_editable
 
@@ -427,7 +427,7 @@ fn list_exclude() -> Result<()> {
     ----- stdout -----
     Package Version
     ------- -------
-    numpy   1.26.2 
+    numpy   1.26.2
 
     ----- stderr -----
     "###
Repository: casey/just (Rust)

Issue:
Formatter strips `[private]` attribute from variables
Given a `justfile` like:

```just
[private]
foo := 'one'
bar := 'two'
_baz := 'three'

@test:
    echo {{ foo }}
    echo {{ bar }}
    echo {{ _baz }}
```
Running the formatter results in the `[private]` attribute being removed.
```sh
$ just --unstable --fmt --check
-[private]
 foo := 'one'
 bar := 'two'
 _baz := 'three'

 @test:
     echo {{ foo }}
     echo {{ bar }}
     echo {{ _baz }}
error: Formatted justfile differs from original.
```


Discussion:
Good catch, fixed!



Patch:
diff --git a/src/assignment.rs b/src/assignment.rs
index 5822fc6a19..c41ecbab0d 100644
--- a/src/assignment.rs
+++ b/src/assignment.rs
@@ -5,9 +5,14 @@ pub(crate) type Assignment<'src> = Binding<'src, Expression<'src>>;
 
 impl Display for Assignment<'_> {
   fn fmt(&self, f: &mut Formatter) -> fmt::Result {
+    if self.private {
+      writeln!(f, "[private]")?;
+    }
+
     if self.export {
       write!(f, "export ")?;
     }
+
     write!(f, "{} := {}", self.name, self.value)
   }
 }


Test patch:
diff --git a/tests/format.rs b/tests/format.rs
index 93ccd996a2..75da38ba29 100644
--- a/tests/format.rs
+++ b/tests/format.rs
@@ -1155,3 +1155,22 @@ fn if_else() {
     )
     .run();
 }
+
+#[test]
+fn private_variable() {
+  Test::new()
+    .justfile(
+      "
+        [private]
+        foo := 'bar'
+      ",
+    )
+    .arg("--dump")
+    .stdout(
+      "
+        [private]
+        foo := 'bar'
+      ",
+    )
+    .run();
+}
Repository: apache/datafusion-sqlparser-rs (Rust)

Issue:
`INSERT INTO ... SELECT ... RETURNING `
The following is a valid and useful sql query:

```sql
INSERT INTO table1 SELECT * FROM table2 RETURNING id
```

However, we currently fail to parse it with: `ParserError("Expected: end of statement, found: id")`.


Discussion:
This is because we currently allow `RETURNING` as an unquoted table alias identifier. Most DBs don't.

```sql
select * from demo returning
```

fails in
 - sqlite: `SQLITE_ERROR: sqlite3 result code 1: near "returning": syntax error` : https://sqliteonline.com/#sqltext=%23url-sqlite%3Ddb-sqlite%0D%0A%23tab-name%3DSQLite.3%0D%0Aselect%20*%20from%20demo%20returning
 - mariadb: `Help: Error 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'returning' at line 1`
 - postgres: `Help: Error 42601 syntax error at or near "returning"`

We should not allow `RETURNING` in that position either
I am going to need this in the sqlpage spreadsheet component: https://github.com/sqlpage/sqlpage-spreadsheet



Patch:
diff --git a/src/keywords.rs b/src/keywords.rs
index 6b09a877a..cc56329f4 100644
--- a/src/keywords.rs
+++ b/src/keywords.rs
@@ -946,6 +946,7 @@ pub const RESERVED_FOR_TABLE_ALIAS: &[Keyword] = &[
     Keyword::GLOBAL,
     Keyword::ANTI,
     Keyword::SEMI,
+    Keyword::RETURNING,
     // for MSSQL-specific OUTER APPLY (seems reserved in most dialects)
     Keyword::OUTER,
     Keyword::SET,


Test patch:
diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs
index 07a30bc08..0c44fb849 100644
--- a/tests/sqlparser_common.rs
+++ b/tests/sqlparser_common.rs
@@ -265,6 +265,27 @@ fn parse_insert_select_returning() {
     }
 }
 
+#[test]
+fn parse_insert_select_from_returning() {
+    let sql = "INSERT INTO table1 SELECT * FROM table2 RETURNING id";
+    match verified_stmt(sql) {
+        Statement::Insert(Insert {
+            table: TableObject::TableName(table_name),
+            source: Some(source),
+            returning: Some(returning),
+            ..
+        }) => {
+            assert_eq!("table1", table_name.to_string());
+            assert!(matches!(*source.body, SetExpr::Select(_)));
+            assert_eq!(
+                returning,
+                vec![SelectItem::UnnamedExpr(Expr::Identifier(Ident::new("id"))),]
+            );
+        }
+        bad_stmt => unreachable!("Expected valid insert, got {:?}", bad_stmt),
+    }
+}
+
 #[test]
 fn parse_returning_as_column_alias() {
     verified_stmt("SELECT 1 AS RETURNING");
Repository: GrapesJS/grapesjs (TypeScript)

Issue:
BUG: Display order of border radius is not correct
### GrapesJS version

- [X] I confirm to use the latest version of GrapesJS

### What browser are you using?

Chrome v130

### Reproducible demo link

https://grapesjs.com/demo-newsletter-editor.html

### Describe the bug

**How to reproduce the bug?**
1. in the editor, select any element
2. in the styles section, go to border radius

**What is the expected behavior?**
The border radius settings for the four corners are displayed:
top-left  top-right
bottom-left bottom-right

**What is the current behavior?**
The border radius settings for the bottom corners are swapped:
top-left  top-right
bottom-right bottom-left

<img width="217" alt="Bildschirmfoto 2025-01-14 um 11 47 36" src="https://github.com/user-attachments/assets/c19c2f8a-cc8e-46fc-b580-2e085955d194" />

In the new GrapesJS Studio, the display order is correct!

<img width="245" alt="Bildschirmfoto 2025-01-14 um 11 46 18" src="https://github.com/user-attachments/assets/0a20553e-8439-45e5-b861-1fc54080d46b" />


### Code of Conduct

- [X] I agree to follow this project's Code of Conduct


Discussion:

Patch:
diff --git a/packages/core/src/style_manager/model/PropertyFactory.ts b/packages/core/src/style_manager/model/PropertyFactory.ts
index 828c5320fb..d2ebde5fc6 100644
--- a/packages/core/src/style_manager/model/PropertyFactory.ts
+++ b/packages/core/src/style_manager/model/PropertyFactory.ts
@@ -342,14 +342,14 @@ export default class PropertyFactory {
               extend: 'border-top-right-radius',
               id: 'border-top-right-radius-sub',
             },
-            {
-              extend: 'border-bottom-right-radius',
-              id: 'border-bottom-right-radius-sub',
-            },
             {
               extend: 'border-bottom-left-radius',
               id: 'border-bottom-left-radius-sub',
             },
+            {
+              extend: 'border-bottom-right-radius',
+              id: 'border-bottom-right-radius-sub',
+            },
           ]),
         },
         'margin',


Test patch:
diff --git a/packages/core/test/specs/style_manager/model/PropertyFactory.ts b/packages/core/test/specs/style_manager/model/PropertyFactory.ts
index a5f88c1081..90cb67752f 100644
--- a/packages/core/test/specs/style_manager/model/PropertyFactory.ts
+++ b/packages/core/test/specs/style_manager/model/PropertyFactory.ts
@@ -485,16 +485,16 @@ describe('PropertyFactory', () => {
           default: '0',
         },
         {
-          property: 'border-bottom-right-radius',
-          id: 'border-bottom-right-radius-sub',
+          property: 'border-bottom-left-radius',
+          id: 'border-bottom-left-radius-sub',
           type: 'number',
           units: obj.unitsSize,
           min: 0,
           default: '0',
         },
         {
-          property: 'border-bottom-left-radius',
-          id: 'border-bottom-left-radius-sub',
+          property: 'border-bottom-right-radius',
+          id: 'border-bottom-right-radius-sub',
           type: 'number',
           units: obj.unitsSize,
           min: 0,