aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2023-08-13 11:51:12 +0200
committerDanielGavin <danielgavin5@hotmail.com>2023-08-13 11:51:12 +0200
commite7cb3d369ff63acac1ba6a4e3ee17194df96ecd0 (patch)
tree1fd088bd1411f775967e46675b94307be894fb45
parenta67fe36cf772653f75f865c997818fcb3915f2f4 (diff)
Add support for tag stmts.
-rw-r--r--src/odin/printer/visit.odin11
-rw-r--r--src/server/analysis.odin4
2 files changed, 13 insertions, 2 deletions
diff --git a/src/odin/printer/visit.odin b/src/odin/printer/visit.odin
index 53ee19c..da17bc5 100644
--- a/src/odin/printer/visit.odin
+++ b/src/odin/printer/visit.odin
@@ -937,6 +937,17 @@ visit_stmt :: proc(
comments := move_line(p, stmt.pos)
#partial switch v in stmt.derived {
+ case ^ast.Tag_Stmt:
+ //Hack to fix a bug in the odin parser
+ v.end = v.stmt.end
+
+ document = cons(
+ document,
+ text(v.op.text),
+ text(v.name),
+ break_with_no_newline(),
+ visit_stmt(p, v.stmt),
+ )
case ^Using_Stmt:
document = cons(
document,
diff --git a/src/server/analysis.odin b/src/server/analysis.odin
index 630110f..c9ec923 100644
--- a/src/server/analysis.odin
+++ b/src/server/analysis.odin
@@ -3555,7 +3555,7 @@ get_locals_if_stmt :: proc(
return
}
- get_locals_stmt(file, stmt.init, ast_context, document_position, true)
+ get_locals_stmt(file, stmt.init, ast_context, document_position, false)
get_locals_stmt(file, stmt.body, ast_context, document_position)
get_locals_stmt(file, stmt.else_stmt, ast_context, document_position)
}
@@ -3752,7 +3752,7 @@ get_locals_for_stmt :: proc(
return
}
- get_locals_stmt(file, stmt.init, ast_context, document_position, true)
+ get_locals_stmt(file, stmt.init, ast_context, document_position, false)
get_locals_stmt(file, stmt.body, ast_context, document_position)
}