diff --git a/patches/patches/03_assignment.patch b/patches/patches/03_assignment.patch index 8b13789..bef4b24 100644 --- a/patches/patches/03_assignment.patch +++ b/patches/patches/03_assignment.patch @@ -1 +1,12 @@ - +37c37 +< const n: u8 = 50; +--- +> var n: u8 = 50; +40c40 +< const pi: u8 = 314159; +--- +> const pi: u32 = 314159; +42c42 +< const negative_eleven: u8 = -11; +--- +> const negative_eleven: i8 = -11; diff --git a/patches/patches/04_arrays.patch b/patches/patches/04_arrays.patch index 8b13789..c6f9de3 100644 --- a/patches/patches/04_arrays.patch +++ b/patches/patches/04_arrays.patch @@ -1 +1,12 @@ - +30c30 +< const some_primes = [_]u8{ 1, 3, 5, 7, 11, 13, 17, 19 }; +--- +> var some_primes = [_]u8{ 1, 3, 5, 7, 11, 13, 17, 19 }; +43c43 +< const fourth = some_primes[???]; +--- +> const fourth = some_primes[3]; +47c47 +< const length = some_primes.???; +--- +> const length = some_primes.len; diff --git a/patches/patches/05_arrays2.patch b/patches/patches/05_arrays2.patch index 8b13789..1e7b6b1 100644 --- a/patches/patches/05_arrays2.patch +++ b/patches/patches/05_arrays2.patch @@ -1 +1,8 @@ - +23c23 +< const leet = ???; +--- +> const leet = le ++ et; +28c28 +< const bit_pattern = [_]u8{ ??? } ** 3; +--- +> const bit_pattern = [_]u8{ 1, 0, 0, 1 } ** 3; diff --git a/patches/patches/06_strings.patch b/patches/patches/06_strings.patch index 8b13789..040a73c 100644 --- a/patches/patches/06_strings.patch +++ b/patches/patches/06_strings.patch @@ -1 +1,12 @@ - +22c22 +< const d: u8 = ziggy[???]; +--- +> const d: u8 = ziggy[4]; +26c26 +< const laugh = "ha " ???; +--- +> const laugh = "ha " ** 3; +33c33 +< const major_tom = major ??? tom; +--- +> const major_tom = major ++ " " ++ tom; diff --git a/patches/patches/07_strings2.patch b/patches/patches/07_strings2.patch index 8b13789..34cd053 100644 --- a/patches/patches/07_strings2.patch +++ b/patches/patches/07_strings2.patch @@ -1 +1,8 @@ - +18,20c18,20 +< Ziggy played guitar +< Jamming good with Andrew Kelley +< And the Spiders from Mars +--- +> \\Ziggy played guitar +> \\Jamming good with Andrew Kelley +> \\And the Spiders from Mars diff --git a/patches/patches/08_quiz.patch b/patches/patches/08_quiz.patch index 8b13789..3d35a5a 100644 --- a/patches/patches/08_quiz.patch +++ b/patches/patches/08_quiz.patch @@ -1 +1,14 @@ - +16c16 +< const x: u8 = 1; +--- +> var x: u8 = 1; +27c27 +< lang[???] = letters[x]; +--- +> lang[1] = letters[x]; +29,30c29,30 +< x = ???; +< lang[2] = letters[???]; +--- +> x = 5; +> lang[2] = letters[x]; diff --git a/patches/patches/09_if.patch b/patches/patches/09_if.patch index 8b13789..46579ad 100644 --- a/patches/patches/09_if.patch +++ b/patches/patches/09_if.patch @@ -1 +1,4 @@ - +26c26 +< if (foo) { +--- +> if (foo == 1) { diff --git a/patches/patches/10_if2.patch b/patches/patches/10_if2.patch index 8b13789..e78f644 100644 --- a/patches/patches/10_if2.patch +++ b/patches/patches/10_if2.patch @@ -1 +1,4 @@ - +13c13 +< var price: u8 = if ???; +--- +> var price: u8 = if (discount) 17 else 20; diff --git a/patches/patches/11_while.patch b/patches/patches/11_while.patch index 8b13789..a892191 100644 --- a/patches/patches/11_while.patch +++ b/patches/patches/11_while.patch @@ -1 +1,4 @@ - +24c24 +< while (???) { +--- +> while (n < 1024) { diff --git a/patches/patches/12_while2.patch b/patches/patches/12_while2.patch index 8b13789..29ae763 100644 --- a/patches/patches/12_while2.patch +++ b/patches/patches/12_while2.patch @@ -1 +1,4 @@ - +28c28 +< while (n < 1000) : ??? { +--- +> while (n < 1000) : (n *= 2) { diff --git a/patches/patches/13_while3.patch b/patches/patches/13_while3.patch index 8b13789..b0172da 100644 --- a/patches/patches/13_while3.patch +++ b/patches/patches/13_while3.patch @@ -1 +1,6 @@ - +27,28c27,28 +< if (n % 3 == 0) ???; +< if (n % 5 == 0) ???; +--- +> if (n % 3 == 0) continue; +> if (n % 5 == 0) continue; diff --git a/patches/patches/14_while4.patch b/patches/patches/14_while4.patch index 8b13789..fb67587 100644 --- a/patches/patches/14_while4.patch +++ b/patches/patches/14_while4.patch @@ -1 +1,4 @@ - +21c21 +< if (???) ???; +--- +> if (n == 4) break; diff --git a/patches/patches/15_for.patch b/patches/patches/15_for.patch index 8b13789..e937221 100644 --- a/patches/patches/15_for.patch +++ b/patches/patches/15_for.patch @@ -1 +1,4 @@ - +18c18 +< for (???) |???| { +--- +> for (story) |scene| { diff --git a/patches/patches/16_for2.patch b/patches/patches/16_for2.patch index 8b13789..5aba37f 100644 --- a/patches/patches/16_for2.patch +++ b/patches/patches/16_for2.patch @@ -1 +1,4 @@ - +27c27 +< for (bits) |bit, ???| { +--- +> for (bits) |bit, i| { diff --git a/patches/patches/17_quiz2.patch b/patches/patches/17_quiz2.patch index 8b13789..b46dab6 100644 --- a/patches/patches/17_quiz2.patch +++ b/patches/patches/17_quiz2.patch @@ -1 +1,16 @@ - +12c12 +< const std = import standard library; +--- +> const std = @import("std"); +14c14 +< function main() void { +--- +> pub fn main() void { +19c19 +< ??? (i <= stop_at) : (i += 1) { +--- +> while (i <= stop_at) : (i += 1) { +23c23 +< std.debug.print("{}", .{???}); +--- +> std.debug.print("{}", .{i}); diff --git a/patches/patches/18_functions.patch b/patches/patches/18_functions.patch index 8b13789..dd3f2f6 100644 --- a/patches/patches/18_functions.patch +++ b/patches/patches/18_functions.patch @@ -1 +1,4 @@ - +31c31 +< ??? deepThought() ??? { +--- +> fn deepThought() u8 { diff --git a/patches/patches/19_functions2.patch b/patches/patches/19_functions2.patch index 8b13789..254889a 100644 --- a/patches/patches/19_functions2.patch +++ b/patches/patches/19_functions2.patch @@ -1 +1,4 @@ - +25c25 +< fn twoToThe(???) u32 { +--- +> fn twoToThe(my_number: u32) u32 { diff --git a/patches/patches/20_quiz3.patch b/patches/patches/20_quiz3.patch index 8b13789..6a00d31 100644 --- a/patches/patches/20_quiz3.patch +++ b/patches/patches/20_quiz3.patch @@ -1 +1,18 @@ - +24,25c24,25 +< fn printPowersOfTwo(numbers: [4]u16) ??? { +< loop (numbers) |n| { +--- +> fn printPowersOfTwo(numbers: [4]u16) void { +> for (numbers) |n| { +34c34 +< fn twoToThe(number: u16) ??? { +--- +> fn twoToThe(number: u16) u16 { +38c38 +< loop (n < number) : (n += 1) { +--- +> while (n < number) : (n += 1) { +42c42 +< return ???; +--- +> return total; diff --git a/patches/patches/21_errors.patch b/patches/patches/21_errors.patch index 8b13789..b37b3c8 100644 --- a/patches/patches/21_errors.patch +++ b/patches/patches/21_errors.patch @@ -1 +1,8 @@ - +12c12 +< ???, +--- +> TooSmall, +29c29 +< if (???) { +--- +> if (number_error == MyNumberError.TooSmall) { diff --git a/patches/patches/22_errors2.patch b/patches/patches/22_errors2.patch index 8b13789..0501159 100644 --- a/patches/patches/22_errors2.patch +++ b/patches/patches/22_errors2.patch @@ -1 +1,4 @@ - +22c22 +< var my_number: ??? = 5; +--- +> var my_number: MyNumberError!u8 = 5; diff --git a/patches/patches/23_errors3.patch b/patches/patches/23_errors3.patch index 8b13789..a850116 100644 --- a/patches/patches/23_errors3.patch +++ b/patches/patches/23_errors3.patch @@ -1 +1,8 @@ - +15c15 +< var b: u32 = addTwenty(4) ??? 22; +--- +> var b: u32 = addTwenty(4) catch 22; +22c22 +< fn addTwenty(n: u32) ??? { +--- +> fn addTwenty(n: u32) MyNumberError!u32 { diff --git a/patches/patches/24_errors4.patch b/patches/patches/24_errors4.patch index 8b13789..bb3fc8f 100644 --- a/patches/patches/24_errors4.patch +++ b/patches/patches/24_errors4.patch @@ -1 +1,10 @@ - +62c62,68 +< return detectProblems(n) ??? +--- +> return detectProblems(n) catch |err| { +> if (err == MyNumberError.TooSmall) { +> return 10; +> } +> +> return err; +> }; diff --git a/patches/patches/25_errors5.patch b/patches/patches/25_errors5.patch index 8b13789..8aa59d4 100644 --- a/patches/patches/25_errors5.patch +++ b/patches/patches/25_errors5.patch @@ -1 +1,4 @@ - +29c29 +< var x = detect(n); +--- +> var x = try detect(n); diff --git a/patches/patches/26_hello2.patch b/patches/patches/26_hello2.patch index 8b13789..0065da5 100644 --- a/patches/patches/26_hello2.patch +++ b/patches/patches/26_hello2.patch @@ -1 +1,4 @@ - +22c22 +< stdout.print("Hello world!\n", .{}); +--- +> try stdout.print("Hello world!\n", .{}); diff --git a/patches/patches/27_defer.patch b/patches/patches/27_defer.patch index 8b13789..6ff7f98 100644 --- a/patches/patches/27_defer.patch +++ b/patches/patches/27_defer.patch @@ -1 +1,4 @@ - +23c23 +< std.debug.print("Two\n", .{}); +--- +> defer std.debug.print("Two\n", .{}); diff --git a/patches/patches/28_defer2.patch b/patches/patches/28_defer2.patch index 8b13789..c042c45 100644 --- a/patches/patches/28_defer2.patch +++ b/patches/patches/28_defer2.patch @@ -1 +1,4 @@ - +21c21 +< std.debug.print(") ", .{}); // <---- how!? +--- +> defer std.debug.print(") ", .{}); // <---- how!? diff --git a/patches/patches/29_errdefer.patch b/patches/patches/29_errdefer.patch index 8b13789..f93c56f 100644 --- a/patches/patches/29_errdefer.patch +++ b/patches/patches/29_errdefer.patch @@ -1 +1,4 @@ - +35c34 +< std.debug.print("failed!\n", .{}); +--- +> errdefer std.debug.print("failed!\n", .{}); diff --git a/patches/patches/30_switch.patch b/patches/patches/30_switch.patch index 8b13789..05cbe1a 100644 --- a/patches/patches/30_switch.patch +++ b/patches/patches/30_switch.patch @@ -1 +1,2 @@ - +48a49 +> else => std.debug.print("?", .{}), diff --git a/patches/patches/31_switch2.patch b/patches/patches/31_switch2.patch index 8b13789..f786762 100644 --- a/patches/patches/31_switch2.patch +++ b/patches/patches/31_switch2.patch @@ -1 +1,2 @@ - +33a34 +> else => '!', diff --git a/patches/patches/32_unreachable.patch b/patches/patches/32_unreachable.patch index 8b13789..0883932 100644 --- a/patches/patches/32_unreachable.patch +++ b/patches/patches/32_unreachable.patch @@ -1 +1,2 @@ - +37a38 +> else => unreachable, diff --git a/patches/patches/33_iferror.patch b/patches/patches/33_iferror.patch index 8b13789..62904db 100644 --- a/patches/patches/33_iferror.patch +++ b/patches/patches/33_iferror.patch @@ -1 +1,2 @@ - +36a37 +> MyNumberError.TooSmall => std.debug.print("<4. ", .{}), diff --git a/patches/patches/34_quiz4.patch b/patches/patches/34_quiz4.patch index 8b13789..b259352 100644 --- a/patches/patches/34_quiz4.patch +++ b/patches/patches/34_quiz4.patch @@ -1 +1,8 @@ - +12c12 +< pub fn main() void { +--- +> pub fn main() !void { +15c15 +< const my_num: u32 = getNumber(); +--- +> const my_num: u32 = try getNumber(); diff --git a/patches/patches/35_enums.patch b/patches/patches/35_enums.patch index 8b13789..ed2344b 100644 --- a/patches/patches/35_enums.patch +++ b/patches/patches/35_enums.patch @@ -1 +1,4 @@ - +23c23 +< const Ops = enum { ??? }; +--- +> const Ops = enum { dec, inc, pow }; diff --git a/patches/patches/36_enums2.patch b/patches/patches/36_enums2.patch index 8b13789..54a7094 100644 --- a/patches/patches/36_enums2.patch +++ b/patches/patches/36_enums2.patch @@ -1 +1,12 @@ - +32c32 +< blue = ???, +--- +> blue = 0x0000ff, +54c54 +< \\ Blue +--- +> \\ Blue +59c59 +< @enumToInt(???), // Oops! We're missing something! +--- +> @enumToInt(Color.blue), // Oops! We're missing something! diff --git a/patches/patches/37_structs.patch b/patches/patches/37_structs.patch index 8b13789..c26510d 100644 --- a/patches/patches/37_structs.patch +++ b/patches/patches/37_structs.patch @@ -1 +1,4 @@ - +38a39 +> health: u8, +46a48 +> .health = 100, diff --git a/patches/patches/38_structs2.patch b/patches/patches/38_structs2.patch index 8b13789..5d0d188 100644 --- a/patches/patches/38_structs2.patch +++ b/patches/patches/38_structs2.patch @@ -1 +1,7 @@ - +44a45,50 +> chars[1] = Character{ +> .class = Class.bard, +> .gold = 10, +> .health = 100, +> .experience = 20, +> }; diff --git a/patches/patches/39_pointers.patch b/patches/patches/39_pointers.patch index 8b13789..57d67e5 100644 --- a/patches/patches/39_pointers.patch +++ b/patches/patches/39_pointers.patch @@ -1 +1,4 @@ - +33c33 +< num2 = ???; +--- +> num2 = num1_pointer.*; diff --git a/patches/patches/40_pointers2.patch b/patches/patches/40_pointers2.patch index 8b13789..a69cb20 100644 --- a/patches/patches/40_pointers2.patch +++ b/patches/patches/40_pointers2.patch @@ -1 +1,4 @@ - +24c24 +< const b: *u8 = &a; // fix this! +--- +> const b: *const u8 = &a; // fix this! diff --git a/patches/patches/41_pointers3.patch b/patches/patches/41_pointers3.patch index 8b13789..02f7744 100644 --- a/patches/patches/41_pointers3.patch +++ b/patches/patches/41_pointers3.patch @@ -1 +1,4 @@ - +34c34 +< ??? p: ??? = undefined; +--- +> var p: *u8 = undefined; diff --git a/patches/patches/42_pointers4.patch b/patches/patches/42_pointers4.patch index 8b13789..29ca2d0 100644 --- a/patches/patches/42_pointers4.patch +++ b/patches/patches/42_pointers4.patch @@ -1 +1,4 @@ - +31c31 +< ??? = 5; // fix me! +--- +> x.* = 5; // fix me! diff --git a/patches/patches/43_pointers5.patch b/patches/patches/43_pointers5.patch index 8b13789..8a73551 100644 --- a/patches/patches/43_pointers5.patch +++ b/patches/patches/43_pointers5.patch @@ -1 +1,4 @@ - +60c60 +< printCharacter(???); +--- +> printCharacter(&glorp); diff --git a/patches/patches/44_quiz5.patch b/patches/patches/44_quiz5.patch index 8b13789..44d4451 100644 --- a/patches/patches/44_quiz5.patch +++ b/patches/patches/44_quiz5.patch @@ -1 +1,4 @@ - +21a22 +> var elephantB = Elephant{ .letter = 'B' }; +27a29 +> elephantB.tail = &elephantC; diff --git a/patches/patches/45_optionals.patch b/patches/patches/45_optionals.patch index 8b13789..c945b5a 100644 --- a/patches/patches/45_optionals.patch +++ b/patches/patches/45_optionals.patch @@ -1 +1,4 @@ - +32c32 +< var answer: u8 = result; +--- +> var answer: u8 = result orelse 42;