ufcpp / NonCopyableAnalyzer

An analyzer for Non-Copyable structs.
MIT License
29 stars 4 forks source link

False positive on conversion operators, that take arguments by reference #14

Closed lostmsu closed 4 years ago

lostmsu commented 4 years ago
[NonCopyable]
ref struct NewReference
{
  // this should be allowed to be called any time,
  // because it takes input by reference (e.g. `in` is used)
  public static implicit operator BorrowedReference(in NewReference reference)
    => new BorrowedReference(reference.pointer);
}
...
NewReference @new = new NewReference();
BorrowedReference borrowed = @new; // "error NoCopy06: 🚫 conversion"
lostmsu commented 4 years ago

BTW, cool project! Started using it in Python.NET. Rust-style lifetime tracking FTW!

Meta BTW: cool, GitHub shows us as a user in "UsedBy".

ufcpp commented 4 years ago

Thank you so much for your great feedback! I'm honored to hear that😊 However, I'm too busy to re-build this project now. It's helpful for me if you send me pull request and I will accept it! Thanks again your feedback!!

ufcpp commented 4 years ago

notes: