Rename `x T` to `x: T` for vars
diff --git a/lang/check/check_test.go b/lang/check/check_test.go
index b052361..8db41ef 100644
--- a/lang/check/check_test.go
+++ b/lang/check/check_test.go
@@ -64,14 +64,14 @@
)
pri func foo.bar() {
- var x base.u8
- var y base.i32
- var z base.u64[..= 123]
- var a array[4] base.u8
- var b base.bool
+ var x : base.u8
+ var y : base.i32
+ var z : base.u64[..= 123]
+ var a : array[4] base.u8
+ var b : base.bool
- var p base.i32
- var q base.i32[0 ..= 8]
+ var p : base.i32
+ var q : base.i32[0 ..= 8]
x = 0
x = 1 + (x * 0)
@@ -206,9 +206,9 @@
for s, wantInt64 := range testCases {
src := "pri func foo() {\n"
if s[0] == 'b' {
- src += "var b base.bool\n"
+ src += "var b : base.bool\n"
} else {
- src += "var i base.i32\n"
+ src += "var i : base.i32\n"
}
src += s + "\n}\n"
diff --git a/lang/parse/parse.go b/lang/parse/parse.go
index 73fda31..5f443b9 100644
--- a/lang/parse/parse.go
+++ b/lang/parse/parse.go
@@ -1038,6 +1038,11 @@
if err != nil {
return nil, err
}
+ if x := p.peek1(); x != t.IDColon {
+ got := p.tm.ByID(x)
+ return nil, fmt.Errorf(`parse: expected ":", got %q at %s:%d`, got, p.filename, p.line())
+ }
+ p.src = p.src[1:]
typ, err := p.parseTypeExpr()
if err != nil {
return nil, err
diff --git a/std/adler32/common_adler32.wuffs b/std/adler32/common_adler32.wuffs
index c0f0733..cecee49 100644
--- a/std/adler32/common_adler32.wuffs
+++ b/std/adler32/common_adler32.wuffs
@@ -22,10 +22,10 @@
// The Adler-32 checksum's magic 65521 and 5552 numbers are discussed in
// this package's README.md.
- var s1 base.u32
- var s2 base.u32
- var remaining slice base.u8
- var p slice base.u8
+ var s1 : base.u32
+ var s2 : base.u32
+ var remaining : slice base.u8
+ var p : slice base.u8
if not this.started {
this.started = true
diff --git a/std/crc32/common_crc32.wuffs b/std/crc32/common_crc32.wuffs
index 2de80ca..d86bea9 100644
--- a/std/crc32/common_crc32.wuffs
+++ b/std/crc32/common_crc32.wuffs
@@ -21,8 +21,8 @@
// to signal "initializer not called"? Should the return type, in the generated
// C code, be "struct{ uint32_t checksum; wuffs_crc32__status status }"?
pub func ieee_hasher.update!(x: slice base.u8) base.u32 {
- var s base.u32
- var p slice base.u8
+ var s : base.u32
+ var p : slice base.u8
s = 0xFFFFFFFF ^ this.state
diff --git a/std/deflate/decode_deflate.wuffs b/std/deflate/decode_deflate.wuffs
index d21e904..2b233bb 100644
--- a/std/deflate/decode_deflate.wuffs
+++ b/std/deflate/decode_deflate.wuffs
@@ -135,9 +135,9 @@
)
pub func decoder.add_history!(hist: slice base.u8) {
- var s slice base.u8
- var n_copied base.u64
- var already_full base.u32[..= 0x8000]
+ var s : slice base.u8
+ var n_copied : base.u64
+ var already_full : base.u32[..= 0x8000]
s = args.hist
if s.length() >= 0x8000 {
@@ -184,8 +184,8 @@
}
pub func decoder.decode_io_writer?(dst: base.io_writer, src: base.io_reader, workbuf: slice base.u8) {
- var mark base.u64
- var status base.status
+ var mark : base.u64
+ var status : base.status
while true {
mark = args.dst.mark()
@@ -202,10 +202,10 @@
}
pri func decoder.decode_blocks?(dst: base.io_writer, src: base.io_reader) {
- var final base.u32
- var b0 base.u32[..= 255]
- var type base.u32
- var status base.status
+ var final : base.u32
+ var b0 : base.u32[..= 255]
+ var type : base.u32
+ var status : base.status
while.outer final == 0 {
while this.n_bits < 3,
@@ -260,8 +260,8 @@
// decode_uncompressed decodes an uncompresed block as per the RFC section
// 3.2.4.
pri func decoder.decode_uncompressed?(dst: base.io_writer, src: base.io_reader) {
- var length base.u32
- var n_copied base.u32
+ var length : base.u32
+ var n_copied : base.u32
// TODO: make this "if" into a function invariant?
//
@@ -293,8 +293,8 @@
// init_fixed_huffman initializes this.huffs as per the RFC section 3.2.6.
pri func decoder.init_fixed_huffman!() base.status {
- var i base.u32
- var status base.status
+ var i : base.u32
+ var status : base.status
while i < 144 {
this.code_lengths[i] = 8
@@ -330,23 +330,23 @@
// init_dynamic_huffman initializes this.huffs as per the RFC section 3.2.7.
pri func decoder.init_dynamic_huffman?(src: base.io_reader) {
- var bits base.u32
- var n_bits base.u32
- var b0 base.u32[..= 255]
- var n_lit base.u32[..= 288]
- var n_dist base.u32[..= 32]
- var n_clen base.u32[..= 19]
- var i base.u32
- var b1 base.u32[..= 255]
- var status base.status
- var mask base.u32[..= 511]
- var table_entry base.u32
- var table_entry_n_bits base.u32[..= 15]
- var b2 base.u32[..= 255]
- var n_extra_bits base.u32[..= 7]
- var rep_symbol base.u8[..= 15]
- var rep_count base.u32
- var b3 base.u32[..= 255]
+ var bits : base.u32
+ var n_bits : base.u32
+ var b0 : base.u32[..= 255]
+ var n_lit : base.u32[..= 288]
+ var n_dist : base.u32[..= 32]
+ var n_clen : base.u32[..= 19]
+ var i : base.u32
+ var b1 : base.u32[..= 255]
+ var status : base.status
+ var mask : base.u32[..= 511]
+ var table_entry : base.u32
+ var table_entry_n_bits : base.u32[..= 15]
+ var b2 : base.u32[..= 255]
+ var n_extra_bits : base.u32[..= 7]
+ var rep_symbol : base.u8[..= 15]
+ var rep_count : base.u32
+ var b3 : base.u32[..= 255]
bits = this.bits
n_bits = this.n_bits
@@ -507,30 +507,30 @@
// TODO: make named constants for 15, 19, 319, etc.
pri func decoder.init_huff!(which: base.u32[..= 1], n_codes0: base.u32[..= 288], n_codes1: base.u32[..= 320], base_symbol: base.u32) base.status {
- var counts array[16] base.u16[..= 320]
- var i base.u32
- var remaining base.u32
- var offsets array[16] base.u16[..= 320]
- var n_symbols base.u32[..= 320]
- var count base.u32[..= 320]
- var symbols array[320] base.u16[..= 319]
- var min_cl base.u32[..= 9]
- var max_cl base.u32[..= 15]
- var initial_high_bits base.u32
- var prev_cl base.u32[..= 15]
- var prev_redirect_key base.u32
- var top base.u32[..= huffs_table_size]
- var next_top base.u32[..= huffs_table_size]
- var code base.u32
- var key base.u32
- var value base.u32
- var cl base.u32[..= 15]
- var redirect_key base.u32[..= 511]
- var j base.u32[..= 16]
- var reversed_key base.u32[..= 511]
- var symbol base.u32[..= 319]
- var high_bits base.u32
- var delta base.u32
+ var counts : array[16] base.u16[..= 320]
+ var i : base.u32
+ var remaining : base.u32
+ var offsets : array[16] base.u16[..= 320]
+ var n_symbols : base.u32[..= 320]
+ var count : base.u32[..= 320]
+ var symbols : array[320] base.u16[..= 319]
+ var min_cl : base.u32[..= 9]
+ var max_cl : base.u32[..= 15]
+ var initial_high_bits : base.u32
+ var prev_cl : base.u32[..= 15]
+ var prev_redirect_key : base.u32
+ var top : base.u32[..= huffs_table_size]
+ var next_top : base.u32[..= huffs_table_size]
+ var code : base.u32
+ var key : base.u32
+ var value : base.u32
+ var cl : base.u32[..= 15]
+ var redirect_key : base.u32[..= 511]
+ var j : base.u32[..= 16]
+ var reversed_key : base.u32[..= 511]
+ var symbol : base.u32[..= 319]
+ var high_bits : base.u32
+ var delta : base.u32
// For the clcode example in this package's README.md:
// - n_codes0 = 0
diff --git a/std/deflate/decode_huffman_fast.wuffs b/std/deflate/decode_huffman_fast.wuffs
index da55c38..3d9185b 100644
--- a/std/deflate/decode_huffman_fast.wuffs
+++ b/std/deflate/decode_huffman_fast.wuffs
@@ -20,19 +20,19 @@
// decode_huffman_*.wuffs files as small as possible, while retaining both
// correctness and performance.
- var bits base.u32
- var n_bits base.u32
- var table_entry base.u32
- var table_entry_n_bits base.u32[..= 15]
- var lmask base.u32[..= 511]
- var dmask base.u32[..= 511]
- var redir_top base.u32[..= 0xFFFF]
- var redir_mask base.u32[..= 0x7FFF]
- var length base.u32[..= 258]
- var dist_minus_1 base.u32[..= 0x7FFF]
- var n_copied base.u32
- var hlen base.u32[..= 0x7FFF]
- var hdist base.u32
+ var bits : base.u32
+ var n_bits : base.u32
+ var table_entry : base.u32
+ var table_entry_n_bits : base.u32[..= 15]
+ var lmask : base.u32[..= 511]
+ var dmask : base.u32[..= 511]
+ var redir_top : base.u32[..= 0xFFFF]
+ var redir_mask : base.u32[..= 0x7FFF]
+ var length : base.u32[..= 258]
+ var dist_minus_1 : base.u32[..= 0x7FFF]
+ var n_copied : base.u32
+ var hlen : base.u32[..= 0x7FFF]
+ var hdist : base.u32
if (this.n_bits >= 8) or ((this.bits >> (this.n_bits & 7)) <> 0) {
return "#internal error: inconsistent n_bits"
diff --git a/std/deflate/decode_huffman_slow.wuffs b/std/deflate/decode_huffman_slow.wuffs
index 58472bf..fb2fed0 100644
--- a/std/deflate/decode_huffman_slow.wuffs
+++ b/std/deflate/decode_huffman_slow.wuffs
@@ -13,25 +13,25 @@
// limitations under the License.
pri func decoder.decode_huffman_slow?(dst: base.io_writer, src: base.io_reader) {
- var bits base.u32
- var n_bits base.u32
- var table_entry base.u32
- var table_entry_n_bits base.u32[..= 15]
- var lmask base.u32[..= 511]
- var dmask base.u32[..= 511]
- var b0 base.u32[..= 255]
- var redir_top base.u32[..= 0xFFFF]
- var redir_mask base.u32[..= 0x7FFF]
- var b1 base.u32[..= 255]
- var length base.u32[..= 258]
- var b2 base.u32[..= 255]
- var b3 base.u32[..= 255]
- var b4 base.u32[..= 255]
- var dist_minus_1 base.u32[..= 0x7FFF]
- var b5 base.u32[..= 255]
- var n_copied base.u32
- var hlen base.u32[..= 0x7FFF]
- var hdist base.u32
+ var bits : base.u32
+ var n_bits : base.u32
+ var table_entry : base.u32
+ var table_entry_n_bits : base.u32[..= 15]
+ var lmask : base.u32[..= 511]
+ var dmask : base.u32[..= 511]
+ var b0 : base.u32[..= 255]
+ var redir_top : base.u32[..= 0xFFFF]
+ var redir_mask : base.u32[..= 0x7FFF]
+ var b1 : base.u32[..= 255]
+ var length : base.u32[..= 258]
+ var b2 : base.u32[..= 255]
+ var b3 : base.u32[..= 255]
+ var b4 : base.u32[..= 255]
+ var dist_minus_1 : base.u32[..= 0x7FFF]
+ var b5 : base.u32[..= 255]
+ var n_copied : base.u32
+ var hlen : base.u32[..= 0x7FFF]
+ var hdist : base.u32
// When editing this function, consider making the equivalent change to the
// decode_huffman_fast function. Keep the diff between the two
diff --git a/std/gif/decode_gif.wuffs b/std/gif/decode_gif.wuffs
index 84ab916..271084c 100644
--- a/std/gif/decode_gif.wuffs
+++ b/std/gif/decode_gif.wuffs
@@ -252,7 +252,7 @@
}
pub func decoder.decode_image_config?(dst: nptr base.image_config, src: base.io_reader) {
- var ffio base.bool
+ var ffio : base.bool
if this.call_sequence == 0 {
this.decode_header?(src: args.src)
@@ -398,9 +398,9 @@
}
pub func decoder.decode_frame_config?(dst: nptr base.frame_config, src: base.io_reader) {
- var blend base.u8
- var background_color base.u32
- var flags base.u8
+ var blend : base.u8
+ var background_color : base.u32
+ var flags : base.u8
this.ignore_metadata = true
this.dirty_max_excl_y = 0
@@ -469,8 +469,8 @@
}
pri func decoder.skip_frame?(src: base.io_reader) {
- var flags base.u8
- var lw base.u8
+ var flags : base.u8
+ var lw : base.u8
// Skip the optional Local Color Table, 3 bytes (RGB) per entry.
flags = args.src.read_u8?()
@@ -523,7 +523,7 @@
}
pri func decoder.decode_up_to_id_part1?(src: base.io_reader) {
- var block_type base.u8
+ var block_type : base.u8
if not this.restarted {
if this.call_sequence <> 2 {
@@ -563,8 +563,8 @@
//
// See the spec section 17 "Header" on page 7.
pri func decoder.decode_header?(src: base.io_reader) {
- var c array[6] base.u8
- var i base.u32
+ var c : array[6] base.u8
+ var i : base.u32
while i < 6 {
c[i] = args.src.read_u8?()
@@ -580,12 +580,12 @@
//
// See the spec section 18 "Logical Screen Descriptor" on page 8.
pri func decoder.decode_lsd?(src: base.io_reader) {
- var flags base.u8
- var background_color_index base.u8
- var num_palette_entries base.u32[..= 256]
- var i base.u32
- var j base.u32[..= 1020]
- var argb base.u32
+ var flags : base.u8
+ var background_color_index : base.u8
+ var num_palette_entries : base.u32[..= 256]
+ var i : base.u32
+ var j : base.u32[..= 1020]
+ var argb : base.u32
this.width = args.src.read_u16le_as_u32?()
this.height = args.src.read_u16le_as_u32?()
@@ -651,7 +651,7 @@
// - section 25 "Plain Text Extension" on page 18.
// - section 26 "Application Extension" on page 21.
pri func decoder.decode_extension?(src: base.io_reader) {
- var label base.u8
+ var label : base.u8
label = args.src.read_u8?()
if label == 0xF9 { // The spec calls 0xF9 the "Graphic Control Label".
@@ -667,7 +667,7 @@
}
pri func decoder.skip_blocks?(src: base.io_reader) {
- var block_size base.u8
+ var block_size : base.u8
while true {
block_size = args.src.read_u8?()
@@ -700,12 +700,12 @@
// decode_ae reads an Application Extension.
pri func decoder.decode_ae?(src: base.io_reader) {
- var c base.u8
- var block_size base.u8
- var is_animexts base.bool
- var is_netscape base.bool
- var is_iccp base.bool
- var is_xmp base.bool
+ var c : base.u8
+ var block_size : base.u8
+ var is_animexts : base.bool
+ var is_netscape : base.bool
+ var is_iccp : base.bool
+ var is_xmp : base.bool
// This "while true" always executes exactly once, as it ends with a
// "break", but using "break"s throughout simplifies the control flow.
@@ -813,9 +813,9 @@
// decode_gc reads a Graphic Control.
pri func decoder.decode_gc?(src: base.io_reader) {
- var c base.u8
- var flags base.u8
- var gc_duration_centiseconds base.u16
+ var c : base.u8
+ var flags : base.u8
+ var gc_duration_centiseconds : base.u16
c = args.src.read_u8?()
if c <> 4 {
@@ -888,14 +888,14 @@
}
pri func decoder.decode_id_part1?(dst: ptr base.pixel_buffer, src: base.io_reader) {
- var flags base.u8
- var which_palette base.u8[..= 1]
- var num_palette_entries base.u32[..= 256]
- var i base.u32
- var argb base.u32
- var dst_palette slice base.u8
- var status base.status
- var lw base.u8
+ var flags : base.u8
+ var which_palette : base.u8[..= 1]
+ var num_palette_entries : base.u32[..= 256]
+ var i : base.u32
+ var argb : base.u32
+ var dst_palette : slice base.u8
+ var status : base.status
+ var lw : base.u8
flags = args.src.read_u8?()
if (flags & 0x40) <> 0 {
@@ -993,15 +993,15 @@
}
pri func decoder.decode_id_part2?(dst: ptr base.pixel_buffer, src: base.io_reader, workbuf: slice base.u8) {
- var block_size base.u64[..= 255]
- var need_block_size base.bool
- var n_compressed base.u64
- var compressed slice base.u8
- var r base.io_reader
- var mark base.u64
- var lzw_status base.status
- var copy_status base.status
- var uncompressed slice base.u8
+ var block_size : base.u64[..= 255]
+ var need_block_size : base.bool
+ var n_compressed : base.u64
+ var compressed : slice base.u8
+ var r : base.io_reader
+ var mark : base.u64
+ var lzw_status : base.status
+ var copy_status : base.status
+ var uncompressed : slice base.u8
need_block_size = true
while.outer true {
@@ -1094,20 +1094,20 @@
pri func decoder.copy_to_image_buffer!(pb: ptr base.pixel_buffer, src: slice base.u8) base.status {
// TODO: don't assume an interleaved pixel format.
- var dst slice base.u8
- var src slice base.u8
- var width_in_bytes base.u64
- var n base.u64
- var src_ri base.u64
- var bytes_per_pixel base.u32[..= 64]
- var pixfmt_channels base.u32
- var tab table base.u8
- var i base.u64
- var j base.u64
- var replicate_y0 base.u32
- var replicate_y1 base.u32
- var replicate_dst slice base.u8
- var replicate_src slice base.u8
+ var dst : slice base.u8
+ var src : slice base.u8
+ var width_in_bytes : base.u64
+ var n : base.u64
+ var src_ri : base.u64
+ var bytes_per_pixel : base.u32[..= 64]
+ var pixfmt_channels : base.u32
+ var tab : table base.u8
+ var i : base.u64
+ var j : base.u64
+ var replicate_y0 : base.u32
+ var replicate_y1 : base.u32
+ var replicate_dst : slice base.u8
+ var replicate_src : slice base.u8
// TODO: a Wuffs (not just C) name for the WUFFS_BASE__PIXEL_FORMAT__ETC
// magic pixfmt constants. Also, support more formats.
diff --git a/std/gzip/decode_gzip.wuffs b/std/gzip/decode_gzip.wuffs
index 9ccd619..c75a2ce 100644
--- a/std/gzip/decode_gzip.wuffs
+++ b/std/gzip/decode_gzip.wuffs
@@ -43,15 +43,15 @@
}
pub func decoder.decode_io_writer?(dst: base.io_writer, src: base.io_reader, workbuf: slice base.u8) {
- var c base.u8
- var flags base.u8
- var xlen base.u16
- var mark base.u64
- var checksum_got base.u32
- var decoded_length_got base.u32
- var status base.status
- var checksum_want base.u32
- var decoded_length_want base.u32
+ var c : base.u8
+ var flags : base.u8
+ var xlen : base.u16
+ var mark : base.u64
+ var checksum_got : base.u32
+ var decoded_length_got : base.u32
+ var status : base.status
+ var checksum_want : base.u32
+ var decoded_length_want : base.u32
// Read the header.
c = args.src.read_u8?()
diff --git a/std/lzw/decode_lzw.wuffs b/std/lzw/decode_lzw.wuffs
index 96822f9..af4ae4d 100644
--- a/std/lzw/decode_lzw.wuffs
+++ b/std/lzw/decode_lzw.wuffs
@@ -78,7 +78,7 @@
}
pub func decoder.decode_io_writer?(dst: base.io_writer, src: base.io_reader, workbuf: slice base.u8) {
- var i base.u32[..= 8191]
+ var i : base.u32[..= 8191]
// Initialize read_from state.
this.literal_width = 8
@@ -124,23 +124,23 @@
}
pri func decoder.read_from!(src: base.io_reader) {
- var clear_code base.u32[..= 256]
- var end_code base.u32[..= 257]
+ var clear_code : base.u32[..= 256]
+ var end_code : base.u32[..= 257]
- var save_code base.u32[..= 4096]
- var prev_code base.u32[..= 4095]
- var width base.u32[..= 12]
- var bits base.u32
- var n_bits base.u32[..= 31]
- var output_wi base.u32[..= 8191]
+ var save_code : base.u32[..= 4096]
+ var prev_code : base.u32[..= 4095]
+ var width : base.u32[..= 12]
+ var bits : base.u32
+ var n_bits : base.u32[..= 31]
+ var output_wi : base.u32[..= 8191]
- var code base.u32[..= 4095]
- var c base.u32[..= 4095]
- var o base.u32[..= 8191]
- var steps base.u32
- var first_byte base.u8
- var lm1_b base.u16[..= 4095]
- var lm1_a base.u16[..= 4095]
+ var code : base.u32[..= 4095]
+ var c : base.u32[..= 4095]
+ var o : base.u32[..= 8191]
+ var steps : base.u32
+ var first_byte : base.u8
+ var lm1_b : base.u16[..= 4095]
+ var lm1_a : base.u16[..= 4095]
clear_code = this.clear_code
end_code = this.end_code
@@ -331,8 +331,8 @@
}
pri func decoder.write_to?(dst: base.io_writer) {
- var s slice base.u8
- var n base.u64
+ var s : slice base.u8
+ var n : base.u64
while this.output_wi > 0 {
if this.output_ri > this.output_wi {
@@ -351,7 +351,7 @@
}
pub func decoder.flush!() slice base.u8 {
- var s slice base.u8
+ var s : slice base.u8
if this.output_ri <= this.output_wi {
s = this.output[this.output_ri .. this.output_wi]
diff --git a/std/zlib/decode_zlib.wuffs b/std/zlib/decode_zlib.wuffs
index ba7e883..9369b94 100644
--- a/std/zlib/decode_zlib.wuffs
+++ b/std/zlib/decode_zlib.wuffs
@@ -70,11 +70,11 @@
}
pub func decoder.decode_io_writer?(dst: base.io_writer, src: base.io_reader, workbuf: slice base.u8) {
- var x base.u16
- var checksum_got base.u32
- var status base.status
- var checksum_want base.u32
- var mark base.u64
+ var x : base.u16
+ var checksum_got : base.u32
+ var status : base.status
+ var checksum_want : base.u32
+ var mark : base.u64
if this.bad_call_sequence {
return base."#bad call sequence"