|
|
@@ -19,12 +19,6 @@ fn F() {}
|
|
|
package Other library "fn_extern" api;
|
|
|
|
|
|
// TODO: Mark extern
|
|
|
-// CHECK:STDERR: other_fn_extern.carbon:[[@LINE+6]]:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
-// CHECK:STDERR: fn F();
|
|
|
-// CHECK:STDERR: ^~~~~~~
|
|
|
-// CHECK:STDERR: other_fn.carbon:4:1: Name is previously declared here.
|
|
|
-// CHECK:STDERR: fn F() {}
|
|
|
-// CHECK:STDERR: ^~~~~~~~
|
|
|
fn F();
|
|
|
|
|
|
// --- other_fn_conflict.carbon
|
|
|
@@ -66,19 +60,25 @@ fn Run() {
|
|
|
library "use_other_extern" api;
|
|
|
|
|
|
import Other library "fn";
|
|
|
+// CHECK:STDERR: fail_main_use_other_extern.carbon:[[@LINE+12]]:1: In import.
|
|
|
+// CHECK:STDERR: import Other library "fn_extern";
|
|
|
+// CHECK:STDERR: ^~~~~~
|
|
|
+// CHECK:STDERR: other_fn_extern.carbon:5:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
+// CHECK:STDERR: fn F();
|
|
|
+// CHECK:STDERR: ^~~~~~~
|
|
|
+// CHECK:STDERR: fail_main_use_other_extern.carbon:[[@LINE-7]]:1: In import.
|
|
|
+// CHECK:STDERR: import Other library "fn";
|
|
|
+// CHECK:STDERR: ^~~~~~
|
|
|
+// CHECK:STDERR: other_fn.carbon:4:1: Name is previously declared here.
|
|
|
+// CHECK:STDERR: fn F() {}
|
|
|
+// CHECK:STDERR: ^~~~~~~~
|
|
|
import Other library "fn_extern";
|
|
|
|
|
|
fn Run() {
|
|
|
- // CHECK:STDERR: fail_main_use_other_extern.carbon:[[@LINE+10]]:3: In name lookup for `F`.
|
|
|
+ // CHECK:STDERR: fail_main_use_other_extern.carbon:[[@LINE+4]]:3: In name lookup for `F`.
|
|
|
// CHECK:STDERR: Other.F();
|
|
|
// CHECK:STDERR: ^~~~~~~
|
|
|
// CHECK:STDERR:
|
|
|
- // CHECK:STDERR: other_fn_conflict.carbon:4:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
- // CHECK:STDERR: fn F(x: i32) {}
|
|
|
- // CHECK:STDERR: ^~~~~~~~~~~~~~
|
|
|
- // CHECK:STDERR: other_fn.carbon:4:1: Name is previously declared here.
|
|
|
- // CHECK:STDERR: fn F() {}
|
|
|
- // CHECK:STDERR: ^~~~~~~~
|
|
|
Other.F();
|
|
|
}
|
|
|
|
|
|
@@ -94,6 +94,18 @@ import Other library "fn_conflict";
|
|
|
library "use_other_ambiguous" api;
|
|
|
|
|
|
import Other library "fn";
|
|
|
+// CHECK:STDERR: fail_main_use_other_ambiguous.carbon:[[@LINE+12]]:1: In import.
|
|
|
+// CHECK:STDERR: import Other library "fn_conflict";
|
|
|
+// CHECK:STDERR: ^~~~~~
|
|
|
+// CHECK:STDERR: other_fn_conflict.carbon:4:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
+// CHECK:STDERR: fn F(x: i32) {}
|
|
|
+// CHECK:STDERR: ^~~~~~~~~~~~~~
|
|
|
+// CHECK:STDERR: fail_main_use_other_ambiguous.carbon:[[@LINE-7]]:1: In import.
|
|
|
+// CHECK:STDERR: import Other library "fn";
|
|
|
+// CHECK:STDERR: ^~~~~~
|
|
|
+// CHECK:STDERR: other_fn.carbon:4:1: Name is previously declared here.
|
|
|
+// CHECK:STDERR: fn F() {}
|
|
|
+// CHECK:STDERR: ^~~~~~~~
|
|
|
import Other library "fn_conflict";
|
|
|
|
|
|
fn Run() {
|
|
|
@@ -109,18 +121,24 @@ fn Run() {
|
|
|
library "namespace_conflict" api;
|
|
|
|
|
|
import library "other_ns";
|
|
|
-// CHECK:STDERR: fail_main_namespace_conflict.carbon:[[@LINE+7]]:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
+// CHECK:STDERR: fail_main_namespace_conflict.carbon:[[@LINE+10]]:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
// CHECK:STDERR: import Other library "fn";
|
|
|
// CHECK:STDERR: ^~~~~~
|
|
|
+// CHECK:STDERR: fail_main_namespace_conflict.carbon:[[@LINE-4]]:1: In import.
|
|
|
+// CHECK:STDERR: import library "other_ns";
|
|
|
+// CHECK:STDERR: ^~~~~~
|
|
|
// CHECK:STDERR: main_other_ns.carbon:4:1: Name is previously declared here.
|
|
|
// CHECK:STDERR: namespace Other;
|
|
|
// CHECK:STDERR: ^~~~~~~~~~~~~~~~
|
|
|
// CHECK:STDERR:
|
|
|
import Other library "fn";
|
|
|
|
|
|
-// CHECK:STDERR: fail_main_namespace_conflict.carbon:[[@LINE+7]]:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
+// CHECK:STDERR: fail_main_namespace_conflict.carbon:[[@LINE+10]]:1: ERROR: Duplicate name being declared in the same scope.
|
|
|
// CHECK:STDERR: fn Other.F() {}
|
|
|
// CHECK:STDERR: ^~~~~~~~~~~~~~
|
|
|
+// CHECK:STDERR: fail_main_namespace_conflict.carbon:[[@LINE-5]]:1: In import.
|
|
|
+// CHECK:STDERR: import Other library "fn";
|
|
|
+// CHECK:STDERR: ^~~~~~
|
|
|
// CHECK:STDERR: other_fn.carbon:4:1: Name is previously declared here.
|
|
|
// CHECK:STDERR: fn F() {}
|
|
|
// CHECK:STDERR: ^~~~~~~~
|
|
|
@@ -277,7 +295,7 @@ fn Other.G() {}
|
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: %Other.ref: <namespace> = name_ref Other, file.%Other [template = file.%Other]
|
|
|
// CHECK:STDOUT: %F.ref: <function> = name_ref F, file.%import_ref.1 [template = imports.%F.1]
|
|
|
-// CHECK:STDOUT: %.loc18: init () = call %F.ref()
|
|
|
+// CHECK:STDOUT: %.loc24: init () = call %F.ref()
|
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -315,7 +333,7 @@ fn Other.G() {}
|
|
|
// CHECK:STDOUT: !entry:
|
|
|
// CHECK:STDOUT: %Other.ref: <namespace> = name_ref Other, file.%Other [template = file.%Other]
|
|
|
// CHECK:STDOUT: %F.ref: <function> = name_ref F, file.%import_ref.1 [template = imports.%F.1]
|
|
|
-// CHECK:STDOUT: %.loc12: init () = call %F.ref()
|
|
|
+// CHECK:STDOUT: %.loc24: init () = call %F.ref()
|
|
|
// CHECK:STDOUT: return
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
@@ -332,7 +350,7 @@ fn Other.G() {}
|
|
|
// CHECK:STDOUT: %import_ref.1: <namespace> = import_ref ir1, inst+1, used
|
|
|
// CHECK:STDOUT: %Other: <namespace> = namespace %import_ref.1, [template] {}
|
|
|
// CHECK:STDOUT: %import_ref.2: <function> = import_ref ir2, inst+1, used [template = imports.%F]
|
|
|
-// CHECK:STDOUT: %.loc21: <function> = fn_decl @.1 [template] {}
|
|
|
+// CHECK:STDOUT: %.loc27: <function> = fn_decl @.1 [template] {}
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: fn @F();
|