• BB_C@programming.dev
    link
    fedilink
    arrow-up
    7
    ·
    20 days ago

    Is what the author calls a C# borrow checker purely lexically based? The first error message gives that impression. And if it is, then it wouldn’t qualify for any such comparisons with 2018+ Rust.

    • GetOffMyLan@programming.dev
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      20 days ago

      It’s 100% not a borrow checker because c# doesn’t have borrowing. It’s just static analysis to ensure memory safety. But the author acknowledges that.

      It’s just checking the scopes the variables are defined in in the first example.

    • Giooschi@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      2
      ·
      20 days ago

      It’s a very different kind of borrow checking than Rust’s. For example there’s no mutability xor sharing checking, because mutability cannot invalidate memory (there’s still a GC in C# after all!). As such, Rust’s NLL (which are available in the 2015 edition too btw) don’t really make sense in C#.