Browse Source

Fix using on array in struct

gingerBill 5 years ago
parent
commit
995ba0df9a
2 changed files with 5 additions and 1 deletions
  1. 4 0
      src/check_type.cpp
  2. 1 1
      src/types.cpp

+ 4 - 0
src/check_type.cpp

@@ -80,15 +80,19 @@ void populate_using_entity_scope(CheckerContext *ctx, Ast *node, AstField *field
 		switch (t->Array.count) {
 		case 4:
 			populate_using_array_index(ctx, node, field, t, str_lit("w"), 3);
+			populate_using_array_index(ctx, node, field, t, str_lit("a"), 3);
 			/*fallthrough*/
 		case 3:
 			populate_using_array_index(ctx, node, field, t, str_lit("z"), 2);
+			populate_using_array_index(ctx, node, field, t, str_lit("b"), 2);
 			/*fallthrough*/
 		case 2:
 			populate_using_array_index(ctx, node, field, t, str_lit("y"), 1);
+			populate_using_array_index(ctx, node, field, t, str_lit("g"), 1);
 			/*fallthrough*/
 		case 1:
 			populate_using_array_index(ctx, node, field, t, str_lit("x"), 0);
+			populate_using_array_index(ctx, node, field, t, str_lit("r"), 0);
 			/*fallthrough*/
 		default:
 			break;

+ 1 - 1
src/types.cpp

@@ -3211,7 +3211,7 @@ gbString write_type_to_string(gbString str, Type *type) {
 		if (type->SimdVector.is_x86_mmx) {
 			return "intrinsics.x86_mmx";
 		} else {
-			str = gb_string_append_fmt(str, "#vector[%d]", cast(int)type->SimdVector.count);
+			str = gb_string_append_fmt(str, "#simd[%d]", cast(int)type->SimdVector.count);
 			str = write_type_to_string(str, type->SimdVector.elem);
 		}
 		break;