authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-22 23:24:09-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-22 23:24:09-07:00
logbfceb186319f52011762129c879abbe27eaa0161
treec6d875f2168c925ec6ffa15412be849c4a35c55d
parente269caae02778c5b15a101c42d2d2d5150af59c8

character literal returns a number literal


4 files changed, 14 insertions(+), 25 deletions(-)

src/analyze.cpp+2-1
......@@ -3648,7 +3648,8 @@ static TypeTableEntry *analyze_expression(CodeGen *g, ImportTableEntry *import,
36483648 return_type = analyze_string_literal_expr(g, import, context, expected_type, node);
36493649 break;
36503650 case NodeTypeCharLiteral:
3651 return_type = g->builtin_types.entry_u8;
3651 return_type = resolve_expr_const_val_as_unsigned_num_lit(g, node, expected_type,
3652 node->data.char_literal.value);
36523653 break;
36533654 case NodeTypeBoolLiteral:
36543655 return_type = resolve_expr_const_val_as_bool(g, node, node->data.bool_literal.value);
src/codegen.cpp+4-16
......@@ -1828,12 +1828,6 @@ static LLVMValueRef gen_var_decl_expr(CodeGen *g, AstNode *node) {
18281828 get_resolved_expr(node)->block_context, false, &init_val);
18291829}
18301830
1831static LLVMValueRef gen_error_literal(CodeGen *g, AstNode *node) {
1832 assert(node->type == NodeTypeErrorLiteral);
1833
1834 zig_panic("TODO gen_error_literal");
1835}
1836
18371831static LLVMValueRef gen_symbol(CodeGen *g, AstNode *node) {
18381832 assert(node->type == NodeTypeSymbol);
18391833 VariableTableEntry *variable = node->data.symbol_expr.variable;
......@@ -1953,12 +1947,6 @@ static LLVMValueRef gen_expr(CodeGen *g, AstNode *node) {
19531947 return gen_slice_expr(g, node);
19541948 case NodeTypeFieldAccessExpr:
19551949 return gen_field_access_expr(g, node, false);
1956 case NodeTypeNullLiteral:
1957 // caught by constant expression eval codegen
1958 zig_unreachable();
1959 case NodeTypeUndefinedLiteral:
1960 // caught by constant expression eval codegen
1961 zig_unreachable();
19621950 case NodeTypeIfBoolExpr:
19631951 return gen_if_bool_expr(g, node);
19641952 case NodeTypeIfVarExpr:
......@@ -1969,10 +1957,6 @@ static LLVMValueRef gen_expr(CodeGen *g, AstNode *node) {
19691957 return gen_for_expr(g, node);
19701958 case NodeTypeAsmExpr:
19711959 return gen_asm_expr(g, node);
1972 case NodeTypeErrorLiteral:
1973 return gen_error_literal(g, node);
1974 case NodeTypeCharLiteral:
1975 return LLVMConstInt(LLVMInt8Type(), node->data.char_literal.value, false);
19761960 case NodeTypeSymbol:
19771961 return gen_symbol(g, node);
19781962 case NodeTypeBlock:
......@@ -2000,9 +1984,13 @@ static LLVMValueRef gen_expr(CodeGen *g, AstNode *node) {
20001984 return gen_container_init_expr(g, node);
20011985 case NodeTypeSwitchExpr:
20021986 return gen_switch_expr(g, node);
1987 case NodeTypeErrorLiteral:
20031988 case NodeTypeNumberLiteral:
20041989 case NodeTypeBoolLiteral:
20051990 case NodeTypeStringLiteral:
1991 case NodeTypeCharLiteral:
1992 case NodeTypeNullLiteral:
1993 case NodeTypeUndefinedLiteral:
20061994 // caught by constant expression eval codegen
20071995 zig_unreachable();
20081996 case NodeTypeRoot:
std/rand.zig+3-3
......@@ -1,16 +1,16 @@
11// Mersenne Twister
2const ARRAY_SIZE : i16 = 624;
2const ARRAY_SIZE = 624;
33
44/// Use `rand_init` to initialize this state.
55pub struct Rand {
66 array: [ARRAY_SIZE]u32,
7 index: @typeof(ARRAY_SIZE),
7 index: isize,
88
99 /// Initialize random state with the given seed.
1010 pub fn init(r: &Rand, seed: u32) => {
1111 r.index = 0;
1212 r.array[0] = seed;
13 var i : @typeof(ARRAY_SIZE) = 1;
13 var i : isize = 1;
1414 var prev_value: u64 = seed;
1515 while (i < ARRAY_SIZE) {
1616 r.array[i] = u32((prev_value ^ (prev_value << 30)) * 0x6c078965 + u32(i));
std/std.zig+5-5
......@@ -1,9 +1,9 @@
11import "syscall.zig";
22import "errno.zig";
33
4pub const stdin_fileno : isize = 0;
5pub const stdout_fileno : isize = 1;
6pub const stderr_fileno : isize = 2;
4pub const stdin_fileno = 0;
5pub const stdout_fileno = 1;
6pub const stderr_fileno = 2;
77
88/*
99pub var stdin = InStream {
......@@ -34,8 +34,8 @@ pub %.BadPerm;
3434pub %.PipeFail;
3535*/
3636
37//const buffer_size = 4 * 1024;
38const max_u64_base10_digits: isize = 20;
37const buffer_size = 4 * 1024;
38const max_u64_base10_digits = 20;
3939
4040/*
4141pub struct OutStream {