Следующий фрагмент взят из исходного кода rust для path.rs
impl AsRef<Path> for String {
fn as_ref(&self) -> &Path {
Path::new(self)
}
}
Кажется, он возвращает ссылку на вновь созданный объект Path
из кадра стека. Как он обходит правила проверки заимствований в Rust? Объект стека должен иметь время жизни только для текущего кадра, а возвращаемая ссылка для временных объектов должна вызывать ошибку.