Skip to content

Commit 201a4dc

Browse files
authored
Move the test for unsupported C++ interop decl type out of function_decl.carbon (#5104)
It's not specific for functions Part of #4666
1 parent c9c88e5 commit 201a4dc

File tree

2 files changed

+66
-56
lines changed

2 files changed

+66
-56
lines changed

toolchain/check/testdata/interop/cpp/no_prelude/function_decl.carbon

Lines changed: 0 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -173,31 +173,6 @@ fn F() {
173173
Cpp.foo();
174174
}
175175

176-
// --- non_function_decl.h
177-
178-
class foo;
179-
180-
// --- fail_import_non_function_decl.carbon
181-
182-
library "[[@TEST_NAME]]";
183-
184-
import Cpp library "non_function_decl.h";
185-
186-
fn F() {
187-
// CHECK:STDERR: fail_import_non_function_decl.carbon:[[@LINE+11]]:3: error: semantics TODO: `Unsupported: Declaration type CXXRecord` [SemanticsTodo]
188-
// CHECK:STDERR: Cpp.foo();
189-
// CHECK:STDERR: ^~~~~~~
190-
// CHECK:STDERR: fail_import_non_function_decl.carbon:[[@LINE+8]]:3: note: in `Cpp` name lookup for `foo` [InCppNameLookup]
191-
// CHECK:STDERR: Cpp.foo();
192-
// CHECK:STDERR: ^~~~~~~
193-
// CHECK:STDERR:
194-
// CHECK:STDERR: fail_import_non_function_decl.carbon:[[@LINE+4]]:3: error: member name `foo` not found in `Cpp` [MemberNameNotFoundInScope]
195-
// CHECK:STDERR: Cpp.foo();
196-
// CHECK:STDERR: ^~~~~~~
197-
// CHECK:STDERR:
198-
Cpp.foo();
199-
}
200-
201176
// CHECK:STDOUT: --- import_function_decl.carbon
202177
// CHECK:STDOUT:
203178
// CHECK:STDOUT: constants {
@@ -489,34 +464,3 @@ fn F() {
489464
// CHECK:STDOUT: return
490465
// CHECK:STDOUT: }
491466
// CHECK:STDOUT:
492-
// CHECK:STDOUT: --- fail_import_non_function_decl.carbon
493-
// CHECK:STDOUT:
494-
// CHECK:STDOUT: constants {
495-
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
496-
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
497-
// CHECK:STDOUT: }
498-
// CHECK:STDOUT:
499-
// CHECK:STDOUT: imports {
500-
// CHECK:STDOUT: %Cpp: <namespace> = namespace file.%Cpp.import_cpp, [concrete] {
501-
// CHECK:STDOUT: .foo = <poisoned>
502-
// CHECK:STDOUT: }
503-
// CHECK:STDOUT: }
504-
// CHECK:STDOUT:
505-
// CHECK:STDOUT: file {
506-
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
507-
// CHECK:STDOUT: .Cpp = imports.%Cpp
508-
// CHECK:STDOUT: .F = %F.decl
509-
// CHECK:STDOUT: }
510-
// CHECK:STDOUT: %Cpp.import_cpp = import_cpp {
511-
// CHECK:STDOUT: import Cpp "non_function_decl.h"
512-
// CHECK:STDOUT: }
513-
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {}
514-
// CHECK:STDOUT: }
515-
// CHECK:STDOUT:
516-
// CHECK:STDOUT: fn @F() {
517-
// CHECK:STDOUT: !entry:
518-
// CHECK:STDOUT: %Cpp.ref: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
519-
// CHECK:STDOUT: %foo.ref: <error> = name_ref foo, <error> [concrete = <error>]
520-
// CHECK:STDOUT: return
521-
// CHECK:STDOUT: }
522-
// CHECK:STDOUT:
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
2+
// Exceptions. See /LICENSE for license information.
3+
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
4+
//
5+
// AUTOUPDATE
6+
// TIP: To test this file alone, run:
7+
// TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/interop/cpp/no_prelude/unsupported_decl_type.carbon
8+
// TIP: To dump output, run:
9+
// TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/interop/cpp/no_prelude/unsupported_decl_type.carbon
10+
11+
// --- unsupported_decl.h
12+
13+
class foo;
14+
15+
// --- fail_import_unsupported_decl.carbon
16+
17+
library "[[@TEST_NAME]]";
18+
19+
import Cpp library "unsupported_decl.h";
20+
21+
fn F() {
22+
// CHECK:STDERR: fail_import_unsupported_decl.carbon:[[@LINE+11]]:3: error: semantics TODO: `Unsupported: Declaration type CXXRecord` [SemanticsTodo]
23+
// CHECK:STDERR: Cpp.foo();
24+
// CHECK:STDERR: ^~~~~~~
25+
// CHECK:STDERR: fail_import_unsupported_decl.carbon:[[@LINE+8]]:3: note: in `Cpp` name lookup for `foo` [InCppNameLookup]
26+
// CHECK:STDERR: Cpp.foo();
27+
// CHECK:STDERR: ^~~~~~~
28+
// CHECK:STDERR:
29+
// CHECK:STDERR: fail_import_unsupported_decl.carbon:[[@LINE+4]]:3: error: member name `foo` not found in `Cpp` [MemberNameNotFoundInScope]
30+
// CHECK:STDERR: Cpp.foo();
31+
// CHECK:STDERR: ^~~~~~~
32+
// CHECK:STDERR:
33+
Cpp.foo();
34+
}
35+
36+
// CHECK:STDOUT: --- fail_import_unsupported_decl.carbon
37+
// CHECK:STDOUT:
38+
// CHECK:STDOUT: constants {
39+
// CHECK:STDOUT: %F.type: type = fn_type @F [concrete]
40+
// CHECK:STDOUT: %F: %F.type = struct_value () [concrete]
41+
// CHECK:STDOUT: }
42+
// CHECK:STDOUT:
43+
// CHECK:STDOUT: imports {
44+
// CHECK:STDOUT: %Cpp: <namespace> = namespace file.%Cpp.import_cpp, [concrete] {
45+
// CHECK:STDOUT: .foo = <poisoned>
46+
// CHECK:STDOUT: }
47+
// CHECK:STDOUT: }
48+
// CHECK:STDOUT:
49+
// CHECK:STDOUT: file {
50+
// CHECK:STDOUT: package: <namespace> = namespace [concrete] {
51+
// CHECK:STDOUT: .Cpp = imports.%Cpp
52+
// CHECK:STDOUT: .F = %F.decl
53+
// CHECK:STDOUT: }
54+
// CHECK:STDOUT: %Cpp.import_cpp = import_cpp {
55+
// CHECK:STDOUT: import Cpp "unsupported_decl.h"
56+
// CHECK:STDOUT: }
57+
// CHECK:STDOUT: %F.decl: %F.type = fn_decl @F [concrete = constants.%F] {} {}
58+
// CHECK:STDOUT: }
59+
// CHECK:STDOUT:
60+
// CHECK:STDOUT: fn @F() {
61+
// CHECK:STDOUT: !entry:
62+
// CHECK:STDOUT: %Cpp.ref: <namespace> = name_ref Cpp, imports.%Cpp [concrete = imports.%Cpp]
63+
// CHECK:STDOUT: %foo.ref: <error> = name_ref foo, <error> [concrete = <error>]
64+
// CHECK:STDOUT: return
65+
// CHECK:STDOUT: }
66+
// CHECK:STDOUT:

0 commit comments

Comments
 (0)