Rollup merge of #128157 - lolbinarycat:unify-ptr-ref-docs, r=cuviper · patricklam/verify-rust-std@28a983d (original) (raw)

`@@ -247,24 +247,7 @@ impl<T: ?Sized> *mut T {

`

247

247

`/// # Safety

`

248

248

`///

`

249

249

`/// When calling this method, you have to ensure that either the pointer is null or

`

250

``

`-

/// all of the following is true:

`

251

``

`-

///

`

252

``

`-

/// * The pointer must be properly aligned.

`

253

``

`-

///

`

254

``

`-

/// * It must be "dereferenceable" in the sense defined in [the module documentation].

`

255

``

`-

///

`

256

``

`` -

/// * The pointer must point to an initialized instance of T.

``

257

``

`-

///

`

258

``

`` -

/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a is

``

259

``

`-

/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.

`

260

``

`-

/// In particular, while this reference exists, the memory the pointer points to must

`

261

``

`` -

/// not get mutated (except inside UnsafeCell).

``

262

``

`-

///

`

263

``

`-

/// This applies even if the result of this method is unused!

`

264

``

`-

/// (The part about being initialized is not yet fully decided, but until

`

265

``

`-

/// it is, the only safe approach is to ensure that they are indeed initialized.)

`

266

``

`-

///

`

267

``

`-

/// [the module documentation]: crate::ptr#safety

`

``

250

`+

/// the pointer is convertible to a reference.

`

268

251

`///

`

269

252

`/// # Examples

`

270

253

`///

`

`@@ -313,24 +296,7 @@ impl<T: ?Sized> *mut T {

`

313

296

`///

`

314

297

`/// # Safety

`

315

298

`///

`

316

``

`-

/// When calling this method, you have to ensure that all of the following is true:

`

317

``

`-

///

`

318

``

`-

/// * The pointer must be properly aligned.

`

319

``

`-

///

`

320

``

`-

/// * It must be "dereferenceable" in the sense defined in [the module documentation].

`

321

``

`-

///

`

322

``

`` -

/// * The pointer must point to an initialized instance of T.

``

323

``

`-

///

`

324

``

`` -

/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a is

``

325

``

`-

/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.

`

326

``

`-

/// In particular, while this reference exists, the memory the pointer points to must

`

327

``

`` -

/// not get mutated (except inside UnsafeCell).

``

328

``

`-

///

`

329

``

`-

/// This applies even if the result of this method is unused!

`

330

``

`-

/// (The part about being initialized is not yet fully decided, but until

`

331

``

`-

/// it is, the only safe approach is to ensure that they are indeed initialized.)

`

332

``

`-

///

`

333

``

`-

/// [the module documentation]: crate::ptr#safety

`

``

299

`+

/// When calling this method, you have to ensure that the pointer is convertible to a reference.

`

334

300

`///

`

335

301

`/// # Examples

`

336

302

`///

`

`@@ -364,20 +330,9 @@ impl<T: ?Sized> *mut T {

`

364

330

`/// # Safety

`

365

331

`///

`

366

332

`/// When calling this method, you have to ensure that either the pointer is null or

`

367

``

`-

/// all of the following is true:

`

368

``

`-

///

`

369

``

`-

/// * The pointer must be properly aligned.

`

370

``

`-

///

`

371

``

`-

/// * It must be "dereferenceable" in the sense defined in [the module documentation].

`

372

``

`-

///

`

373

``

`` -

/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a is

``

374

``

`-

/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.

`

375

``

`-

/// In particular, while this reference exists, the memory the pointer points to must

`

376

``

`` -

/// not get mutated (except inside UnsafeCell).

``

377

``

`-

///

`

378

``

`-

/// This applies even if the result of this method is unused!

`

379

``

`-

///

`

380

``

`-

/// [the module documentation]: crate::ptr#safety

`

``

333

`+

/// the pointer is convertible to a reference.

`

``

334

`` +

/// Note that because the created reference is to MaybeUninit<T>, the

``

``

335

`+

/// source pointer can point to uninitialized memory.

`

381

336

`///

`

382

337

`/// # Examples

`

383

338

`///

`

`@@ -609,25 +564,10 @@ impl<T: ?Sized> *mut T {

`

609

564

`///

`

610

565

`/// # Safety

`

611

566

`///

`

612

``

`-

/// When calling this method, you have to ensure that either the pointer is null or

`

613

``

`-

/// all of the following is true:

`

614

``

`-

///

`

615

``

`-

/// * The pointer must be properly aligned.

`

616

``

`-

///

`

617

``

`-

/// * It must be "dereferenceable" in the sense defined in [the module documentation].

`

618

``

`-

///

`

619

``

`` -

/// * The pointer must point to an initialized instance of T.

``

``

567

`+

/// When calling this method, you have to ensure that either

`

``

568

`+

/// the pointer is null or

`

``

569

`+

/// the pointer is convertible to a reference.

`

620

570

`///

`

621

``

`` -

/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a is

``

622

``

`-

/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.

`

623

``

`-

/// In particular, while this reference exists, the memory the pointer points to must

`

624

``

`-

/// not get accessed (read or written) through any other pointer.

`

625

``

`-

///

`

626

``

`-

/// This applies even if the result of this method is unused!

`

627

``

`-

/// (The part about being initialized is not yet fully decided, but until

`

628

``

`-

/// it is, the only safe approach is to ensure that they are indeed initialized.)

`

629

``

`-

///

`

630

``

`-

/// [the module documentation]: crate::ptr#safety

`

631

571

`///

`

632

572

`/// # Examples

`

633

573

`///

`

`@@ -675,24 +615,8 @@ impl<T: ?Sized> *mut T {

`

675

615

`///

`

676

616

`/// # Safety

`

677

617

`///

`

678

``

`-

/// When calling this method, you have to ensure that all of the following is true:

`

679

``

`-

///

`

680

``

`-

/// * The pointer must be properly aligned.

`

681

``

`-

///

`

682

``

`-

/// * It must be "dereferenceable" in the sense defined in [the module documentation].

`

683

``

`-

///

`

684

``

`` -

/// * The pointer must point to an initialized instance of T.

``

685

``

`-

///

`

686

``

`` -

/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a is

``

687

``

`-

/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.

`

688

``

`-

/// In particular, while this reference exists, the memory the pointer points to must

`

689

``

`` -

/// not get mutated (except inside UnsafeCell).

``

690

``

`-

///

`

691

``

`-

/// This applies even if the result of this method is unused!

`

692

``

`-

/// (The part about being initialized is not yet fully decided, but until

`

693

``

`-

/// it is, the only safe approach is to ensure that they are indeed initialized.)

`

694

``

`-

///

`

695

``

`-

/// [the module documentation]: crate::ptr#safety

`

``

618

`+

/// When calling this method, you have to ensure that

`

``

619

`+

/// the pointer is convertible to a reference.

`

696

620

`///

`

697

621

`/// # Examples

`

698

622

`///

`

`@@ -727,20 +651,7 @@ impl<T: ?Sized> *mut T {

`

727

651

`/// # Safety

`

728

652

`///

`

729

653

`/// When calling this method, you have to ensure that either the pointer is null or

`

730

``

`-

/// all of the following is true:

`

731

``

`-

///

`

732

``

`-

/// * The pointer must be properly aligned.

`

733

``

`-

///

`

734

``

`-

/// * It must be "dereferenceable" in the sense defined in [the module documentation].

`

735

``

`-

///

`

736

``

`` -

/// * You must enforce Rust's aliasing rules, since the returned lifetime 'a is

``

737

``

`-

/// arbitrarily chosen and does not necessarily reflect the actual lifetime of the data.

`

738

``

`-

/// In particular, while this reference exists, the memory the pointer points to must

`

739

``

`-

/// not get accessed (read or written) through any other pointer.

`

740

``

`-

///

`

741

``

`-

/// This applies even if the result of this method is unused!

`

742

``

`-

///

`

743

``

`-

/// [the module documentation]: crate::ptr#safety

`

``

654

`+

/// the pointer is convertible to a reference.

`

744

655

`#[inline]

`

745

656

`#[unstable(feature = "ptr_as_uninit", issue = "75402")]

`

746

657

`#[rustc_const_unstable(feature = "const_ptr_as_ref", issue = "91822")]

`