Ein neuer Ansatz für den Borrow Checker: Regionen als Mengen von Loans
An alias-based formulation of the borrow checker (2018)
Seit dem Rust All Hands experimentiert der Autor mit einer alternativen Formulierung des Rust Borrow Checkers, die einige Schwächen des aktuellen NLL-Vorschlags überwinden soll. Der Kern der Idee: Statt Lebensdauern als Programmabschnitte zu betrachten, werden Regionen als Mengen von Loans (Borrow-Ausdrücken) modelliert. Ein Prototyp besteht bereits den vollständigen NLL-Testsuite und behandelt zusätzlich Fälle wie #47680, die der aktuelle NLL-Ansatz nicht lösen kann. Die Performance ist zwar noch nicht optimiert, aber der Autor ist zuversichtlich, dass sich hier noch große Fortschritte erzielen lassen.
Die Idee ist, dass wenn eine Referenz r den Typ &'a i32 hat, dann würde die Verletzung der Bedingungen eines der Loans in 'a auch r ungültig machen.