File tree 4 files changed +41
-3
lines changed
4 files changed +41
-3
lines changed Original file line number Diff line number Diff line change @@ -123,8 +123,9 @@ impl<'a> Location<'a> {
123
123
/// ```
124
124
#[ must_use]
125
125
#[ stable( feature = "panic_hooks" , since = "1.10.0" ) ]
126
+ #[ rustc_const_unstable( feature = "const_location_fields" , issue = "102911" ) ]
126
127
#[ inline]
127
- pub fn file ( & self ) -> & str {
128
+ pub const fn file ( & self ) -> & str {
128
129
self . file
129
130
}
130
131
@@ -147,8 +148,9 @@ impl<'a> Location<'a> {
147
148
/// ```
148
149
#[ must_use]
149
150
#[ stable( feature = "panic_hooks" , since = "1.10.0" ) ]
151
+ #[ rustc_const_unstable( feature = "const_location_fields" , issue = "102911" ) ]
150
152
#[ inline]
151
- pub fn line ( & self ) -> u32 {
153
+ pub const fn line ( & self ) -> u32 {
152
154
self . line
153
155
}
154
156
@@ -171,8 +173,9 @@ impl<'a> Location<'a> {
171
173
/// ```
172
174
#[ must_use]
173
175
#[ stable( feature = "panic_col" , since = "1.25.0" ) ]
176
+ #[ rustc_const_unstable( feature = "const_location_fields" , issue = "102911" ) ]
174
177
#[ inline]
175
- pub fn column ( & self ) -> u32 {
178
+ pub const fn column ( & self ) -> u32 {
176
179
self . col
177
180
}
178
181
}
Original file line number Diff line number Diff line change 7
7
#![ feature( const_assume) ]
8
8
#![ feature( const_black_box) ]
9
9
#![ feature( const_bool_to_option) ]
10
+ #![ feature( const_caller_location) ]
10
11
#![ feature( const_cell_into_inner) ]
11
12
#![ feature( const_convert) ]
12
13
#![ feature( const_heap) ]
20
21
#![ feature( const_ptr_write) ]
21
22
#![ feature( const_trait_impl) ]
22
23
#![ feature( const_likely) ]
24
+ #![ feature( const_location_fields) ]
23
25
#![ feature( core_intrinsics) ]
24
26
#![ feature( core_private_bignum) ]
25
27
#![ feature( core_private_diy_float) ]
@@ -131,6 +133,7 @@ mod nonzero;
131
133
mod num;
132
134
mod ops;
133
135
mod option;
136
+ mod panic;
134
137
mod pattern;
135
138
mod pin;
136
139
mod pin_macro;
Original file line number Diff line number Diff line change
1
+ mod location;
Original file line number Diff line number Diff line change
1
+ use core:: panic:: Location ;
2
+
3
+ // Note: Some of the following tests depend on the source location,
4
+ // so please be careful when editing this file.
5
+
6
+ #[ test]
7
+ fn location_const_caller ( ) {
8
+ const _CALLER_REFERENCE: & Location < ' static > = Location :: caller ( ) ;
9
+ const _CALLER: Location < ' static > = * Location :: caller ( ) ;
10
+ }
11
+
12
+ #[ test]
13
+ fn location_const_file ( ) {
14
+ const CALLER : & Location < ' static > = Location :: caller ( ) ;
15
+ const FILE : & str = CALLER . file ( ) ;
16
+ assert_eq ! ( FILE , file!( ) ) ;
17
+ }
18
+
19
+ #[ test]
20
+ fn location_const_line ( ) {
21
+ const CALLER : & Location < ' static > = Location :: caller ( ) ;
22
+ const LINE : u32 = CALLER . line ( ) ;
23
+ assert_eq ! ( LINE , 21 ) ;
24
+ }
25
+
26
+ #[ test]
27
+ fn location_const_column ( ) {
28
+ const CALLER : & Location < ' static > = Location :: caller ( ) ;
29
+ const COLUMN : u32 = CALLER . column ( ) ;
30
+ assert_eq ! ( COLUMN , 40 ) ;
31
+ }
You can’t perform that action at this time.
0 commit comments