os-rust/compiler/rustc_lint/src
bors 63ef74b6aa Auto merge of #111717 - Urgau:uplift_fn_null_check, r=oli-obk
Uplift `clippy::fn_null_check` lint

This PR aims at uplifting the `clippy::fn_null_check` lint into rustc.

## `incorrect_fn_null_checks`

(warn-by-default)

The `incorrect_fn_null_checks` lint checks for expression that checks if a function pointer is null.

### Example

```rust
let fn_ptr: fn() = /* somehow obtained nullable function pointer */

if (fn_ptr as *const ()).is_null() { /* ... */ }
```

### Explanation

Function pointers are assumed to be non-null, checking for their nullity is incorrect.

-----

Mostly followed the instructions for uplifting a clippy lint described here: https://github.com/rust-lang/rust/pull/99696#pullrequestreview-1134072751

`@rustbot` label: +I-lang-nominated
r? compiler
2023-07-11 09:34:48 +00:00
..
nonstandard_style mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
array_into_iter.rs errors: generate typed identifiers in each crate 2023-02-22 09:15:53 +00:00
builtin.rs Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
cast_ref_to_mut.rs Uplift clippy::cast_ref_to_mut to rustc 2023-05-31 12:28:38 +02:00
context.rs Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
deref_into_dyn_supertrait.rs Don't eagerly convert principal to string 2023-02-17 14:44:58 +00:00
drop_forget_useless.rs Fix dropping_copy_types lint from linting in match-arm with side-effects 2023-07-01 16:05:55 +02:00
early.rs Restrict From<S> for {D,Subd}iagnosticMessage. 2023-05-03 08:44:39 +10:00
enum_intrinsics_non_enums.rs rename needs_subst to has_param 2023-04-27 08:35:19 +01:00
errors.rs Use Cow in {D,Subd}iagnosticMessage. 2023-05-29 09:23:43 +10:00
expect.rs Move expansion of query macros in rustc_middle to rustc_middle::query 2023-05-15 08:49:13 +02:00
fn_null_check.rs Uplift clippy::fn_null_check to rustc 2023-07-10 18:12:41 +02:00
for_loops_over_fallibles.rs use the correct param env 2023-03-21 09:57:22 +01:00
hidden_unicode_codepoints.rs migrate: hidden_unicode_codepoints.rs 2023-01-09 17:07:25 -05:00
internal.rs Use is_some_and/is_ok_and in less obvious spots 2023-05-24 14:33:43 +00:00
invalid_from_utf8.rs Add invalid_from_utf8 analogous to invalid_from_utf8_unchecked 2023-05-27 00:18:28 +02:00
late.rs Add an ensure_sufficient_stack to LateContextAndPass::visit_expr 2023-06-15 09:57:47 -07:00
let_underscore.rs Fix typos in compiler 2023-04-10 22:02:52 +02:00
levels.rs Stop confusing specification levels when computing expectations. 2023-05-18 08:52:54 +00:00
lib.rs Uplift clippy::fn_null_check to rustc 2023-07-10 18:12:41 +02:00
lints.rs Uplift clippy::fn_null_check to rustc 2023-07-10 18:12:41 +02:00
map_unit_fn.rs Fix #109152, fix the scenario that we may can not get span of func 2023-03-15 14:07:39 +08:00
methods.rs Do not suppress temporary_cstring_as_ptr in macros. 2023-04-04 18:55:02 +00:00
multiple_supertrait_upcastable.rs Migrate predicates_of and caller_bounds to Clause 2023-06-26 23:12:03 +00:00
non_ascii_idents.rs Fix typos in compiler 2023-04-10 22:02:52 +02:00
non_fmt_panic.rs Use Option::is_some_and and Result::is_ok_and in the compiler 2023-05-24 14:20:41 +00:00
nonstandard_style.rs allow host param to be lowercase 2023-07-04 11:47:46 +00:00
noop_method_call.rs do not use stringly typed diagnostics 2023-06-13 13:53:56 +00:00
opaque_hidden_inferred_bound.rs Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
pass_by_value.rs remove bound_type_of query; make type_of return EarlyBinder; change type_of in metadata 2023-02-16 17:05:56 -07:00
passes.rs Take a LocalDefId in hir::Visitor::visit_fn. 2023-01-28 09:51:50 +00:00
redundant_semicolon.rs refactor: cleanup 2023-01-09 18:57:02 -05:00
tests.rs Update to last upstream version 2021-07-08 17:14:28 +02:00
traits.rs Migrate predicates_of and caller_bounds to Clause 2023-06-26 23:12:03 +00:00
types.rs Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
unused.rs Migrate item_bounds to ty::Clause 2023-06-22 18:34:23 +00:00