mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 20:42:01 +01:00
Add a note: prefix to all notes. (#4330)
Omit the `note: ` prefix and the snippet from the "in import" note that precedes a diagnostic. This makes our diagnostic output more closely match that of Clang and GCC.
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
// CHECK:STDERR: fail_param_redecl.carbon:[[@LINE+6]]:14: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: fn F(n: i32, n: i32);
|
||||
// CHECK:STDERR: ^
|
||||
// CHECK:STDERR: fail_param_redecl.carbon:[[@LINE+3]]:6: name is previously declared here
|
||||
// CHECK:STDERR: fail_param_redecl.carbon:[[@LINE+3]]:6: note: name is previously declared here
|
||||
// CHECK:STDERR: fn F(n: i32, n: i32);
|
||||
// CHECK:STDERR: ^
|
||||
fn F(n: i32, n: i32);
|
||||
|
||||
+129
-179
@@ -58,57 +58,47 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import library "api";
|
||||
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+10]]:1: error: redeclarations of `fn A` must match use of `extern`
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+8]]:1: error: redeclarations of `fn A` must match use of `extern`
|
||||
// CHECK:STDERR: extern fn A();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:4:1: previously declared here
|
||||
// CHECK:STDERR: api.carbon:4:1: note: previously declared here
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
extern fn A();
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+10]]:1: error: redeclarations of `fn B` must match use of `extern`
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+8]]:1: error: redeclarations of `fn B` must match use of `extern`
|
||||
// CHECK:STDERR: extern fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-16]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:5:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-14]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:5:1: note: previously declared here
|
||||
// CHECK:STDERR: fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
extern fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+10]]:1: error: redeclarations of `fn C` must match use of `extern`
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+8]]:1: error: redeclarations of `fn C` must match use of `extern`
|
||||
// CHECK:STDERR: extern fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-27]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:6:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-23]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:6:1: note: previously declared here
|
||||
// CHECK:STDERR: fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
extern fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+10]]:1: error: redeclaration of `fn D` is redundant
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+8]]:1: error: redeclaration of `fn D` is redundant
|
||||
// CHECK:STDERR: extern fn D();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-38]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:7:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-32]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:7:1: note: previously declared here
|
||||
// CHECK:STDERR: extern fn D();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
extern fn D();
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+10]]:1: error: redeclarations of `fn E` must match use of `extern`
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE+8]]:1: error: redeclarations of `fn E` must match use of `extern`
|
||||
// CHECK:STDERR: extern fn NS.E();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-49]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:10:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl_api.carbon:[[@LINE-41]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:10:1: note: previously declared here
|
||||
// CHECK:STDERR: fn NS.E();
|
||||
// CHECK:STDERR: ^~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -142,68 +132,48 @@ var e: () = NS.E();
|
||||
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+65]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+45]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:4:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn A();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+59]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:4:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+41]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:4:1: note: name is previously declared here
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+52]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+36]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:5:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+46]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:5:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+32]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:5:1: note: name is previously declared here
|
||||
// CHECK:STDERR: fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+39]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+27]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:6:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+33]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:6:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+23]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:6:1: note: name is previously declared here
|
||||
// CHECK:STDERR: fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+26]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+18]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:7:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn D();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+20]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:7:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+14]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:7:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern fn D();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+13]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+9]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:10:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn NS.E();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+7]]:1: in import
|
||||
// CHECK:STDERR: import library "api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: api.carbon:10:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge.carbon:[[@LINE+5]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:10:1: note: name is previously declared here
|
||||
// CHECK:STDERR: fn NS.E();
|
||||
// CHECK:STDERR: ^~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -220,68 +190,48 @@ var e: () = NS.E();
|
||||
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+64]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+44]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:4:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+58]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_api.carbon:4:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+40]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:4:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn A();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+51]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+35]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:5:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+45]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_api.carbon:5:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+31]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:5:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn B(b: i32) -> i32;
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+38]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+26]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:6:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+32]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_api.carbon:6:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+22]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:6:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn C(c: (i32,)) -> {.c: i32};
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+25]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+17]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:7:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern fn D();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+19]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_api.carbon:7:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+13]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:7:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn D();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+12]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+8]]:1: in import
|
||||
// CHECK:STDERR: api.carbon:10:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: fn NS.E();
|
||||
// CHECK:STDERR: ^~~~~~~~~~
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+6]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_api.carbon:10:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_merge_reverse.carbon:[[@LINE+4]]:1: in import
|
||||
// CHECK:STDERR: extern_api.carbon:10:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern library "redecl_extern_api" fn NS.E();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
import library "extern_api";
|
||||
@@ -668,8 +618,8 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: .NS = imports.%NS
|
||||
// CHECK:STDOUT: .Core = imports.%Core
|
||||
// CHECK:STDOUT: .a = %a
|
||||
// CHECK:STDOUT: .b = %b.loc63
|
||||
// CHECK:STDOUT: .c = %c.loc64
|
||||
// CHECK:STDOUT: .b = %b.loc53
|
||||
// CHECK:STDOUT: .c = %c.loc54
|
||||
// CHECK:STDOUT: .d = %d
|
||||
// CHECK:STDOUT: .e = %e
|
||||
// CHECK:STDOUT: }
|
||||
@@ -677,53 +627,53 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %A.decl: %A.type = fn_decl @A [template = constants.%A] {}
|
||||
// CHECK:STDOUT: %B.decl: %B.type = fn_decl @B [template = constants.%B] {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc27_16: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc27_16.1: type = value_of_initializer %int.make_type_32.loc27_16 [template = i32]
|
||||
// CHECK:STDOUT: %.loc27_16.2: type = converted %int.make_type_32.loc27_16, %.loc27_16.1 [template = i32]
|
||||
// CHECK:STDOUT: %b.loc27_13.1: i32 = param b, runtime_param0
|
||||
// CHECK:STDOUT: %b.loc27_13.2: i32 = bind_name b, %b.loc27_13.1
|
||||
// CHECK:STDOUT: %int.make_type_32.loc27_24: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc27_24.1: type = value_of_initializer %int.make_type_32.loc27_24 [template = i32]
|
||||
// CHECK:STDOUT: %.loc27_24.2: type = converted %int.make_type_32.loc27_24, %.loc27_24.1 [template = i32]
|
||||
// CHECK:STDOUT: %return.var.loc27: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: %int.make_type_32.loc23_16: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc23_16.1: type = value_of_initializer %int.make_type_32.loc23_16 [template = i32]
|
||||
// CHECK:STDOUT: %.loc23_16.2: type = converted %int.make_type_32.loc23_16, %.loc23_16.1 [template = i32]
|
||||
// CHECK:STDOUT: %b.loc23_13.1: i32 = param b, runtime_param0
|
||||
// CHECK:STDOUT: %b.loc23_13.2: i32 = bind_name b, %b.loc23_13.1
|
||||
// CHECK:STDOUT: %int.make_type_32.loc23_24: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc23_24.1: type = value_of_initializer %int.make_type_32.loc23_24 [template = i32]
|
||||
// CHECK:STDOUT: %.loc23_24.2: type = converted %int.make_type_32.loc23_24, %.loc23_24.1 [template = i32]
|
||||
// CHECK:STDOUT: %return.var.loc23: ref i32 = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %C.decl: %C.type = fn_decl @C [template = constants.%C] {
|
||||
// CHECK:STDOUT: %int.make_type_32.loc38_17: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_21.1: %.2 = tuple_literal (%int.make_type_32.loc38_17)
|
||||
// CHECK:STDOUT: %.loc38_21.2: type = value_of_initializer %int.make_type_32.loc38_17 [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_21.3: type = converted %int.make_type_32.loc38_17, %.loc38_21.2 [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_21.4: type = converted %.loc38_21.1, constants.%.3 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %c.loc38_13.1: %.3 = param c, runtime_param0
|
||||
// CHECK:STDOUT: %c.loc38_13.2: %.3 = bind_name c, %c.loc38_13.1
|
||||
// CHECK:STDOUT: %int.make_type_32.loc38_32: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_32.1: type = value_of_initializer %int.make_type_32.loc38_32 [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_32.2: type = converted %int.make_type_32.loc38_32, %.loc38_32.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc38_35: type = struct_type {.c: i32} [template = constants.%.4]
|
||||
// CHECK:STDOUT: %return.var.loc38: ref %.4 = var <return slot>
|
||||
// CHECK:STDOUT: %int.make_type_32.loc32_17: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc32_21.1: %.2 = tuple_literal (%int.make_type_32.loc32_17)
|
||||
// CHECK:STDOUT: %.loc32_21.2: type = value_of_initializer %int.make_type_32.loc32_17 [template = i32]
|
||||
// CHECK:STDOUT: %.loc32_21.3: type = converted %int.make_type_32.loc32_17, %.loc32_21.2 [template = i32]
|
||||
// CHECK:STDOUT: %.loc32_21.4: type = converted %.loc32_21.1, constants.%.3 [template = constants.%.3]
|
||||
// CHECK:STDOUT: %c.loc32_13.1: %.3 = param c, runtime_param0
|
||||
// CHECK:STDOUT: %c.loc32_13.2: %.3 = bind_name c, %c.loc32_13.1
|
||||
// CHECK:STDOUT: %int.make_type_32.loc32_32: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc32_32.1: type = value_of_initializer %int.make_type_32.loc32_32 [template = i32]
|
||||
// CHECK:STDOUT: %.loc32_32.2: type = converted %int.make_type_32.loc32_32, %.loc32_32.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc32_35: type = struct_type {.c: i32} [template = constants.%.4]
|
||||
// CHECK:STDOUT: %return.var.loc32: ref %.4 = var <return slot>
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %D.decl: %D.type = fn_decl @D [template = constants.%D] {}
|
||||
// CHECK:STDOUT: %E.decl: %E.type = fn_decl @E [template = constants.%E] {}
|
||||
// CHECK:STDOUT: %.loc62_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc62_9.2: type = converted %.loc62_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc52_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc52_9.2: type = converted %.loc52_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %a.var: ref %.1 = var a
|
||||
// CHECK:STDOUT: %a: ref %.1 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc63: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc63_8.1: type = value_of_initializer %int.make_type_32.loc63 [template = i32]
|
||||
// CHECK:STDOUT: %.loc63_8.2: type = converted %int.make_type_32.loc63, %.loc63_8.1 [template = i32]
|
||||
// CHECK:STDOUT: %int.make_type_32.loc53: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_8.1: type = value_of_initializer %int.make_type_32.loc53 [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_8.2: type = converted %int.make_type_32.loc53, %.loc53_8.1 [template = i32]
|
||||
// CHECK:STDOUT: %b.var: ref i32 = var b
|
||||
// CHECK:STDOUT: %b.loc63: ref i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc64: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc64_13.1: type = value_of_initializer %int.make_type_32.loc64 [template = i32]
|
||||
// CHECK:STDOUT: %.loc64_13.2: type = converted %int.make_type_32.loc64, %.loc64_13.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc64_16: type = struct_type {.c: i32} [template = constants.%.4]
|
||||
// CHECK:STDOUT: %b.loc53: ref i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc54: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc54_13.1: type = value_of_initializer %int.make_type_32.loc54 [template = i32]
|
||||
// CHECK:STDOUT: %.loc54_13.2: type = converted %int.make_type_32.loc54, %.loc54_13.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc54_16: type = struct_type {.c: i32} [template = constants.%.4]
|
||||
// CHECK:STDOUT: %c.var: ref %.4 = var c
|
||||
// CHECK:STDOUT: %c.loc64: ref %.4 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %.loc65_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc65_9.2: type = converted %.loc65_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %c.loc54: ref %.4 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %.loc55_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc55_9.2: type = converted %.loc55_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %d.var: ref %.1 = var d
|
||||
// CHECK:STDOUT: %d: ref %.1 = bind_name d, %d.var
|
||||
// CHECK:STDOUT: %.loc66_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc66_9.2: type = converted %.loc66_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc56_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc56_9.2: type = converted %.loc56_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %e.var: ref %.1 = var e
|
||||
// CHECK:STDOUT: %e: ref %.1 = bind_name e, %e.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -746,15 +696,15 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: %A.call: init %.1 = call %A.ref()
|
||||
// CHECK:STDOUT: assign file.%a.var, %A.call
|
||||
// CHECK:STDOUT: %B.ref: %B.type = name_ref B, file.%B.decl [template = constants.%B]
|
||||
// CHECK:STDOUT: %.loc63: i32 = int_literal 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %B.call: init i32 = call %B.ref(%.loc63)
|
||||
// CHECK:STDOUT: %.loc53: i32 = int_literal 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %B.call: init i32 = call %B.ref(%.loc53)
|
||||
// CHECK:STDOUT: assign file.%b.var, %B.call
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, file.%C.decl [template = constants.%C]
|
||||
// CHECK:STDOUT: %.loc64_23: i32 = int_literal 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc64_25: %.3 = tuple_literal (%.loc64_23)
|
||||
// CHECK:STDOUT: %tuple: %.3 = tuple_value (%.loc64_23) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc64_21: %.3 = converted %.loc64_25, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %C.call: init %.4 = call %C.ref(%.loc64_21)
|
||||
// CHECK:STDOUT: %.loc54_23: i32 = int_literal 1 [template = constants.%.5]
|
||||
// CHECK:STDOUT: %.loc54_25: %.3 = tuple_literal (%.loc54_23)
|
||||
// CHECK:STDOUT: %tuple: %.3 = tuple_value (%.loc54_23) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc54_21: %.3 = converted %.loc54_25, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %C.call: init %.4 = call %C.ref(%.loc54_21)
|
||||
// CHECK:STDOUT: assign file.%c.var, %C.call
|
||||
// CHECK:STDOUT: %D.ref: %D.type = name_ref D, file.%D.decl [template = constants.%D]
|
||||
// CHECK:STDOUT: %D.call: init %.1 = call %D.ref()
|
||||
@@ -987,27 +937,27 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %.loc72_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc72_9.2: type = converted %.loc72_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc52_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc52_9.2: type = converted %.loc52_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %a.var: ref %.1 = var a
|
||||
// CHECK:STDOUT: %a: ref %.1 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc73: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc73_8.1: type = value_of_initializer %int.make_type_32.loc73 [template = i32]
|
||||
// CHECK:STDOUT: %.loc73_8.2: type = converted %int.make_type_32.loc73, %.loc73_8.1 [template = i32]
|
||||
// CHECK:STDOUT: %int.make_type_32.loc53: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_8.1: type = value_of_initializer %int.make_type_32.loc53 [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_8.2: type = converted %int.make_type_32.loc53, %.loc53_8.1 [template = i32]
|
||||
// CHECK:STDOUT: %b.var: ref i32 = var b
|
||||
// CHECK:STDOUT: %b: ref i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc74: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc74_13.1: type = value_of_initializer %int.make_type_32.loc74 [template = i32]
|
||||
// CHECK:STDOUT: %.loc74_13.2: type = converted %int.make_type_32.loc74, %.loc74_13.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc74_16: type = struct_type {.c: i32} [template = constants.%.3]
|
||||
// CHECK:STDOUT: %int.make_type_32.loc54: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc54_13.1: type = value_of_initializer %int.make_type_32.loc54 [template = i32]
|
||||
// CHECK:STDOUT: %.loc54_13.2: type = converted %int.make_type_32.loc54, %.loc54_13.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc54_16: type = struct_type {.c: i32} [template = constants.%.3]
|
||||
// CHECK:STDOUT: %c.var: ref %.3 = var c
|
||||
// CHECK:STDOUT: %c: ref %.3 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %.loc75_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc75_9.2: type = converted %.loc75_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc55_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc55_9.2: type = converted %.loc55_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %d.var: ref %.1 = var d
|
||||
// CHECK:STDOUT: %d: ref %.1 = bind_name d, %d.var
|
||||
// CHECK:STDOUT: %.loc76_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc76_9.2: type = converted %.loc76_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc56_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc56_9.2: type = converted %.loc56_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %e.var: ref %.1 = var e
|
||||
// CHECK:STDOUT: %e: ref %.1 = bind_name e, %e.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1030,15 +980,15 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: %A.call: init %.1 = call %A.ref()
|
||||
// CHECK:STDOUT: assign file.%a.var, %A.call
|
||||
// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.2 [template = constants.%B]
|
||||
// CHECK:STDOUT: %.loc73: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %B.call: init i32 = call %B.ref(%.loc73)
|
||||
// CHECK:STDOUT: %.loc53: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %B.call: init i32 = call %B.ref(%.loc53)
|
||||
// CHECK:STDOUT: assign file.%b.var, %B.call
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.3 [template = constants.%C]
|
||||
// CHECK:STDOUT: %.loc74_23: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc74_25: %.4 = tuple_literal (%.loc74_23)
|
||||
// CHECK:STDOUT: %tuple: %.4 = tuple_value (%.loc74_23) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc74_21: %.4 = converted %.loc74_25, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %C.call: init %.3 = call %C.ref(%.loc74_21)
|
||||
// CHECK:STDOUT: %.loc54_23: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc54_25: %.4 = tuple_literal (%.loc54_23)
|
||||
// CHECK:STDOUT: %tuple: %.4 = tuple_value (%.loc54_23) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc54_21: %.4 = converted %.loc54_25, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %C.call: init %.3 = call %C.ref(%.loc54_21)
|
||||
// CHECK:STDOUT: assign file.%c.var, %C.call
|
||||
// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.4 [template = constants.%D]
|
||||
// CHECK:STDOUT: %D.call: init %.1 = call %D.ref()
|
||||
@@ -1117,27 +1067,27 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT: %Core.import = import Core
|
||||
// CHECK:STDOUT: %default.import = import <invalid>
|
||||
// CHECK:STDOUT: %.loc71_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc71_9.2: type = converted %.loc71_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc51_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc51_9.2: type = converted %.loc51_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %a.var: ref %.1 = var a
|
||||
// CHECK:STDOUT: %a: ref %.1 = bind_name a, %a.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc72: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc72_8.1: type = value_of_initializer %int.make_type_32.loc72 [template = i32]
|
||||
// CHECK:STDOUT: %.loc72_8.2: type = converted %int.make_type_32.loc72, %.loc72_8.1 [template = i32]
|
||||
// CHECK:STDOUT: %int.make_type_32.loc52: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc52_8.1: type = value_of_initializer %int.make_type_32.loc52 [template = i32]
|
||||
// CHECK:STDOUT: %.loc52_8.2: type = converted %int.make_type_32.loc52, %.loc52_8.1 [template = i32]
|
||||
// CHECK:STDOUT: %b.var: ref i32 = var b
|
||||
// CHECK:STDOUT: %b: ref i32 = bind_name b, %b.var
|
||||
// CHECK:STDOUT: %int.make_type_32.loc73: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc73_13.1: type = value_of_initializer %int.make_type_32.loc73 [template = i32]
|
||||
// CHECK:STDOUT: %.loc73_13.2: type = converted %int.make_type_32.loc73, %.loc73_13.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc73_16: type = struct_type {.c: i32} [template = constants.%.3]
|
||||
// CHECK:STDOUT: %int.make_type_32.loc53: init type = call constants.%Int32() [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_13.1: type = value_of_initializer %int.make_type_32.loc53 [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_13.2: type = converted %int.make_type_32.loc53, %.loc53_13.1 [template = i32]
|
||||
// CHECK:STDOUT: %.loc53_16: type = struct_type {.c: i32} [template = constants.%.3]
|
||||
// CHECK:STDOUT: %c.var: ref %.3 = var c
|
||||
// CHECK:STDOUT: %c: ref %.3 = bind_name c, %c.var
|
||||
// CHECK:STDOUT: %.loc74_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc74_9.2: type = converted %.loc74_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc54_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc54_9.2: type = converted %.loc54_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %d.var: ref %.1 = var d
|
||||
// CHECK:STDOUT: %d: ref %.1 = bind_name d, %d.var
|
||||
// CHECK:STDOUT: %.loc75_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc75_9.2: type = converted %.loc75_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %.loc55_9.1: %.1 = tuple_literal ()
|
||||
// CHECK:STDOUT: %.loc55_9.2: type = converted %.loc55_9.1, constants.%.1 [template = constants.%.1]
|
||||
// CHECK:STDOUT: %e.var: ref %.1 = var e
|
||||
// CHECK:STDOUT: %e: ref %.1 = bind_name e, %e.var
|
||||
// CHECK:STDOUT: }
|
||||
@@ -1160,15 +1110,15 @@ import library "extern_api";
|
||||
// CHECK:STDOUT: %A.call: init %.1 = call %A.ref()
|
||||
// CHECK:STDOUT: assign file.%a.var, %A.call
|
||||
// CHECK:STDOUT: %B.ref: %B.type = name_ref B, imports.%import_ref.2 [template = constants.%B]
|
||||
// CHECK:STDOUT: %.loc72: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %B.call: init i32 = call %B.ref(%.loc72)
|
||||
// CHECK:STDOUT: %.loc52: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %B.call: init i32 = call %B.ref(%.loc52)
|
||||
// CHECK:STDOUT: assign file.%b.var, %B.call
|
||||
// CHECK:STDOUT: %C.ref: %C.type = name_ref C, imports.%import_ref.3 [template = constants.%C]
|
||||
// CHECK:STDOUT: %.loc73_23: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc73_25: %.4 = tuple_literal (%.loc73_23)
|
||||
// CHECK:STDOUT: %tuple: %.4 = tuple_value (%.loc73_23) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc73_21: %.4 = converted %.loc73_25, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %C.call: init %.3 = call %C.ref(%.loc73_21)
|
||||
// CHECK:STDOUT: %.loc53_23: i32 = int_literal 1 [template = constants.%.2]
|
||||
// CHECK:STDOUT: %.loc53_25: %.4 = tuple_literal (%.loc53_23)
|
||||
// CHECK:STDOUT: %tuple: %.4 = tuple_value (%.loc53_23) [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %.loc53_21: %.4 = converted %.loc53_25, %tuple [template = constants.%tuple]
|
||||
// CHECK:STDOUT: %C.call: init %.3 = call %C.ref(%.loc53_21)
|
||||
// CHECK:STDOUT: assign file.%c.var, %C.call
|
||||
// CHECK:STDOUT: %D.ref: %D.type = name_ref D, imports.%import_ref.4 [template = constants.%D]
|
||||
// CHECK:STDOUT: %D.call: init %.1 = call %D.ref()
|
||||
|
||||
@@ -28,7 +28,7 @@ extern fn F();
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: error: redeclaration of `fn F` is redundant
|
||||
// CHECK:STDERR: extern fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: note: previously declared here
|
||||
// CHECK:STDERR: extern fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -42,7 +42,7 @@ extern fn F();
|
||||
// CHECK:STDERR: fail_redecl_extern.carbon:[[@LINE+7]]:1: error: redeclaration of `fn F` is redundant
|
||||
// CHECK:STDERR: fn F();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_redecl_extern.carbon:[[@LINE-4]]:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl_extern.carbon:[[@LINE-4]]:1: note: previously declared here
|
||||
// CHECK:STDERR: extern fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
|
||||
+11
-23
@@ -28,13 +28,11 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import library "extern_library";
|
||||
|
||||
// CHECK:STDERR: fail_extern_library_nonowner.carbon:[[@LINE+10]]:1: error: declaration in library "extern_library_nonowner" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: fail_extern_library_nonowner.carbon:[[@LINE+8]]:1: error: declaration in library "extern_library_nonowner" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: extern fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_extern_library_nonowner.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_library";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: note: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern library "extern_library_owner" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -46,13 +44,11 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import library "extern_library";
|
||||
|
||||
// CHECK:STDERR: fail_extern_library_nonextern.carbon:[[@LINE+10]]:1: error: redeclarations of `fn F` must match use of `extern`
|
||||
// CHECK:STDERR: fail_extern_library_nonextern.carbon:[[@LINE+8]]:1: error: redeclarations of `fn F` must match use of `extern`
|
||||
// CHECK:STDERR: fn F();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_extern_library_nonextern.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_library";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: previously declared here
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: note: previously declared here
|
||||
// CHECK:STDERR: extern library "extern_library_owner" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -64,13 +60,11 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import library "extern_library";
|
||||
|
||||
// CHECK:STDERR: fail_extern_library_redecl.carbon:[[@LINE+10]]:1: error: declaration in library "extern_library_redecl" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: fail_extern_library_redecl.carbon:[[@LINE+8]]:1: error: declaration in library "extern_library_redecl" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: extern library "extern_library_owner" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_extern_library_redecl.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_library";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: note: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern library "extern_library_owner" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -86,16 +80,12 @@ extern library "extern_library_owner" fn F();
|
||||
|
||||
library "[[@TEST_NAME]]";
|
||||
|
||||
// CHECK:STDERR: fail_extern_library_collision.carbon:[[@LINE+13]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_library";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_extern_library_collision.carbon:[[@LINE+9]]:1: in import
|
||||
// CHECK:STDERR: extern_library_copy.carbon:4:1: error: duplicate name being declared in the same scope
|
||||
// CHECK:STDERR: extern library "extern_library_owner" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_extern_library_collision.carbon:[[@LINE+7]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_library";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: name is previously declared here
|
||||
// CHECK:STDERR: fail_extern_library_collision.carbon:[[@LINE+5]]:1: in import
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: note: name is previously declared here
|
||||
// CHECK:STDERR: extern library "extern_library_owner" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -142,13 +132,11 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import library "extern_of_import";
|
||||
|
||||
// CHECK:STDERR: fail_extern_of_import_redecl.carbon:[[@LINE+9]]:1: error: redeclarations of `fn F` must match use of `extern`
|
||||
// CHECK:STDERR: fail_extern_of_import_redecl.carbon:[[@LINE+7]]:1: error: redeclarations of `fn F` must match use of `extern`
|
||||
// CHECK:STDERR: extern library "extern_of_import" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_extern_of_import_redecl.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_of_import";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_of_import.carbon:4:1: previously declared here
|
||||
// CHECK:STDERR: extern_of_import.carbon:4:1: note: previously declared here
|
||||
// CHECK:STDERR: fn F();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
extern library "extern_of_import" fn F();
|
||||
|
||||
+2
-4
@@ -28,13 +28,11 @@ package Foo library "[[@TEST_NAME]]";
|
||||
|
||||
import library default;
|
||||
|
||||
// CHECK:STDERR: fail_wrong_library.carbon:[[@LINE+9]]:1: error: declaration in library "wrong_library" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: fail_wrong_library.carbon:[[@LINE+7]]:1: error: declaration in library "wrong_library" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: extern fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_wrong_library.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library default;
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: default.carbon:4:1: previously declared with `extern library` here
|
||||
// CHECK:STDERR: default.carbon:4:1: note: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern library "expected" fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
extern fn F();
|
||||
|
||||
Vendored
+2
-4
@@ -26,13 +26,11 @@ library "[[@TEST_NAME]]";
|
||||
|
||||
import library "extern_library";
|
||||
|
||||
// CHECK:STDERR: fail_wrong_library.carbon:[[@LINE+9]]:1: error: declaration in library "wrong_library" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: fail_wrong_library.carbon:[[@LINE+7]]:1: error: declaration in library "wrong_library" doesn't match `extern library` declaration
|
||||
// CHECK:STDERR: extern fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_wrong_library.carbon:[[@LINE-5]]:1: in import
|
||||
// CHECK:STDERR: import library "extern_library";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern_library.carbon:4:1: note: previously declared with `extern library` here
|
||||
// CHECK:STDERR: extern library default fn F();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
extern fn F();
|
||||
|
||||
Vendored
+19
-27
@@ -24,10 +24,10 @@ fn Call() {
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE+10]]:3: error: function returns incomplete type `C`
|
||||
// CHECK:STDERR: ReturnCUsed();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-12]]:1: class was forward declared here
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-12]]:1: note: class was forward declared here
|
||||
// CHECK:STDERR: class C;
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-11]]:18: return type declared here
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-11]]:18: note: return type declared here
|
||||
// CHECK:STDERR: fn ReturnCUsed() -> C;
|
||||
// CHECK:STDERR: ^~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -35,10 +35,10 @@ fn Call() {
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE+10]]:3: error: function returns incomplete type `D`
|
||||
// CHECK:STDERR: ReturnDUsed();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-22]]:1: class was forward declared here
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-22]]:1: note: class was forward declared here
|
||||
// CHECK:STDERR: class D;
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-20]]:18: return type declared here
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:[[@LINE-20]]:18: note: return type declared here
|
||||
// CHECK:STDERR: fn ReturnDUsed() -> D;
|
||||
// CHECK:STDERR: ^~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -54,36 +54,28 @@ library "[[@TEST_NAME]]";
|
||||
import library "incomplete_return";
|
||||
|
||||
fn CallFAndGIncomplete() {
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE+16]]:3: error: function returns incomplete type `C`
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE+12]]:3: error: function returns incomplete type `C`
|
||||
// CHECK:STDERR: ReturnCUnused();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-6]]:1: in import
|
||||
// CHECK:STDERR: import library "incomplete_return";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:4:1: class was forward declared here
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:4:1: note: class was forward declared here
|
||||
// CHECK:STDERR: class C;
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-12]]:1: in import
|
||||
// CHECK:STDERR: import library "incomplete_return";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:7:20: return type declared here
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-10]]:1: in import
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:7:20: note: return type declared here
|
||||
// CHECK:STDERR: fn ReturnCUnused() -> C;
|
||||
// CHECK:STDERR: ^~~~
|
||||
// CHECK:STDERR:
|
||||
ReturnCUnused();
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE+15]]:3: error: function returns incomplete type `C`
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE+11]]:3: error: function returns incomplete type `C`
|
||||
// CHECK:STDERR: ReturnCUsed();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-23]]:1: in import
|
||||
// CHECK:STDERR: import library "incomplete_return";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:4:1: class was forward declared here
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-19]]:1: in import
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:4:1: note: class was forward declared here
|
||||
// CHECK:STDERR: class C;
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-29]]:1: in import
|
||||
// CHECK:STDERR: import library "incomplete_return";
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:8:18: return type declared here
|
||||
// CHECK:STDERR: fail_use_imported.carbon:[[@LINE-23]]:1: in import
|
||||
// CHECK:STDERR: fail_incomplete_return.carbon:8:18: note: return type declared here
|
||||
// CHECK:STDERR: fn ReturnCUsed() -> C;
|
||||
// CHECK:STDERR: ^~~~
|
||||
ReturnCUsed();
|
||||
@@ -230,13 +222,13 @@ fn CallFAndGIncomplete() {
|
||||
// CHECK:STDOUT: %ReturnCUsed.ref: %ReturnCUsed.type = name_ref ReturnCUsed, imports.%import_ref.4 [template = constants.%ReturnCUsed]
|
||||
// CHECK:STDOUT: %ReturnCUsed.call: init <error> = call %ReturnCUsed.ref()
|
||||
// CHECK:STDOUT: %ReturnDUnused.ref: %ReturnDUnused.type = name_ref ReturnDUnused, imports.%import_ref.5 [template = constants.%ReturnDUnused]
|
||||
// CHECK:STDOUT: %.loc40_16.1: ref %D = temporary_storage
|
||||
// CHECK:STDOUT: %ReturnDUnused.call: init %D = call %ReturnDUnused.ref() to %.loc40_16.1
|
||||
// CHECK:STDOUT: %.loc40_16.2: ref %D = temporary %.loc40_16.1, %ReturnDUnused.call
|
||||
// CHECK:STDOUT: %.loc32_16.1: ref %D = temporary_storage
|
||||
// CHECK:STDOUT: %ReturnDUnused.call: init %D = call %ReturnDUnused.ref() to %.loc32_16.1
|
||||
// CHECK:STDOUT: %.loc32_16.2: ref %D = temporary %.loc32_16.1, %ReturnDUnused.call
|
||||
// CHECK:STDOUT: %ReturnDUsed.ref: %ReturnDUsed.type = name_ref ReturnDUsed, imports.%import_ref.6 [template = constants.%ReturnDUsed]
|
||||
// CHECK:STDOUT: %.loc41_14.1: ref %D = temporary_storage
|
||||
// CHECK:STDOUT: %ReturnDUsed.call: init %D = call %ReturnDUsed.ref() to %.loc41_14.1
|
||||
// CHECK:STDOUT: %.loc41_14.2: ref %D = temporary %.loc41_14.1, %ReturnDUsed.call
|
||||
// CHECK:STDOUT: %.loc33_14.1: ref %D = temporary_storage
|
||||
// CHECK:STDOUT: %ReturnDUsed.call: init %D = call %ReturnDUsed.ref() to %.loc33_14.1
|
||||
// CHECK:STDOUT: %.loc33_14.2: ref %D = temporary %.loc33_14.1, %ReturnDUsed.call
|
||||
// CHECK:STDOUT: return
|
||||
// CHECK:STDOUT: }
|
||||
// CHECK:STDOUT:
|
||||
|
||||
+7
-7
@@ -15,7 +15,7 @@
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+7]]:9: error: `protected` must appear before `default`
|
||||
// CHECK:STDERR: default protected fn WrongOrder();
|
||||
// CHECK:STDERR: ^~~~~~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: `default` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: note: `default` previously appeared here
|
||||
// CHECK:STDERR: default protected fn WrongOrder();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -28,7 +28,7 @@ default protected fn WrongOrder();
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+7]]:9: error: `virtual` repeated on declaration
|
||||
// CHECK:STDERR: virtual virtual fn DuplicateVirtual() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: `virtual` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: note: `virtual` previously appeared here
|
||||
// CHECK:STDERR: virtual virtual fn DuplicateVirtual() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -37,7 +37,7 @@ virtual virtual fn DuplicateVirtual() {}
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+7]]:9: error: `protected` not allowed on declaration with `private`
|
||||
// CHECK:STDERR: private protected fn TwoAccess();
|
||||
// CHECK:STDERR: ^~~~~~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: `private` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: note: `private` previously appeared here
|
||||
// CHECK:STDERR: private protected fn TwoAccess();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -50,7 +50,7 @@ private protected fn TwoAccess();
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+7]]:10: error: `virtual` not allowed on declaration with `abstract`
|
||||
// CHECK:STDERR: abstract virtual fn ModifiersConflict() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: `abstract` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: note: `abstract` previously appeared here
|
||||
// CHECK:STDERR: abstract virtual fn ModifiersConflict() {}
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -69,14 +69,14 @@ base fn InvalidModifier();
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+14]]:9: error: `final` not allowed on declaration with `default`
|
||||
// CHECK:STDERR: default final virtual fn ModifiersConflict2() {}
|
||||
// CHECK:STDERR: ^~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+11]]:1: `default` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+11]]:1: note: `default` previously appeared here
|
||||
// CHECK:STDERR: default final virtual fn ModifiersConflict2() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+7]]:15: error: `virtual` not allowed on declaration with `default`
|
||||
// CHECK:STDERR: default final virtual fn ModifiersConflict2() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: `default` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: note: `default` previously appeared here
|
||||
// CHECK:STDERR: default final virtual fn ModifiersConflict2() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -85,7 +85,7 @@ default final virtual fn ModifiersConflict2() {}
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+6]]:8: error: `private` must appear before `extern`
|
||||
// CHECK:STDERR: extern private fn ExternOrderAndConflict() {}
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+3]]:1: `extern` previously appeared here
|
||||
// CHECK:STDERR: fail_modifiers.carbon:[[@LINE+3]]:1: note: `extern` previously appeared here
|
||||
// CHECK:STDERR: extern private fn ExternOrderAndConflict() {}
|
||||
// CHECK:STDERR: ^~~~~~
|
||||
extern private fn ExternOrderAndConflict() {}
|
||||
|
||||
+5
-5
@@ -12,7 +12,7 @@ fn A();
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: error: redeclaration of `fn A` is redundant
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: note: previously declared here
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -22,7 +22,7 @@ fn B(x: ());
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: error: redeclaration of `fn B` is redundant
|
||||
// CHECK:STDERR: fn B(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: note: previously declared here
|
||||
// CHECK:STDERR: fn B(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -32,7 +32,7 @@ fn C();
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: error: redeclaration differs because of parameter count of 1
|
||||
// CHECK:STDERR: fn C(x: ());
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: previously declared with parameter count of 0
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: note: previously declared with parameter count of 0
|
||||
// CHECK:STDERR: fn C();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -42,7 +42,7 @@ fn D() {}
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+7]]:1: error: redeclaration of `fn D` is redundant
|
||||
// CHECK:STDERR: fn D();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: previously declared here
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: note: previously declared here
|
||||
// CHECK:STDERR: fn D() {}
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -52,7 +52,7 @@ fn E() {}
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE+6]]:1: error: redefinition of `fn E`
|
||||
// CHECK:STDERR: fn E() {}
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: previously defined here
|
||||
// CHECK:STDERR: fail_redecl.carbon:[[@LINE-4]]:1: note: previously defined here
|
||||
// CHECK:STDERR: fn E() {}
|
||||
// CHECK:STDERR: ^~~~~~~~
|
||||
fn E() {}
|
||||
|
||||
+4
-8
@@ -30,13 +30,11 @@ extern fn A();
|
||||
|
||||
impl library "[[@TEST_NAME]]";
|
||||
|
||||
// CHECK:STDERR: fail_extern_api.impl.carbon:[[@LINE+14]]:1: error: redeclarations of `fn A` must match use of `extern`
|
||||
// CHECK:STDERR: fail_extern_api.impl.carbon:[[@LINE+12]]:1: error: redeclarations of `fn A` must match use of `extern`
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: fail_extern_api.impl.carbon:[[@LINE-5]]:6: in import
|
||||
// CHECK:STDERR: impl library "extern_api";
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: extern_api.carbon:4:1: previously declared here
|
||||
// CHECK:STDERR: extern_api.carbon:4:1: note: previously declared here
|
||||
// CHECK:STDERR: extern fn A();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR:
|
||||
@@ -56,13 +54,11 @@ fn A();
|
||||
|
||||
impl library "[[@TEST_NAME]]";
|
||||
|
||||
// CHECK:STDERR: fail_extern_impl.impl.carbon:[[@LINE+9]]:1: error: redeclarations of `fn A` must match use of `extern`
|
||||
// CHECK:STDERR: fail_extern_impl.impl.carbon:[[@LINE+7]]:1: error: redeclarations of `fn A` must match use of `extern`
|
||||
// CHECK:STDERR: extern fn A();
|
||||
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
||||
// CHECK:STDERR: fail_extern_impl.impl.carbon:[[@LINE-5]]:6: in import
|
||||
// CHECK:STDERR: impl library "extern_impl";
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
// CHECK:STDERR: extern_impl.carbon:4:1: previously declared here
|
||||
// CHECK:STDERR: extern_impl.carbon:4:1: note: previously declared here
|
||||
// CHECK:STDERR: fn A();
|
||||
// CHECK:STDERR: ^~~~~~~
|
||||
extern fn A();
|
||||
|
||||
Reference in New Issue
Block a user