File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -62,34 +62,10 @@ pub fn ignore[T](t : T) -> Unit = "%ignore"
6262pub fn physical_equal[T ](a : T , b : T ) -> Bool = " %refeq "
6363
6464///|
65- /// Aborts the program with an error message. Always causes a panic, regardless
66- /// of the message provided.
67- ///
68- /// Parameters:
69- ///
70- /// * `message` : A string containing the error message to be displayed when
71- /// aborting.
72- ///
73- /// Returns a value of type `T`. However, this function never actually returns a
74- /// value as it always causes a panic.
75- ///
76- /// Example:
77- ///
78- /// ```moonbit
79- /// test "panic abort/with_message" {
80- /// let x : Int = abort("Something went wrong") // specify return type as Int
81- /// ignore(x)
82- /// }
83- /// ```
84- pub fn abort[T ](msg : String ) -> T {
85- ignore(msg)
86- panic()
87- }
65+ pub fnalias @panic.panic
8866
8967///|
90- pub fn panic[T ]() -> T = " %panic "
91-
92- // Bool primitive ops
68+ pub fnalias @panic.abort
9369
9470///|
9571/// Performs logical negation on a boolean value.
Original file line number Diff line number Diff line change 11{
2- "import" : [],
2+ "import" : [
3+ " moonbitlang/core/panic"
4+ ],
35 "test-import" : [
46 " moonbitlang/core/char" ,
57 " moonbitlang/core/string" ,
Original file line number Diff line number Diff line change 1+ // Copyright 2025 International Digital Economy Academy
2+ //
3+ // Licensed under the Apache License, Version 2.0 (the "License");
4+ // you may not use this file except in compliance with the License.
5+ // You may obtain a copy of the License at
6+ //
7+ // http://www.apache.org/licenses/LICENSE-2.0
8+ //
9+ // Unless required by applicable law or agreed to in writing, software
10+ // distributed under the License is distributed on an "AS IS" BASIS,
11+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ // See the License for the specific language governing permissions and
13+ // limitations under the License.
14+
15+ ///|
16+ pub fn unreachable[T ]() -> T = " %panic "
Original file line number Diff line number Diff line change 1+ package "moonbitlang/core/intrinsics"
2+
3+ // Values
4+ fn unreachable[T]() -> T
5+
6+ // Types and methods
7+
8+ // Type aliases
9+
10+ // Traits
11+
Original file line number Diff line number Diff line change 1+ {}
Original file line number Diff line number Diff line change 1+ {
2+ "import" : [
3+ " moonbitlang/core/intrinsics"
4+ ],
5+ "virtual" : {
6+ "has-default" : true
7+ }
8+ }
Original file line number Diff line number Diff line change 1+ // Copyright 2025 International Digital Economy Academy
2+ //
3+ // Licensed under the Apache License, Version 2.0 (the "License");
4+ // you may not use this file except in compliance with the License.
5+ // You may obtain a copy of the License at
6+ //
7+ // http://www.apache.org/licenses/LICENSE-2.0
8+ //
9+ // Unless required by applicable law or agreed to in writing, software
10+ // distributed under the License is distributed on an "AS IS" BASIS,
11+ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+ // See the License for the specific language governing permissions and
13+ // limitations under the License.
14+
15+ ///|
16+ /// Aborts the program. Always causes a panic, regardless of the message provided.
17+ ///
18+ /// Returns a value of type `T`. However, this function never actually returns a
19+ /// value as it always causes a panic.
20+ pub fn abort[T ](msg : String ) -> T {
21+ let _ = msg
22+ panic()
23+ }
24+
25+ ///|
26+ pub fn panic[T ]() -> T {
27+ @intrinsics.unreachable()
28+ }
Original file line number Diff line number Diff line change 1+ package "moonbitlang/core/panic"
2+
3+ // Values
4+ fn abort[T](String) -> T
5+
6+ fn panic[T]() -> T
7+
8+ // Types and methods
9+
10+ // Type aliases
11+
12+ // Traits
13+
You can’t perform that action at this time.
0 commit comments