Add signature enforcement for Main.Run and give it the symbol name main. (#3266)

For #2550.
This commit is contained in:
Richard Smith
2023-10-05 18:24:17 +00:00
committed by GitHub
parent b8802035ed
commit bfa5463e5b
28 changed files with 186 additions and 32 deletions
+14 -14
View File
@@ -4,32 +4,32 @@
//
// AUTOUPDATE
fn Run(a: i32) {}
fn G(a: i32) {}
fn Main() {
// CHECK:STDERR: fail_param_type.carbon:[[@LINE+6]]:6: ERROR: Cannot implicitly convert from `f64` to `i32`.
// CHECK:STDERR: Run(1.0);
// CHECK:STDERR: ^
fn F() {
// CHECK:STDERR: fail_param_type.carbon:[[@LINE+6]]:4: ERROR: Cannot implicitly convert from `f64` to `i32`.
// CHECK:STDERR: G(1.0);
// CHECK:STDERR: ^
// CHECK:STDERR: fail_param_type.carbon:[[@LINE-6]]:1: Initializing parameter 1 of function declared here.
// CHECK:STDERR: fn Run(a: i32) {}
// CHECK:STDERR: fn G(a: i32) {}
// CHECK:STDERR: ^
Run(1.0);
G(1.0);
}
// CHECK:STDOUT: file "fail_param_type.carbon" {
// CHECK:STDOUT: %Run = fn_decl @Run
// CHECK:STDOUT: %Main = fn_decl @Main
// CHECK:STDOUT: %G = fn_decl @G
// CHECK:STDOUT: %F = fn_decl @F
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Run(%a: i32) {
// CHECK:STDOUT: fn @G(%a: i32) {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: return
// CHECK:STDOUT: }
// CHECK:STDOUT:
// CHECK:STDOUT: fn @Main() {
// CHECK:STDOUT: fn @F() {
// CHECK:STDOUT: !entry:
// CHECK:STDOUT: %Run.ref = name_reference_untyped "Run", package.%Run
// CHECK:STDOUT: %.loc16_7: f64 = real_literal 10e-1
// CHECK:STDOUT: %.loc16_6: type = tuple_type ()
// CHECK:STDOUT: %G.ref = name_reference_untyped "G", package.%G
// CHECK:STDOUT: %.loc16_5: f64 = real_literal 10e-1
// CHECK:STDOUT: %.loc16_4: type = tuple_type ()
// CHECK:STDOUT: return
// CHECK:STDOUT: }