From cdc12edb4c18aadad2e24d1f988a30bcb17964bb Mon Sep 17 00:00:00 2001 From: mbartlett21 Date: Tue, 17 May 2022 07:24:47 +0000 Subject: [PATCH] Add a test for fn pointer calls in consts --- src/test/ui/consts/const-fn-ptr.rs | 16 ++++++++++++++++ src/test/ui/consts/const-fn-ptr.stderr | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/test/ui/consts/const-fn-ptr.rs create mode 100644 src/test/ui/consts/const-fn-ptr.stderr diff --git a/src/test/ui/consts/const-fn-ptr.rs b/src/test/ui/consts/const-fn-ptr.rs new file mode 100644 index 000000000000..b1befdf06af2 --- /dev/null +++ b/src/test/ui/consts/const-fn-ptr.rs @@ -0,0 +1,16 @@ +const fn make_fn_ptr() -> fn() { + || {} +} + +static STAT: () = make_fn_ptr()(); +//~^ ERROR function pointer + +const CONST: () = make_fn_ptr()(); +//~^ ERROR function pointer + +const fn call_ptr() { + make_fn_ptr()(); + //~^ ERROR function pointer +} + +fn main() {} diff --git a/src/test/ui/consts/const-fn-ptr.stderr b/src/test/ui/consts/const-fn-ptr.stderr new file mode 100644 index 000000000000..84b02a25ec8c --- /dev/null +++ b/src/test/ui/consts/const-fn-ptr.stderr @@ -0,0 +1,20 @@ +error: function pointer calls are not allowed in statics + --> $DIR/const-fn-ptr.rs:5:19 + | +LL | static STAT: () = make_fn_ptr()(); + | ^^^^^^^^^^^^^^^ + +error: function pointer calls are not allowed in constants + --> $DIR/const-fn-ptr.rs:8:19 + | +LL | const CONST: () = make_fn_ptr()(); + | ^^^^^^^^^^^^^^^ + +error: function pointer calls are not allowed in constant functions + --> $DIR/const-fn-ptr.rs:12:5 + | +LL | make_fn_ptr()(); + | ^^^^^^^^^^^^^^^ + +error: aborting due to 3 previous errors +