| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130 |
- // Part of the Carbon Language project, under the Apache License v2.0 with LLVM
- // Exceptions. See /LICENSE for license information.
- // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
- //
- // INCLUDE-FILE: toolchain/testing/testdata/min_prelude/none.carbon
- // TODO: Add ranges and switch to "--dump-sem-ir-ranges=only".
- // EXTRA-ARGS: --dump-sem-ir-ranges=if-present
- //
- // AUTOUPDATE
- // TIP: To test this file alone, run:
- // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/check/testdata/packages/export_name.carbon
- // TIP: To dump output, run:
- // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/check/testdata/packages/export_name.carbon
- // ============================================================================
- // Setup files
- // ============================================================================
- // --- base.carbon
- library "[[@TEST_NAME]]";
- class C {
- var x: ();
- };
- namespace NS;
- class NS.NSC {
- var y: ();
- };
- // --- export.carbon
- library "[[@TEST_NAME]]";
- import library "base";
- export C;
- export NS.NSC;
- // --- not_reexporting.carbon
- library "[[@TEST_NAME]]";
- import library "export";
- // --- export_export.carbon
- library "[[@TEST_NAME]]";
- import library "export";
- export C;
- export NS.NSC;
- // --- export_in_impl.carbon
- // This is just providing an API for the implicit import.
- library "[[@TEST_NAME]]";
- // ============================================================================
- // Test files
- // ============================================================================
- // --- use_export.carbon
- library "[[@TEST_NAME]]";
- import library "export";
- var c: C = {.x = ()};
- var nsc: NS.NSC = {.y = ()};
- // --- export_export.impl.carbon
- impl library "[[@TEST_NAME]]";
- var c: C = {.x = ()};
- var nsc: NS.NSC = {.y = ()};
- // --- use_export_export.carbon
- library "[[@TEST_NAME]]";
- import library "export_export";
- var c: C = {.x = ()};
- var nsc: NS.NSC = {.y = ()};
- // --- fail_export_ns.carbon
- library "[[@TEST_NAME]]";
- import library "base";
- // CHECK:STDERR: fail_export_ns.carbon:[[@LINE+8]]:1: error: only imported entities are valid for `export` [ExportNotImportedEntity]
- // CHECK:STDERR: export NS;
- // CHECK:STDERR: ^~~~~~~~~~
- // CHECK:STDERR: fail_export_ns.carbon:[[@LINE-5]]:1: in import [InImport]
- // CHECK:STDERR: base.carbon:8:1: note: name is declared here [ExportNotImportedEntitySource]
- // CHECK:STDERR: namespace NS;
- // CHECK:STDERR: ^~~~~~~~~~~~~
- // CHECK:STDERR:
- export NS;
- // --- fail_export_decl.carbon
- library "[[@TEST_NAME]]";
- class Local {}
- // CHECK:STDERR: fail_export_decl.carbon:[[@LINE+7]]:1: error: only imported entities are valid for `export` [ExportNotImportedEntity]
- // CHECK:STDERR: export Local;
- // CHECK:STDERR: ^~~~~~~~~~~~~
- // CHECK:STDERR: fail_export_decl.carbon:[[@LINE-5]]:1: note: name is declared here [ExportNotImportedEntitySource]
- // CHECK:STDERR: class Local {}
- // CHECK:STDERR: ^~~~~~~~~~~~~
- // CHECK:STDERR:
- export Local;
- // --- fail_export_member.carbon
- library "[[@TEST_NAME]]";
- import library "base";
- // CHECK:STDERR: fail_export_member.carbon:[[@LINE+8]]:8: error: name qualifiers are only allowed for entities that provide a scope [QualifiedNameInNonScope]
- // CHECK:STDERR: export C.x;
- // CHECK:STDERR: ^
- // CHECK:STDERR: fail_export_member.carbon:[[@LINE-5]]:1: in import [InImport]
- // CHECK:STDERR: base.carbon:4:1: note: referenced non-scope entity declared here [QualifiedNameNonScopeEntity]
- // CHECK:STDERR: class C {
- // CHECK:STDERR: ^~~~~~~~~
- // CHECK:STDERR:
- export C.x;
- // --- import_both.carbon
- library "[[@TEST_NAME]]";
- import library "base";
- import library "export";
- var c: C = {.x = ()};
- var nsc: NS.NSC = {.y = ()};
- // --- import_both_reversed.carbon
- library "[[@TEST_NAME]]";
- import library "export";
- import library "base";
- var c: C = {.x = ()};
- var nsc: NS.NSC = {.y = ()};
- // --- fail_use_not_reexporting.carbon
- library "[[@TEST_NAME]]";
- import library "not_reexporting";
- // CHECK:STDERR: fail_use_not_reexporting.carbon:[[@LINE+4]]:15: error: name `C` not found [NameNotFound]
- // CHECK:STDERR: alias Local = C;
- // CHECK:STDERR: ^
- // CHECK:STDERR:
- alias Local = C;
- // CHECK:STDERR: fail_use_not_reexporting.carbon:[[@LINE+4]]:17: error: name `NS` not found [NameNotFound]
- // CHECK:STDERR: alias NSLocal = NS.NSC;
- // CHECK:STDERR: ^~
- // CHECK:STDERR:
- alias NSLocal = NS.NSC;
- // --- repeat_export.carbon
- library "[[@TEST_NAME]]";
- import library "base";
- export C;
- // CHECK:STDERR: repeat_export.carbon:[[@LINE+7]]:1: warning: `export` matches previous `export` [ExportRedundant]
- // CHECK:STDERR: export C;
- // CHECK:STDERR: ^~~~~~~~~
- // CHECK:STDERR: repeat_export.carbon:[[@LINE-4]]:1: note: previous `export` here [ExportPrevious]
- // CHECK:STDERR: export C;
- // CHECK:STDERR: ^~~~~~~~~
- // CHECK:STDERR:
- export C;
- // --- use_repeat_export.carbon
- library "[[@TEST_NAME]]";
- import library "repeat_export";
- var c: C = {.x = ()};
- // --- fail_modifiers.carbon
- library "[[@TEST_NAME]]";
- import library "base";
- // CHECK:STDERR: fail_modifiers.carbon:[[@LINE+4]]:1: error: `private` not allowed on `export` declaration [ModifierNotAllowedOnDeclaration]
- // CHECK:STDERR: private export C;
- // CHECK:STDERR: ^~~~~~~
- // CHECK:STDERR:
- private export C;
- // CHECK:STDOUT: --- base.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %C.elem: type = unbound_element_type %C, %empty_tuple.type [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %NSC.elem: type = unbound_element_type %NSC, %empty_tuple.type [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = %C.decl
- // CHECK:STDOUT: .NS = %NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %C.decl: type = class_decl @C [concrete = constants.%C] {} {}
- // CHECK:STDOUT: %NS: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .NSC = %NSC.decl
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %NSC.decl: type = class_decl @NSC [concrete = constants.%NSC] {} {}
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C {
- // CHECK:STDOUT: %.loc5_11.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc5_11.2: type = converted %.loc5_11.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
- // CHECK:STDOUT: %.loc5_8: %C.elem = field_decl x, element0 [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%struct_type.x [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: complete_type_witness = %complete_type
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = constants.%C
- // CHECK:STDOUT: .x = %.loc5_8
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC {
- // CHECK:STDOUT: %.loc10_11.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc10_11.2: type = converted %.loc10_11.1, constants.%empty_tuple.type [concrete = constants.%empty_tuple.type]
- // CHECK:STDOUT: %.loc10_8: %NSC.elem = field_decl y, element0 [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%struct_type.y [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: complete_type_witness = %complete_type
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = constants.%NSC
- // CHECK:STDOUT: .y = %.loc10_8
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- export.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//base, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = file.%NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.743 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.fec = import_ref Main//base, loc5_8, unloaded
- // CHECK:STDOUT: %Main.import_ref.5ab: <witness> = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.7da = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.045 = import_ref Main//base, loc10_8, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = %C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: %C: type = export C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %NSC: type = export NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.743
- // CHECK:STDOUT: .x = imports.%Main.import_ref.fec
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.5ab
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.7da
- // CHECK:STDOUT: .y = imports.%Main.import_ref.045
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- not_reexporting.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C = import_ref Main//export, C, unloaded
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//export, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC = import_ref Main//export, NSC, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- export_export.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//export, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//export, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = file.%NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.a60 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.e6b = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.8ad = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = %C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: %C: type = export C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %NSC: type = export NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.a60
- // CHECK:STDOUT: .x = imports.%Main.import_ref.e6b
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.63c
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.8ad
- // CHECK:STDOUT: .y = imports.%Main.import_ref.be6
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- export_in_impl.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {}
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- use_export.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.1d2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete]
- // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %NSC [concrete]
- // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.160: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete]
- // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//export, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//export, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.a60 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.e6b = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.8ad = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: .c = %c
- // CHECK:STDOUT: .nsc = %nsc
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = ref_binding_pattern c [concrete]
- // CHECK:STDOUT: %c.var_patt: %pattern_type.7c7 = var_pattern %c.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete]
- // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var]
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %nsc.patt: %pattern_type.ccb = ref_binding_pattern nsc [concrete]
- // CHECK:STDOUT: %nsc.var_patt: %pattern_type.ccb = var_pattern %nsc.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete]
- // CHECK:STDOUT: %.loc7: type = splice_block %NSC.ref [concrete = constants.%NSC] {
- // CHECK:STDOUT: %NS.ref: <namespace> = name_ref NS, imports.%NS [concrete = imports.%NS]
- // CHECK:STDOUT: %NSC.ref: type = name_ref NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc: ref %NSC = ref_binding nsc, %nsc.var [concrete = %nsc.var]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.a60
- // CHECK:STDOUT: .x = imports.%Main.import_ref.e6b
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.63c
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.8ad
- // CHECK:STDOUT: .y = imports.%Main.import_ref.be6
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: fn @__global_init() {
- // CHECK:STDOUT: !entry:
- // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct.948]
- // CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.1d2]
- // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.5: init %C to file.%c.var = class_init (%.loc6_20.4) [concrete = constants.%C.val]
- // CHECK:STDOUT: %.loc6_1: init %C = converted %.loc6_20.1, %.loc6_20.5 [concrete = constants.%C.val]
- // CHECK:STDOUT: assign file.%c.var, %.loc6_1
- // CHECK:STDOUT: %.loc7_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.1: %struct_type.y = struct_literal (%.loc7_26.1) [concrete = constants.%struct.8ce]
- // CHECK:STDOUT: %.loc7_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.160]
- // CHECK:STDOUT: %.loc7_26.2: init %empty_tuple.type to %.loc7_27.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.3: init %empty_tuple.type = converted %.loc7_26.1, %.loc7_26.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.4: init %empty_tuple.type to %.loc7_27.2 = in_place_init %.loc7_27.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.5: init %NSC to file.%nsc.var = class_init (%.loc7_27.4) [concrete = constants.%NSC.val]
- // CHECK:STDOUT: %.loc7_1: init %NSC = converted %.loc7_27.1, %.loc7_27.5 [concrete = constants.%NSC.val]
- // CHECK:STDOUT: assign file.%nsc.var, %.loc7_1
- // CHECK:STDOUT: return
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- export_export.impl.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.1d2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete]
- // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: %pattern_type.fd4: type = pattern_type %NSC [concrete]
- // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.2e1: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete]
- // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//export_export, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//export_export, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.328: <witness> = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.76e = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.d5d = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.c12: <witness> = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.89a = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.64d = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: .c = %c
- // CHECK:STDOUT: .nsc = %nsc
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import.loc2_29.1 = import <none>
- // CHECK:STDOUT: %default.import.loc2_29.2 = import <none>
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = ref_binding_pattern c [concrete]
- // CHECK:STDOUT: %c.var_patt: %pattern_type.7c7 = var_pattern %c.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete]
- // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var]
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %nsc.patt: %pattern_type.fd4 = ref_binding_pattern nsc [concrete]
- // CHECK:STDOUT: %nsc.var_patt: %pattern_type.fd4 = var_pattern %nsc.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete]
- // CHECK:STDOUT: %.loc5: type = splice_block %NSC.ref [concrete = constants.%NSC] {
- // CHECK:STDOUT: %NS.ref: <namespace> = name_ref NS, imports.%NS [concrete = imports.%NS]
- // CHECK:STDOUT: %NSC.ref: type = name_ref NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc: ref %NSC = ref_binding nsc, %nsc.var [concrete = %nsc.var]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "export_export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.328
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.76e
- // CHECK:STDOUT: .x = imports.%Main.import_ref.d5d
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "export_export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.c12
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.89a
- // CHECK:STDOUT: .y = imports.%Main.import_ref.64d
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: fn @__global_init() {
- // CHECK:STDOUT: !entry:
- // CHECK:STDOUT: %.loc4_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc4_20.1: %struct_type.x = struct_literal (%.loc4_19.1) [concrete = constants.%struct.948]
- // CHECK:STDOUT: %.loc4_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.1d2]
- // CHECK:STDOUT: %.loc4_19.2: init %empty_tuple.type to %.loc4_20.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc4_20.3: init %empty_tuple.type = converted %.loc4_19.1, %.loc4_19.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc4_20.4: init %empty_tuple.type to %.loc4_20.2 = in_place_init %.loc4_20.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc4_20.5: init %C to file.%c.var = class_init (%.loc4_20.4) [concrete = constants.%C.val]
- // CHECK:STDOUT: %.loc4_1: init %C = converted %.loc4_20.1, %.loc4_20.5 [concrete = constants.%C.val]
- // CHECK:STDOUT: assign file.%c.var, %.loc4_1
- // CHECK:STDOUT: %.loc5_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc5_27.1: %struct_type.y = struct_literal (%.loc5_26.1) [concrete = constants.%struct.8ce]
- // CHECK:STDOUT: %.loc5_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.2e1]
- // CHECK:STDOUT: %.loc5_26.2: init %empty_tuple.type to %.loc5_27.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc5_27.3: init %empty_tuple.type = converted %.loc5_26.1, %.loc5_26.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc5_27.4: init %empty_tuple.type to %.loc5_27.2 = in_place_init %.loc5_27.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc5_27.5: init %NSC to file.%nsc.var = class_init (%.loc5_27.4) [concrete = constants.%NSC.val]
- // CHECK:STDOUT: %.loc5_1: init %NSC = converted %.loc5_27.1, %.loc5_27.5 [concrete = constants.%NSC.val]
- // CHECK:STDOUT: assign file.%nsc.var, %.loc5_1
- // CHECK:STDOUT: return
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- use_export_export.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.1d2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete]
- // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: %pattern_type.fd4: type = pattern_type %NSC [concrete]
- // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.2e1: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete]
- // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//export_export, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//export_export, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export_export, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.328: <witness> = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.76e = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.d5d = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.c12: <witness> = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.89a = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.64d = import_ref Main//export_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: .c = %c
- // CHECK:STDOUT: .nsc = %nsc
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = ref_binding_pattern c [concrete]
- // CHECK:STDOUT: %c.var_patt: %pattern_type.7c7 = var_pattern %c.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete]
- // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var]
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %nsc.patt: %pattern_type.fd4 = ref_binding_pattern nsc [concrete]
- // CHECK:STDOUT: %nsc.var_patt: %pattern_type.fd4 = var_pattern %nsc.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete]
- // CHECK:STDOUT: %.loc7: type = splice_block %NSC.ref [concrete = constants.%NSC] {
- // CHECK:STDOUT: %NS.ref: <namespace> = name_ref NS, imports.%NS [concrete = imports.%NS]
- // CHECK:STDOUT: %NSC.ref: type = name_ref NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc: ref %NSC = ref_binding nsc, %nsc.var [concrete = %nsc.var]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "export_export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.328
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.76e
- // CHECK:STDOUT: .x = imports.%Main.import_ref.d5d
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "export_export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.c12
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.89a
- // CHECK:STDOUT: .y = imports.%Main.import_ref.64d
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: fn @__global_init() {
- // CHECK:STDOUT: !entry:
- // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct.948]
- // CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.1d2]
- // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.5: init %C to file.%c.var = class_init (%.loc6_20.4) [concrete = constants.%C.val]
- // CHECK:STDOUT: %.loc6_1: init %C = converted %.loc6_20.1, %.loc6_20.5 [concrete = constants.%C.val]
- // CHECK:STDOUT: assign file.%c.var, %.loc6_1
- // CHECK:STDOUT: %.loc7_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.1: %struct_type.y = struct_literal (%.loc7_26.1) [concrete = constants.%struct.8ce]
- // CHECK:STDOUT: %.loc7_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.2e1]
- // CHECK:STDOUT: %.loc7_26.2: init %empty_tuple.type to %.loc7_27.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.3: init %empty_tuple.type = converted %.loc7_26.1, %.loc7_26.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.4: init %empty_tuple.type to %.loc7_27.2 = in_place_init %.loc7_27.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_27.5: init %NSC to file.%nsc.var = class_init (%.loc7_27.4) [concrete = constants.%NSC.val]
- // CHECK:STDOUT: %.loc7_1: init %NSC = converted %.loc7_27.1, %.loc7_27.5 [concrete = constants.%NSC.val]
- // CHECK:STDOUT: assign file.%nsc.var, %.loc7_1
- // CHECK:STDOUT: return
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- fail_export_ns.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C = import_ref Main//base, C, unloaded
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//base, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- fail_export_decl.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %Local: type = class_type @Local [concrete]
- // CHECK:STDOUT: %empty_struct_type: type = struct_type {} [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %empty_struct_type [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .Local = %Local.decl
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Local.decl: type = class_decl @Local [concrete = constants.%Local] {} {}
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @Local {
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness constants.%empty_struct_type [concrete = constants.%complete_type]
- // CHECK:STDOUT: complete_type_witness = %complete_type
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = constants.%Local
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- fail_export_member.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//base, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded
- // CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
- // CHECK:STDOUT: %Main.import_ref.743 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.fec = import_ref Main//base, loc5_8, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.743
- // CHECK:STDOUT: .x = imports.%Main.import_ref.fec
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- import_both.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.1d2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete]
- // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: %pattern_type.b52: type = pattern_type %NSC [concrete]
- // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.b2f: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete]
- // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//base, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//base, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.743 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.fec = import_ref Main//base, loc5_8, unloaded
- // CHECK:STDOUT: %Main.import_ref.5ab: <witness> = import_ref Main//base, loc11_1, loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.7da = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.045 = import_ref Main//base, loc10_8, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: .c = %c
- // CHECK:STDOUT: .nsc = %nsc
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = ref_binding_pattern c [concrete]
- // CHECK:STDOUT: %c.var_patt: %pattern_type.7c7 = var_pattern %c.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete]
- // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var]
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %nsc.patt: %pattern_type.b52 = ref_binding_pattern nsc [concrete]
- // CHECK:STDOUT: %nsc.var_patt: %pattern_type.b52 = var_pattern %nsc.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete]
- // CHECK:STDOUT: %.loc8: type = splice_block %NSC.ref [concrete = constants.%NSC] {
- // CHECK:STDOUT: %NS.ref: <namespace> = name_ref NS, imports.%NS [concrete = imports.%NS]
- // CHECK:STDOUT: %NSC.ref: type = name_ref NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc: ref %NSC = ref_binding nsc, %nsc.var [concrete = %nsc.var]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.743
- // CHECK:STDOUT: .x = imports.%Main.import_ref.fec
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.5ab
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.7da
- // CHECK:STDOUT: .y = imports.%Main.import_ref.045
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: fn @__global_init() {
- // CHECK:STDOUT: !entry:
- // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct.948]
- // CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.1d2]
- // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.5: init %C to file.%c.var = class_init (%.loc7_20.4) [concrete = constants.%C.val]
- // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_20.1, %.loc7_20.5 [concrete = constants.%C.val]
- // CHECK:STDOUT: assign file.%c.var, %.loc7_1
- // CHECK:STDOUT: %.loc8_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.1: %struct_type.y = struct_literal (%.loc8_26.1) [concrete = constants.%struct.8ce]
- // CHECK:STDOUT: %.loc8_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.b2f]
- // CHECK:STDOUT: %.loc8_26.2: init %empty_tuple.type to %.loc8_27.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.3: init %empty_tuple.type = converted %.loc8_26.1, %.loc8_26.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.4: init %empty_tuple.type to %.loc8_27.2 = in_place_init %.loc8_27.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.5: init %NSC to file.%nsc.var = class_init (%.loc8_27.4) [concrete = constants.%NSC.val]
- // CHECK:STDOUT: %.loc8_1: init %NSC = converted %.loc8_27.1, %.loc8_27.5 [concrete = constants.%NSC.val]
- // CHECK:STDOUT: assign file.%nsc.var, %.loc8_1
- // CHECK:STDOUT: return
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- import_both_reversed.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9be: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %pattern_type.7c7: type = pattern_type %C [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %struct.948: %struct_type.x = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.1d2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete]
- // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %NSC: type = class_type @NSC [concrete]
- // CHECK:STDOUT: %struct_type.y: type = struct_type {.y: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type.9f4: <witness> = complete_type_witness %struct_type.y [concrete]
- // CHECK:STDOUT: %pattern_type.ccb: type = pattern_type %NSC [concrete]
- // CHECK:STDOUT: %struct.8ce: %struct_type.y = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.160: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete]
- // CHECK:STDOUT: %NSC.val: %NSC = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//export, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//export, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC: type = import_ref Main//export, NSC, loaded [concrete = constants.%NSC]
- // CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9be]
- // CHECK:STDOUT: %Main.import_ref.a60 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.e6b = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.63c: <witness> = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type.9f4]
- // CHECK:STDOUT: %Main.import_ref.8ad = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.be6 = import_ref Main//export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: .c = %c
- // CHECK:STDOUT: .nsc = %nsc
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %c.patt: %pattern_type.7c7 = ref_binding_pattern c [concrete]
- // CHECK:STDOUT: %c.var_patt: %pattern_type.7c7 = var_pattern %c.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete]
- // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var]
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %nsc.patt: %pattern_type.ccb = ref_binding_pattern nsc [concrete]
- // CHECK:STDOUT: %nsc.var_patt: %pattern_type.ccb = var_pattern %nsc.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc.var: ref %NSC = var %nsc.var_patt [concrete]
- // CHECK:STDOUT: %.loc8: type = splice_block %NSC.ref [concrete = constants.%NSC] {
- // CHECK:STDOUT: %NS.ref: <namespace> = name_ref NS, imports.%NS [concrete = imports.%NS]
- // CHECK:STDOUT: %NSC.ref: type = name_ref NSC, imports.%Main.NSC [concrete = constants.%NSC]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %nsc: ref %NSC = ref_binding nsc, %nsc.var [concrete = %nsc.var]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.a60
- // CHECK:STDOUT: .x = imports.%Main.import_ref.e6b
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @NSC [from "export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.63c
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.8ad
- // CHECK:STDOUT: .y = imports.%Main.import_ref.be6
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: fn @__global_init() {
- // CHECK:STDOUT: !entry:
- // CHECK:STDOUT: %.loc7_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.1: %struct_type.x = struct_literal (%.loc7_19.1) [concrete = constants.%struct.948]
- // CHECK:STDOUT: %.loc7_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.1d2]
- // CHECK:STDOUT: %.loc7_19.2: init %empty_tuple.type to %.loc7_20.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.3: init %empty_tuple.type = converted %.loc7_19.1, %.loc7_19.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.4: init %empty_tuple.type to %.loc7_20.2 = in_place_init %.loc7_20.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc7_20.5: init %C to file.%c.var = class_init (%.loc7_20.4) [concrete = constants.%C.val]
- // CHECK:STDOUT: %.loc7_1: init %C = converted %.loc7_20.1, %.loc7_20.5 [concrete = constants.%C.val]
- // CHECK:STDOUT: assign file.%c.var, %.loc7_1
- // CHECK:STDOUT: %.loc8_26.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.1: %struct_type.y = struct_literal (%.loc8_26.1) [concrete = constants.%struct.8ce]
- // CHECK:STDOUT: %.loc8_27.2: ref %empty_tuple.type = class_element_access file.%nsc.var, element0 [concrete = constants.%.160]
- // CHECK:STDOUT: %.loc8_26.2: init %empty_tuple.type to %.loc8_27.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.3: init %empty_tuple.type = converted %.loc8_26.1, %.loc8_26.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.4: init %empty_tuple.type to %.loc8_27.2 = in_place_init %.loc8_27.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc8_27.5: init %NSC to file.%nsc.var = class_init (%.loc8_27.4) [concrete = constants.%NSC.val]
- // CHECK:STDOUT: %.loc8_1: init %NSC = converted %.loc8_27.1, %.loc8_27.5 [concrete = constants.%NSC.val]
- // CHECK:STDOUT: assign file.%nsc.var, %.loc8_1
- // CHECK:STDOUT: return
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- fail_use_not_reexporting.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = <poisoned>
- // CHECK:STDOUT: .Local = %Local
- // CHECK:STDOUT: .NS = <poisoned>
- // CHECK:STDOUT: .NSLocal = %NSLocal
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: %C.ref: <error> = name_ref C, <error> [concrete = <error>]
- // CHECK:STDOUT: %Local: <error> = alias_binding Local, <error> [concrete = <error>]
- // CHECK:STDOUT: %NS.ref: <error> = name_ref NS, <error> [concrete = <error>]
- // CHECK:STDOUT: %NSC.ref: <error> = name_ref NSC, <error> [concrete = <error>]
- // CHECK:STDOUT: %NSLocal: <error> = alias_binding NSLocal, <error> [concrete = <error>]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- repeat_export.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//base, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded
- // CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
- // CHECK:STDOUT: %Main.import_ref.743 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.fec = import_ref Main//base, loc5_8, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = %C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: %C: type = export C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.743
- // CHECK:STDOUT: .x = imports.%Main.import_ref.fec
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- use_repeat_export.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: %pattern_type: type = pattern_type %C [concrete]
- // CHECK:STDOUT: %empty_tuple: %empty_tuple.type = tuple_value () [concrete]
- // CHECK:STDOUT: %struct: %struct_type.x = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: %.1d2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete]
- // CHECK:STDOUT: %C.val: %C = struct_value (%empty_tuple) [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//repeat_export, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.import_ref.ad3: <witness> = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], loaded [concrete = constants.%complete_type]
- // CHECK:STDOUT: %Main.import_ref.a60 = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: %Main.import_ref.e6b = import_ref Main//repeat_export, inst{{[0-9A-F]+}} [indirect], unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = imports.%Main.C
- // CHECK:STDOUT: .c = %c
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: name_binding_decl {
- // CHECK:STDOUT: %c.patt: %pattern_type = ref_binding_pattern c [concrete]
- // CHECK:STDOUT: %c.var_patt: %pattern_type = var_pattern %c.patt [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %c.var: ref %C = var %c.var_patt [concrete]
- // CHECK:STDOUT: %C.ref: type = name_ref C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: %c: ref %C = ref_binding c, %c.var [concrete = %c.var]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "repeat_export.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.ad3
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.a60
- // CHECK:STDOUT: .x = imports.%Main.import_ref.e6b
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: fn @__global_init() {
- // CHECK:STDOUT: !entry:
- // CHECK:STDOUT: %.loc6_19.1: %empty_tuple.type = tuple_literal () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.1: %struct_type.x = struct_literal (%.loc6_19.1) [concrete = constants.%struct]
- // CHECK:STDOUT: %.loc6_20.2: ref %empty_tuple.type = class_element_access file.%c.var, element0 [concrete = constants.%.1d2]
- // CHECK:STDOUT: %.loc6_19.2: init %empty_tuple.type to %.loc6_20.2 = tuple_init () [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.3: init %empty_tuple.type = converted %.loc6_19.1, %.loc6_19.2 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.4: init %empty_tuple.type to %.loc6_20.2 = in_place_init %.loc6_20.3 [concrete = constants.%empty_tuple]
- // CHECK:STDOUT: %.loc6_20.5: init %C to file.%c.var = class_init (%.loc6_20.4) [concrete = constants.%C.val]
- // CHECK:STDOUT: %.loc6_1: init %C = converted %.loc6_20.1, %.loc6_20.5 [concrete = constants.%C.val]
- // CHECK:STDOUT: assign file.%c.var, %.loc6_1
- // CHECK:STDOUT: return
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: --- fail_modifiers.carbon
- // CHECK:STDOUT:
- // CHECK:STDOUT: constants {
- // CHECK:STDOUT: %C: type = class_type @C [concrete]
- // CHECK:STDOUT: %empty_tuple.type: type = tuple_type () [concrete]
- // CHECK:STDOUT: %struct_type.x: type = struct_type {.x: %empty_tuple.type} [concrete]
- // CHECK:STDOUT: %complete_type: <witness> = complete_type_witness %struct_type.x [concrete]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: imports {
- // CHECK:STDOUT: %Main.C: type = import_ref Main//base, C, loaded [concrete = constants.%C]
- // CHECK:STDOUT: %Main.NS: <namespace> = import_ref Main//base, NS, loaded
- // CHECK:STDOUT: %NS: <namespace> = namespace %Main.NS, [concrete] {
- // CHECK:STDOUT: .NSC = %Main.NSC
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %Main.NSC = import_ref Main//base, NSC, unloaded
- // CHECK:STDOUT: %Main.import_ref.56d: <witness> = import_ref Main//base, loc6_1, loaded [concrete = constants.%complete_type]
- // CHECK:STDOUT: %Main.import_ref.743 = import_ref Main//base, inst{{[0-9A-F]+}} [no loc], unloaded
- // CHECK:STDOUT: %Main.import_ref.fec = import_ref Main//base, loc5_8, unloaded
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: file {
- // CHECK:STDOUT: package: <namespace> = namespace [concrete] {
- // CHECK:STDOUT: .C = %C
- // CHECK:STDOUT: .NS = imports.%NS
- // CHECK:STDOUT: }
- // CHECK:STDOUT: %default.import = import <none>
- // CHECK:STDOUT: %C: type = export C, imports.%Main.C [concrete = constants.%C]
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
- // CHECK:STDOUT: class @C [from "base.carbon"] {
- // CHECK:STDOUT: complete_type_witness = imports.%Main.import_ref.56d
- // CHECK:STDOUT:
- // CHECK:STDOUT: !members:
- // CHECK:STDOUT: .Self = imports.%Main.import_ref.743
- // CHECK:STDOUT: .x = imports.%Main.import_ref.fec
- // CHECK:STDOUT: }
- // CHECK:STDOUT:
|