же
                  
                  
                
 Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  если у нас есть явный Drop, который позволяет пронаблюдать место дропа, то оно не скомпилируется
...и точно так-же may_dangle не даёт нам наблюдать невалидную ссылку ну сколько можно одно и тоже :(
 Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  мне кажется, мы о разном ты о #[may_dangle] в стдлибе, а я о #[may_dangle] в юзеркоде
 Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  если у тебя у самого включена фича dropck_eyepatch, то ты можешь легко пронаблюдать невалидную ссылку на входе в drop()
#[may_dangle] везде одинаковый, он требует unsafe и гарантии что ты ненаблюдаешь тип
 Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  кроме #[may_dangle], даже unsafe не позволяет породить невалидную ссылку без UB
Зависит от того, рассматривается ли висячая ссылка как safety или validity invariant
nll позволяет породить ненаблюдаемую невалидную ссылку. точно так-же как и #[may_dangle]. Единственная разница, в том, что на #[may_dangle] не работает (из-за сайд эффектов) твоя интуитивная ложь про drop() после последнего использования, всё. И с #[may_dangle] и с обычными структурами и nll у тебя технически есть невалидная ссылка, но наблюдать ты её не можешь.
 Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  почему это ложь? ты не можешь пронаблюдать отсутствие неявного drop() после последнего использования
Потому что в расте значения умирают в конце блока, просто пока у них нет сайдэффектов в дропе, неважно где конкретно они умерли.
 Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Max
                          Силинг
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  это нельзя пронаблюдать именно в значении «физически невозможно», а не в значении «наблюдать это — UB»
И? Какая разница, UB by definition физически невозможно.
Обсуждают сегодня