// Part of the Carbon Language project, under the Apache License v2.0 with LLVM // Exceptions. See /LICENSE for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // More single line comments package Carbon api; interface HasValueParam(T:! type, V:! T) { fn Go[self: Self]() -> T; } impl () as HasValueParam(i32, 5) { fn Go[self: Self]() -> i32 { return 42; } } class Point { fn Origin() -> Self { return {.x = 0, .y = 0}; } var x: i32; var y: i32; } fn Procedure() -> i32 { returned var zoop: i32 = 0; while (DoSomeJob() { zoop += 1; } return var; } fn Main() -> i32 { let str = "Hello world"; let hex = 0xABCDEF1234567890; let bin = 0b0000111001010010; let dec = 123456789012345678; let big: Carbon.Int(1024) = 1234; let aaa: auto = "Carbon"; let view: StringView = "Carbon"; return Procedure(); }