mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-29 19:00:06 +00:00
Update core:odin/* for or_else and or_return
This commit is contained in:
+15
-11
@@ -241,15 +241,6 @@ Field_Value :: struct {
|
||||
value: ^Expr,
|
||||
}
|
||||
|
||||
Ternary_Expr :: struct {
|
||||
using node: Expr,
|
||||
cond: ^Expr,
|
||||
op1: tokenizer.Token,
|
||||
x: ^Expr,
|
||||
op2: tokenizer.Token,
|
||||
y: ^Expr,
|
||||
}
|
||||
|
||||
Ternary_If_Expr :: struct {
|
||||
using node: Expr,
|
||||
x: ^Expr,
|
||||
@@ -261,13 +252,26 @@ Ternary_If_Expr :: struct {
|
||||
|
||||
Ternary_When_Expr :: struct {
|
||||
using node: Expr,
|
||||
x: ^Expr,
|
||||
x: ^Expr,
|
||||
op1: tokenizer.Token,
|
||||
cond: ^Expr,
|
||||
op2: tokenizer.Token,
|
||||
y: ^Expr,
|
||||
}
|
||||
|
||||
Or_Else_Expr :: struct {
|
||||
using node: Expr,
|
||||
x: ^Expr,
|
||||
token: tokenizer.Token,
|
||||
y: ^Expr,
|
||||
}
|
||||
|
||||
Or_Return_Expr :: struct {
|
||||
using node: Expr,
|
||||
expr: ^Expr,
|
||||
token: tokenizer.Token,
|
||||
}
|
||||
|
||||
Type_Assertion :: struct {
|
||||
using node: Expr,
|
||||
expr: ^Expr,
|
||||
@@ -542,7 +546,7 @@ Field_Flag :: enum {
|
||||
No_Alias,
|
||||
C_Vararg,
|
||||
Auto_Cast,
|
||||
In,
|
||||
Any_Int,
|
||||
|
||||
Results,
|
||||
Tags,
|
||||
|
||||
@@ -129,10 +129,6 @@ clone_node :: proc(node: ^Node) -> ^Node {
|
||||
case Field_Value:
|
||||
r.field = clone(r.field);
|
||||
r.value = clone(r.value);
|
||||
case Ternary_Expr:
|
||||
r.cond = clone(r.cond);
|
||||
r.x = clone(r.x);
|
||||
r.y = clone(r.y);
|
||||
case Ternary_If_Expr:
|
||||
r.x = clone(r.x);
|
||||
r.cond = clone(r.cond);
|
||||
@@ -141,6 +137,11 @@ clone_node :: proc(node: ^Node) -> ^Node {
|
||||
r.x = clone(r.x);
|
||||
r.cond = clone(r.cond);
|
||||
r.y = clone(r.y);
|
||||
case Or_Else_Expr:
|
||||
r.x = clone(r.x);
|
||||
r.y = clone(r.y);
|
||||
case Or_Return_Expr:
|
||||
r.expr = clone(r.expr);
|
||||
case Type_Assertion:
|
||||
r.expr = clone(r.expr);
|
||||
r.type = clone(r.type);
|
||||
|
||||
@@ -126,10 +126,6 @@ walk :: proc(v: ^Visitor, node: ^Node) {
|
||||
case Field_Value:
|
||||
walk(v, n.field);
|
||||
walk(v, n.value);
|
||||
case Ternary_Expr:
|
||||
walk(v, n.cond);
|
||||
walk(v, n.x);
|
||||
walk(v, n.y);
|
||||
case Ternary_If_Expr:
|
||||
walk(v, n.x);
|
||||
walk(v, n.cond);
|
||||
@@ -138,6 +134,11 @@ walk :: proc(v: ^Visitor, node: ^Node) {
|
||||
walk(v, n.x);
|
||||
walk(v, n.cond);
|
||||
walk(v, n.y);
|
||||
case Or_Else_Expr:
|
||||
walk(v, n.x);
|
||||
walk(v, n.y);
|
||||
case Or_Return_Expr:
|
||||
walk(v, n.expr);
|
||||
case Type_Assertion:
|
||||
walk(v, n.expr);
|
||||
if n.type != nil {
|
||||
|
||||
Reference in New Issue
Block a user