diff --git a/pyo3-derive-backend/src/from_pyobject.rs b/pyo3-derive-backend/src/from_pyobject.rs
index 01e281d5e22..b7da07dcb20 100644
--- a/pyo3-derive-backend/src/from_pyobject.rs
+++ b/pyo3-derive-backend/src/from_pyobject.rs
@@ -161,7 +161,7 @@ impl<'a> Container<'a> {
                         .as_ref()
                         .expect("Named fields should have identifiers");
                     let attr = FieldAttribute::parse_attrs(&field.attrs)?
-                        .unwrap_or_else(|| FieldAttribute::GetAttr(None));
+                        .unwrap_or(FieldAttribute::GetAttr(None));
                     fields.push((ident, attr))
                 }
                 ContainerType::Struct(fields)
diff --git a/src/ffi/methodobject.rs b/src/ffi/methodobject.rs
index 921cca847c1..193dde8b4c0 100644
--- a/src/ffi/methodobject.rs
+++ b/src/ffi/methodobject.rs
@@ -16,25 +16,27 @@ pub unsafe fn PyCFunction_Check(op: *mut PyObject) -> c_int {
 pub type PyCFunction =
     unsafe extern "C" fn(slf: *mut PyObject, args: *mut PyObject) -> *mut PyObject;
 
-#[cfg(all(Py_3_8, not(Py_LIMITED_API)))]
-#[cfg_attr(Py_3_8, link_name = "_PyObject_Vectorcall")]
-pub type PyObject_Vectorcall = unsafe extern "C" fn(
-    slf: *mut PyObject,
-    // positional and keyword arguments
-    args: *const *mut PyObject,
-    // number of position arguments in args, after which values are kwargs
-    nargs: crate::ffi::pyport::Py_ssize_t,
-    // tuple of kwargs, if given, or null
-    kwnames: *mut PyObject,
-) -> *mut PyObject;
-
-#[cfg(all(Py_3_8, not(Py_LIMITED_API)))]
-#[cfg_attr(Py_3_8, link_name = "PyVectorcall_Call")]
-pub type PyVectorcall_Call = unsafe extern "C" fn(
-    obj: *mut PyObject,
-    tuple: *mut PyObject,
-    dict: *mut PyObject,
-) -> *mut PyObject;
+// TODO(davidhewitt)[1283] - Fix this definition
+// #[cfg(all(Py_3_8, not(Py_LIMITED_API)))]
+// #[cfg_attr(Py_3_8, link_name = "_PyObject_Vectorcall")]
+// pub type PyObject_Vectorcall = unsafe extern "C" fn(
+//     slf: *mut PyObject,
+//     // positional and keyword arguments
+//     args: *const *mut PyObject,
+//     // number of position arguments in args, after which values are kwargs
+//     nargs: crate::ffi::pyport::Py_ssize_t,
+//     // tuple of kwargs, if given, or null
+//     kwnames: *mut PyObject,
+// ) -> *mut PyObject;
+
+// TODO(davidhewitt)[1283] - Fix this definition
+// #[cfg(all(Py_3_8, not(Py_LIMITED_API)))]
+// #[cfg_attr(Py_3_8, link_name = "PyVectorcall_Call")]
+// pub type PyVectorcall_Call = unsafe extern "C" fn(
+//     obj: *mut PyObject,
+//     tuple: *mut PyObject,
+//     dict: *mut PyObject,
+// ) -> *mut PyObject;
 
 #[cfg(all(Py_3_7, not(Py_LIMITED_API)))]
 const PY_VECTORCALL_ARGUMENTS_OFFSET: crate::ffi::pyport::Py_ssize_t =
diff --git a/tests/test_compile_error.rs b/tests/test_compile_error.rs
index 0b2e495cd2b..59f4a03f89c 100644
--- a/tests/test_compile_error.rs
+++ b/tests/test_compile_error.rs
@@ -9,19 +9,27 @@ fn test_compile_errors() {
     t.compile_fail("tests/ui/invalid_pymethod_names.rs");
     t.compile_fail("tests/ui/reject_generics.rs");
     t.compile_fail("tests/ui/static_ref.rs");
-    t.compile_fail("tests/ui/wrong_aspyref_lifetimes.rs");
 
     tests_rust_1_46(&t);
+    tests_rust_1_48(&t);
 
     #[rustversion::since(1.46)]
     fn tests_rust_1_46(t: &trybuild::TestCases) {
         t.compile_fail("tests/ui/invalid_frompy_derive.rs");
+    }
+    #[rustversion::before(1.46)]
+    fn tests_rust_1_46(_t: &trybuild::TestCases) {}
+
+    #[rustversion::since(1.48)]
+    fn tests_rust_1_48(t: &trybuild::TestCases) {
         t.compile_fail("tests/ui/invalid_pymethod_receiver.rs");
         t.compile_fail("tests/ui/invalid_result_conversion.rs");
         t.compile_fail("tests/ui/missing_clone.rs");
+        t.compile_fail("tests/ui/wrong_aspyref_lifetimes.rs");
+
         #[cfg(Py_LIMITED_API)]
         t.compile_fail("tests/ui/abi3_nativetype_inheritance.rs");
     }
-    #[rustversion::before(1.46)]
-    fn tests_rust_1_46(_t: &trybuild::TestCases) {}
+    #[rustversion::before(1.48)]
+    fn tests_rust_1_48(_t: &trybuild::TestCases) {}
 }
diff --git a/tests/ui/abi3_nativetype_inheritance.stderr b/tests/ui/abi3_nativetype_inheritance.stderr
index 9787700b4a3..54cacd505d9 100644
--- a/tests/ui/abi3_nativetype_inheritance.stderr
+++ b/tests/ui/abi3_nativetype_inheritance.stderr
@@ -1,13 +1,13 @@
-error[E0277]: the trait bound `pyo3::ffi::PyDictObject: pyo3::type_object::PySizedLayout<pyo3::types::PyDict>` is not satisfied
+error[E0277]: the trait bound `PyDictObject: PySizedLayout<PyDict>` is not satisfied
   --> $DIR/abi3_nativetype_inheritance.rs:5:1
    |
 5  | #[pyclass(extends=PyDict)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `pyo3::type_object::PySizedLayout<pyo3::types::PyDict>` is not implemented for `pyo3::ffi::PyDictObject`
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `PySizedLayout<PyDict>` is not implemented for `PyDictObject`
    |
-  ::: $WORKSPACE/src/type_object.rs:96:22
+  ::: $WORKSPACE/src/type_object.rs
    |
-96 |     type BaseLayout: PySizedLayout<Self::BaseType>;
-   |                      ----------------------------- required by this bound in `pyo3::PyTypeInfo`
+   |     type BaseLayout: PySizedLayout<Self::BaseType>;
+   |                      ----------------------------- required by this bound in `PyTypeInfo`
    |
-   = note: required because of the requirements on the impl of `pyo3::type_object::PySizedLayout<pyo3::types::PyDict>` for `pyo3::pycell::PyCellBase<pyo3::types::PyDict>`
+   = note: required because of the requirements on the impl of `PySizedLayout<PyDict>` for `PyCellBase<PyDict>`
    = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/tests/ui/invalid_pymethod_receiver.stderr b/tests/ui/invalid_pymethod_receiver.stderr
index 044678b2fdd..e43a08ed209 100644
--- a/tests/ui/invalid_pymethod_receiver.stderr
+++ b/tests/ui/invalid_pymethod_receiver.stderr
@@ -1,14 +1,14 @@
-error[E0277]: the trait bound `i32: std::convert::From<&pyo3::PyCell<MyClass>>` is not satisfied
+error[E0277]: the trait bound `i32: From<&PyCell<MyClass>>` is not satisfied
  --> $DIR/invalid_pymethod_receiver.rs:8:43
   |
 8 |     fn method_with_invalid_self_type(slf: i32, py: Python, index: u32) {}
-  |                                           ^^^ the trait `std::convert::From<&pyo3::PyCell<MyClass>>` is not implemented for `i32`
+  |                                           ^^^ the trait `From<&PyCell<MyClass>>` is not implemented for `i32`
   |
   = help: the following implementations were found:
-            <i32 as std::convert::From<bool>>
-            <i32 as std::convert::From<i16>>
-            <i32 as std::convert::From<i8>>
-            <i32 as std::convert::From<std::num::NonZeroI32>>
+            <i32 as From<NonZeroI32>>
+            <i32 as From<bool>>
+            <i32 as From<i16>>
+            <i32 as From<i8>>
           and 2 others
-  = note: required because of the requirements on the impl of `std::convert::Into<i32>` for `&pyo3::PyCell<MyClass>`
-  = note: required because of the requirements on the impl of `std::convert::TryFrom<&pyo3::PyCell<MyClass>>` for `i32`
+  = note: required because of the requirements on the impl of `Into<i32>` for `&PyCell<MyClass>`
+  = note: required because of the requirements on the impl of `TryFrom<&PyCell<MyClass>>` for `i32`
diff --git a/tests/ui/invalid_result_conversion.stderr b/tests/ui/invalid_result_conversion.stderr
index a7e8a6d0ebf..3209334f0ee 100644
--- a/tests/ui/invalid_result_conversion.stderr
+++ b/tests/ui/invalid_result_conversion.stderr
@@ -1,14 +1,14 @@
-error[E0277]: the trait bound `std::result::Result<(), MyError>: pyo3::callback::IntoPyCallbackOutput<_>` is not satisfied
+error[E0277]: the trait bound `std::result::Result<(), MyError>: IntoPyCallbackOutput<_>` is not satisfied
    --> $DIR/invalid_result_conversion.rs:22:1
     |
 22  | #[pyfunction]
-    | ^^^^^^^^^^^^^ the trait `pyo3::callback::IntoPyCallbackOutput<_>` is not implemented for `std::result::Result<(), MyError>`
+    | ^^^^^^^^^^^^^ the trait `IntoPyCallbackOutput<_>` is not implemented for `std::result::Result<(), MyError>`
     |
-   ::: $WORKSPACE/src/callback.rs:170:8
+   ::: $WORKSPACE/src/callback.rs
     |
-170 |     T: IntoPyCallbackOutput<U>,
+    |     T: IntoPyCallbackOutput<U>,
     |        ----------------------- required by this bound in `pyo3::callback::convert`
     |
     = help: the following implementations were found:
-              <std::result::Result<T, E> as pyo3::callback::IntoPyCallbackOutput<U>>
+              <std::result::Result<T, E> as IntoPyCallbackOutput<U>>
     = note: this error originates in an attribute macro (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/tests/ui/missing_clone.stderr b/tests/ui/missing_clone.stderr
index e828edc8353..cf89ee807ce 100644
--- a/tests/ui/missing_clone.stderr
+++ b/tests/ui/missing_clone.stderr
@@ -1,7 +1,7 @@
-error[E0277]: the trait bound `TestClass: std::clone::Clone` is not satisfied
+error[E0277]: the trait bound `TestClass: Clone` is not satisfied
   --> $DIR/missing_clone.rs:15:32
    |
 15 |     let t: TestClass = pyvalue.extract(py).unwrap();
-   |                                ^^^^^^^ the trait `std::clone::Clone` is not implemented for `TestClass`
+   |                                ^^^^^^^ the trait `Clone` is not implemented for `TestClass`
    |
    = note: required because of the requirements on the impl of `pyo3::FromPyObject<'_>` for `TestClass`
diff --git a/tests/ui/wrong_aspyref_lifetimes.stderr b/tests/ui/wrong_aspyref_lifetimes.stderr
index 7c3b87ce86b..4d4a20c5ead 100644
--- a/tests/ui/wrong_aspyref_lifetimes.stderr
+++ b/tests/ui/wrong_aspyref_lifetimes.stderr
@@ -5,6 +5,6 @@ error[E0505]: cannot move out of `gil` because it is borrowed
   |                                     --- borrow of `gil` occurs here
 7 |     drop(gil);
   |          ^^^ move out of `gil` occurs here
-8 | 
+8 |
 9 |     let _py: Python = dict.py(); // Obtain a Python<'p> without GIL.
   |                       ---- borrow later used here