fail_import_invalid.carbon 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  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. // --- main.carbon
  7. // CHECK:STDERR: main.carbon:[[@LINE+3]]:1: ERROR: Imports from the current package must omit the package name.
  8. // CHECK:STDERR: import Main;
  9. // CHECK:STDERR: ^~~~~~
  10. import Main;
  11. // CHECK:STDERR: main.carbon:[[@LINE+3]]:1: ERROR: Imports from the current package must omit the package name.
  12. // CHECK:STDERR: import Main library "lib";
  13. // CHECK:STDERR: ^~~~~~
  14. import Main library "lib";
  15. // --- not_main.carbon
  16. package NotMain api;
  17. // CHECK:STDERR: not_main.carbon:[[@LINE+3]]:1: ERROR: Cannot import `Main` from other packages.
  18. // CHECK:STDERR: import Main;
  19. // CHECK:STDERR: ^~~~~~
  20. import Main;
  21. // CHECK:STDERR: not_main.carbon:[[@LINE+3]]:1: ERROR: Cannot import `Main` from other packages.
  22. // CHECK:STDERR: import Main library "lib";
  23. // CHECK:STDERR: ^~~~~~
  24. import Main library "lib";
  25. // --- this.carbon
  26. package This api;
  27. // CHECK:STDERR: this.carbon:[[@LINE+3]]:1: ERROR: File cannot import itself.
  28. // CHECK:STDERR: import This;
  29. // CHECK:STDERR: ^~~~~~
  30. import This;
  31. // --- this_lib.carbon
  32. package This library "lib" api;
  33. // CHECK:STDERR: this_lib.carbon:[[@LINE+3]]:1: ERROR: File cannot import itself.
  34. // CHECK:STDERR: import library "lib";
  35. // CHECK:STDERR: ^~~~~~
  36. import library "lib";
  37. // --- implicit_api.carbon
  38. package Implicit api;
  39. // --- implicit.impl.carbon
  40. package Implicit impl;
  41. // CHECK:STDERR: implicit.impl.carbon:[[@LINE+3]]:1: ERROR: Explicit import of `api` from `impl` file is redundant with implicit import.
  42. // CHECK:STDERR: import Implicit;
  43. // CHECK:STDERR: ^~~~~~
  44. import Implicit;
  45. // --- implicit_lib_api.carbon
  46. package Implicit library "lib" api;
  47. // --- implicit_lib.impl.carbon
  48. package Implicit library "lib" impl;
  49. // CHECK:STDERR: implicit_lib.impl.carbon:[[@LINE+3]]:1: ERROR: Explicit import of `api` from `impl` file is redundant with implicit import.
  50. // CHECK:STDERR: import Implicit library "lib";
  51. // CHECK:STDERR: ^~~~~~
  52. import Implicit library "lib";
  53. // --- not_found.carbon
  54. package NotFound api;
  55. // CHECK:STDERR: not_found.carbon:[[@LINE+3]]:1: ERROR: Imported API not found.
  56. // CHECK:STDERR: import ImportNotFound;
  57. // CHECK:STDERR: ^~~~~~
  58. import ImportNotFound;
  59. // CHECK:STDOUT: --- main.carbon
  60. // CHECK:STDOUT:
  61. // CHECK:STDOUT: file {
  62. // CHECK:STDOUT: package: <namespace> = namespace {}
  63. // CHECK:STDOUT: }
  64. // CHECK:STDOUT:
  65. // CHECK:STDOUT: --- not_main.carbon
  66. // CHECK:STDOUT:
  67. // CHECK:STDOUT: file {
  68. // CHECK:STDOUT: package: <namespace> = namespace {}
  69. // CHECK:STDOUT: }
  70. // CHECK:STDOUT:
  71. // CHECK:STDOUT: --- this.carbon
  72. // CHECK:STDOUT:
  73. // CHECK:STDOUT: file {
  74. // CHECK:STDOUT: package: <namespace> = namespace {}
  75. // CHECK:STDOUT: }
  76. // CHECK:STDOUT:
  77. // CHECK:STDOUT: --- this_lib.carbon
  78. // CHECK:STDOUT:
  79. // CHECK:STDOUT: file {
  80. // CHECK:STDOUT: package: <namespace> = namespace {}
  81. // CHECK:STDOUT: }
  82. // CHECK:STDOUT:
  83. // CHECK:STDOUT: --- implicit_api.carbon
  84. // CHECK:STDOUT:
  85. // CHECK:STDOUT: file {
  86. // CHECK:STDOUT: package: <namespace> = namespace {}
  87. // CHECK:STDOUT: }
  88. // CHECK:STDOUT:
  89. // CHECK:STDOUT: --- implicit.impl.carbon
  90. // CHECK:STDOUT:
  91. // CHECK:STDOUT: file {
  92. // CHECK:STDOUT: package: <namespace> = namespace {}
  93. // CHECK:STDOUT: }
  94. // CHECK:STDOUT:
  95. // CHECK:STDOUT: --- implicit_lib_api.carbon
  96. // CHECK:STDOUT:
  97. // CHECK:STDOUT: file {
  98. // CHECK:STDOUT: package: <namespace> = namespace {}
  99. // CHECK:STDOUT: }
  100. // CHECK:STDOUT:
  101. // CHECK:STDOUT: --- implicit_lib.impl.carbon
  102. // CHECK:STDOUT:
  103. // CHECK:STDOUT: file {
  104. // CHECK:STDOUT: package: <namespace> = namespace {}
  105. // CHECK:STDOUT: }
  106. // CHECK:STDOUT:
  107. // CHECK:STDOUT: --- not_found.carbon
  108. // CHECK:STDOUT:
  109. // CHECK:STDOUT: file {
  110. // CHECK:STDOUT: package: <namespace> = namespace {}
  111. // CHECK:STDOUT: %import: <namespace> = import ir1, ir1
  112. // CHECK:STDOUT: %ImportNotFound: <namespace> = bind_name ImportNotFound, %import
  113. // CHECK:STDOUT: }
  114. // CHECK:STDOUT: