aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2017-12-12 23:39:20 +0000
committergingerBill <bill@gingerbill.org>2017-12-12 23:39:20 +0000
commit367013f589b2ae87a0b83410bc4ea770e1263157 (patch)
tree74683b63a606055a6fd8ae172de428c5fd4c2ece /src/check_expr.cpp
parentc980a30bad9fc98c21e4ea36b4e27568650cd601 (diff)
Change Map and PtrSet grow rate
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index b153b65a3..9981a4543 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -5054,13 +5054,13 @@ ExprKind check_expr_base_internal(Checker *c, Operand *o, AstNode *node, Type *t
case_ast_node(bl, BasicLit, node);
Type *t = t_invalid;
- switch (bl->kind) {
+ switch (bl->token.kind) {
case Token_Integer: t = t_untyped_integer; break;
case Token_Float: t = t_untyped_float; break;
case Token_String: t = t_untyped_string; break;
case Token_Rune: t = t_untyped_rune; break;
case Token_Imag: {
- String s = bl->string;
+ String s = bl->token.string;
Rune r = s[s.len-1];
switch (r) {
case 'i': t = t_untyped_complex; break;
@@ -5072,7 +5072,7 @@ ExprKind check_expr_base_internal(Checker *c, Operand *o, AstNode *node, Type *t
}
o->mode = Addressing_Constant;
o->type = t;
- o->value = exact_value_from_basic_literal(*bl);
+ o->value = exact_value_from_basic_literal(bl->token);
case_end;
case_ast_node(bd, BasicDirective, node);
@@ -5429,7 +5429,6 @@ ExprKind check_expr_base_internal(Checker *c, Operand *o, AstNode *node, Type *t
}
for (; index < elem_count; index++) {
- GB_ASSERT(cl->elems.data != nullptr);
AstNode *e = cl->elems[index];
if (e == nullptr) {
error(node, "Invalid literal element");
@@ -5449,9 +5448,7 @@ ExprKind check_expr_base_internal(Checker *c, Operand *o, AstNode *node, Type *t
check_expr_with_type_hint(c, &operand, e, elem_type);
check_assignment(c, &operand, elem_type, context_name);
- if (is_constant) {
- is_constant = operand.mode == Addressing_Constant;
- }
+ is_constant = is_constant && operand.mode == Addressing_Constant;
}
if (max < index) {
max = index;
@@ -6093,7 +6090,7 @@ gbString write_expr_to_string(gbString str, AstNode *node) {
case_end;
case_ast_node(bl, BasicLit, node);
- str = string_append_token(str, *bl);
+ str = string_append_token(str, bl->token);
case_end;
case_ast_node(bd, BasicDirective, node);