|
|
@@ -161,29 +161,118 @@ fn AccessMemberWithInvalidBaseFinal_NoMember(p: DeriveFromFinal*) -> i32 {
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: file {
|
|
|
// CHECK:STDOUT: package: <namespace> = namespace {.Base = %Base.decl, .Final = %Final.decl, .DeriveFromError = %DeriveFromError.decl, .AccessMemberWithInvalidBaseError = %AccessMemberWithInvalidBaseError, .DeriveFromNonType = %DeriveFromNonType.decl, .AccessMemberWithInvalidBasNonType = %AccessMemberWithInvalidBasNonType, .DeriveFromi32 = %DeriveFromi32.decl, .ConvertToBadBasei32 = %ConvertToBadBasei32, .AccessMemberWithInvalidBasei32 = %AccessMemberWithInvalidBasei32, .DeriveFromTuple = %DeriveFromTuple.decl, .ConvertToBadBaseTuple = %ConvertToBadBaseTuple, .AccessMemberWithInvalidBaseTuple = %AccessMemberWithInvalidBaseTuple, .DeriveFromStruct = %DeriveFromStruct.decl, .ConvertToBadBaseStruct = %ConvertToBadBaseStruct, .AccessMemberWithInvalidBaseStruct = %AccessMemberWithInvalidBaseStruct, .Incomplete = %Incomplete.decl, .DeriveFromIncomplete = %DeriveFromIncomplete.decl, .ConvertToBadBaseIncomplete = %ConvertToBadBaseIncomplete, .AccessMemberWithInvalidBaseIncomplete = %AccessMemberWithInvalidBaseIncomplete, .DeriveFromFinal = %DeriveFromFinal.decl, .ConvertToBadBaseFinal = %ConvertToBadBaseFinal, .AccessMemberWithInvalidBaseFinal_WithMember = %AccessMemberWithInvalidBaseFinal_WithMember, .AccessMemberWithInvalidBaseFinal_NoMember = %AccessMemberWithInvalidBaseFinal_NoMember} [template]
|
|
|
-// CHECK:STDOUT: %Base.decl = class_decl @Base, () [template = constants.%Base]
|
|
|
-// CHECK:STDOUT: %Final.decl = class_decl @Final, () [template = constants.%Final]
|
|
|
-// CHECK:STDOUT: %DeriveFromError.decl = class_decl @DeriveFromError, () [template = constants.%DeriveFromError]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBaseError: <function> = fn_decl @AccessMemberWithInvalidBaseError [template]
|
|
|
-// CHECK:STDOUT: %DeriveFromNonType.decl = class_decl @DeriveFromNonType, () [template = constants.%DeriveFromNonType]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBasNonType: <function> = fn_decl @AccessMemberWithInvalidBasNonType [template]
|
|
|
-// CHECK:STDOUT: %DeriveFromi32.decl = class_decl @DeriveFromi32, () [template = constants.%DeriveFromi32]
|
|
|
-// CHECK:STDOUT: %ConvertToBadBasei32: <function> = fn_decl @ConvertToBadBasei32 [template]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBasei32: <function> = fn_decl @AccessMemberWithInvalidBasei32 [template]
|
|
|
-// CHECK:STDOUT: %DeriveFromTuple.decl = class_decl @DeriveFromTuple, () [template = constants.%DeriveFromTuple]
|
|
|
-// CHECK:STDOUT: %ConvertToBadBaseTuple: <function> = fn_decl @ConvertToBadBaseTuple [template]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBaseTuple: <function> = fn_decl @AccessMemberWithInvalidBaseTuple [template]
|
|
|
-// CHECK:STDOUT: %DeriveFromStruct.decl = class_decl @DeriveFromStruct, () [template = constants.%DeriveFromStruct]
|
|
|
-// CHECK:STDOUT: %ConvertToBadBaseStruct: <function> = fn_decl @ConvertToBadBaseStruct [template]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBaseStruct: <function> = fn_decl @AccessMemberWithInvalidBaseStruct [template]
|
|
|
-// CHECK:STDOUT: %Incomplete.decl = class_decl @Incomplete, () [template = constants.%Incomplete]
|
|
|
-// CHECK:STDOUT: %DeriveFromIncomplete.decl = class_decl @DeriveFromIncomplete, () [template = constants.%DeriveFromIncomplete]
|
|
|
-// CHECK:STDOUT: %ConvertToBadBaseIncomplete: <function> = fn_decl @ConvertToBadBaseIncomplete [template]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBaseIncomplete: <function> = fn_decl @AccessMemberWithInvalidBaseIncomplete [template]
|
|
|
-// CHECK:STDOUT: %DeriveFromFinal.decl = class_decl @DeriveFromFinal, () [template = constants.%DeriveFromFinal]
|
|
|
-// CHECK:STDOUT: %ConvertToBadBaseFinal: <function> = fn_decl @ConvertToBadBaseFinal [template]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBaseFinal_WithMember: <function> = fn_decl @AccessMemberWithInvalidBaseFinal_WithMember [template]
|
|
|
-// CHECK:STDOUT: %AccessMemberWithInvalidBaseFinal_NoMember: <function> = fn_decl @AccessMemberWithInvalidBaseFinal_NoMember [template]
|
|
|
+// CHECK:STDOUT: %Base.decl = class_decl @Base {} [template = constants.%Base]
|
|
|
+// CHECK:STDOUT: %Final.decl = class_decl @Final {} [template = constants.%Final]
|
|
|
+// CHECK:STDOUT: %DeriveFromError.decl = class_decl @DeriveFromError {} [template = constants.%DeriveFromError]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBaseError: <function> = fn_decl @AccessMemberWithInvalidBaseError {
|
|
|
+// CHECK:STDOUT: %DeriveFromError.ref: type = name_ref DeriveFromError, %DeriveFromError.decl [template = constants.%DeriveFromError]
|
|
|
+// CHECK:STDOUT: %.loc20: type = ptr_type DeriveFromError [template = constants.%.4]
|
|
|
+// CHECK:STDOUT: %p.loc20_37.1: DeriveFromError* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBaseError.%p: DeriveFromError* = bind_name p, %p.loc20_37.1
|
|
|
+// CHECK:STDOUT: %return.var.loc20: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %DeriveFromNonType.decl = class_decl @DeriveFromNonType {} [template = constants.%DeriveFromNonType]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBasNonType: <function> = fn_decl @AccessMemberWithInvalidBasNonType {
|
|
|
+// CHECK:STDOUT: %DeriveFromNonType.ref: type = name_ref DeriveFromNonType, %DeriveFromNonType.decl [template = constants.%DeriveFromNonType]
|
|
|
+// CHECK:STDOUT: %.loc29: type = ptr_type DeriveFromNonType [template = constants.%.6]
|
|
|
+// CHECK:STDOUT: %p.loc29_38.1: DeriveFromNonType* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBasNonType.%p: DeriveFromNonType* = bind_name p, %p.loc29_38.1
|
|
|
+// CHECK:STDOUT: %return.var.loc29: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %DeriveFromi32.decl = class_decl @DeriveFromi32 {} [template = constants.%DeriveFromi32]
|
|
|
+// CHECK:STDOUT: %ConvertToBadBasei32: <function> = fn_decl @ConvertToBadBasei32 {
|
|
|
+// CHECK:STDOUT: %DeriveFromi32.ref.loc43: type = name_ref DeriveFromi32, %DeriveFromi32.decl [template = constants.%DeriveFromi32]
|
|
|
+// CHECK:STDOUT: %.loc43_40: type = ptr_type DeriveFromi32 [template = constants.%.7]
|
|
|
+// CHECK:STDOUT: %p.loc43_24.1: DeriveFromi32* = param p
|
|
|
+// CHECK:STDOUT: @ConvertToBadBasei32.%p: DeriveFromi32* = bind_name p, %p.loc43_24.1
|
|
|
+// CHECK:STDOUT: %.loc43_49: type = ptr_type i32 [template = constants.%.8]
|
|
|
+// CHECK:STDOUT: %return.var.loc43: ref i32* = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBasei32: <function> = fn_decl @AccessMemberWithInvalidBasei32 {
|
|
|
+// CHECK:STDOUT: %DeriveFromi32.ref.loc45: type = name_ref DeriveFromi32, %DeriveFromi32.decl [template = constants.%DeriveFromi32]
|
|
|
+// CHECK:STDOUT: %.loc45: type = ptr_type DeriveFromi32 [template = constants.%.7]
|
|
|
+// CHECK:STDOUT: %p.loc45_35.1: DeriveFromi32* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBasei32.%p: DeriveFromi32* = bind_name p, %p.loc45_35.1
|
|
|
+// CHECK:STDOUT: %return.var.loc45: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %DeriveFromTuple.decl = class_decl @DeriveFromTuple {} [template = constants.%DeriveFromTuple]
|
|
|
+// CHECK:STDOUT: %ConvertToBadBaseTuple: <function> = fn_decl @ConvertToBadBaseTuple {
|
|
|
+// CHECK:STDOUT: %DeriveFromTuple.ref.loc57: type = name_ref DeriveFromTuple, %DeriveFromTuple.decl [template = constants.%DeriveFromTuple]
|
|
|
+// CHECK:STDOUT: %.loc57_44: type = ptr_type DeriveFromTuple [template = constants.%.14]
|
|
|
+// CHECK:STDOUT: %p.loc57_26.1: DeriveFromTuple* = param p
|
|
|
+// CHECK:STDOUT: @ConvertToBadBaseTuple.%p: DeriveFromTuple* = bind_name p, %p.loc57_26.1
|
|
|
+// CHECK:STDOUT: %Base.ref: type = name_ref Base, %Base.decl [template = constants.%Base]
|
|
|
+// CHECK:STDOUT: %.loc57_56.1: (type,) = tuple_literal (%Base.ref)
|
|
|
+// CHECK:STDOUT: %.loc57_56.2: type = converted %.loc57_56.1, constants.%.10 [template = constants.%.10]
|
|
|
+// CHECK:STDOUT: %.loc57_57: type = ptr_type (Base,) [template = constants.%.15]
|
|
|
+// CHECK:STDOUT: %return.var.loc57: ref (Base,)* = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBaseTuple: <function> = fn_decl @AccessMemberWithInvalidBaseTuple {
|
|
|
+// CHECK:STDOUT: %DeriveFromTuple.ref.loc59: type = name_ref DeriveFromTuple, %DeriveFromTuple.decl [template = constants.%DeriveFromTuple]
|
|
|
+// CHECK:STDOUT: %.loc59: type = ptr_type DeriveFromTuple [template = constants.%.14]
|
|
|
+// CHECK:STDOUT: %p.loc59_37.1: DeriveFromTuple* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBaseTuple.%p: DeriveFromTuple* = bind_name p, %p.loc59_37.1
|
|
|
+// CHECK:STDOUT: %return.var.loc59: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %DeriveFromStruct.decl = class_decl @DeriveFromStruct {} [template = constants.%DeriveFromStruct]
|
|
|
+// CHECK:STDOUT: %ConvertToBadBaseStruct: <function> = fn_decl @ConvertToBadBaseStruct {
|
|
|
+// CHECK:STDOUT: %DeriveFromStruct.ref.loc73: type = name_ref DeriveFromStruct, %DeriveFromStruct.decl [template = constants.%DeriveFromStruct]
|
|
|
+// CHECK:STDOUT: %.loc73_46: type = ptr_type DeriveFromStruct [template = constants.%.18]
|
|
|
+// CHECK:STDOUT: %p.loc73_27.1: DeriveFromStruct* = param p
|
|
|
+// CHECK:STDOUT: @ConvertToBadBaseStruct.%p: DeriveFromStruct* = bind_name p, %p.loc73_27.1
|
|
|
+// CHECK:STDOUT: %.loc73_69: type = struct_type {.a: i32, .b: i32} [template = constants.%.16]
|
|
|
+// CHECK:STDOUT: %.loc73_70: type = ptr_type {.a: i32, .b: i32} [template = constants.%.17]
|
|
|
+// CHECK:STDOUT: %return.var.loc73: ref {.a: i32, .b: i32}* = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBaseStruct: <function> = fn_decl @AccessMemberWithInvalidBaseStruct {
|
|
|
+// CHECK:STDOUT: %DeriveFromStruct.ref.loc76: type = name_ref DeriveFromStruct, %DeriveFromStruct.decl [template = constants.%DeriveFromStruct]
|
|
|
+// CHECK:STDOUT: %.loc76: type = ptr_type DeriveFromStruct [template = constants.%.18]
|
|
|
+// CHECK:STDOUT: %p.loc76_38.1: DeriveFromStruct* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBaseStruct.%p: DeriveFromStruct* = bind_name p, %p.loc76_38.1
|
|
|
+// CHECK:STDOUT: %return.var.loc76: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %Incomplete.decl = class_decl @Incomplete {} [template = constants.%Incomplete]
|
|
|
+// CHECK:STDOUT: %DeriveFromIncomplete.decl = class_decl @DeriveFromIncomplete {} [template = constants.%DeriveFromIncomplete]
|
|
|
+// CHECK:STDOUT: %ConvertToBadBaseIncomplete: <function> = fn_decl @ConvertToBadBaseIncomplete {
|
|
|
+// CHECK:STDOUT: %DeriveFromIncomplete.ref.loc93: type = name_ref DeriveFromIncomplete, %DeriveFromIncomplete.decl [template = constants.%DeriveFromIncomplete]
|
|
|
+// CHECK:STDOUT: %.loc93_54: type = ptr_type DeriveFromIncomplete [template = constants.%.19]
|
|
|
+// CHECK:STDOUT: %p.loc93_31.1: DeriveFromIncomplete* = param p
|
|
|
+// CHECK:STDOUT: @ConvertToBadBaseIncomplete.%p: DeriveFromIncomplete* = bind_name p, %p.loc93_31.1
|
|
|
+// CHECK:STDOUT: %Incomplete.ref: type = name_ref Incomplete, %Incomplete.decl [template = constants.%Incomplete]
|
|
|
+// CHECK:STDOUT: %.loc93_70: type = ptr_type Incomplete [template = constants.%.20]
|
|
|
+// CHECK:STDOUT: %return.var.loc93: ref Incomplete* = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBaseIncomplete: <function> = fn_decl @AccessMemberWithInvalidBaseIncomplete {
|
|
|
+// CHECK:STDOUT: %DeriveFromIncomplete.ref.loc95: type = name_ref DeriveFromIncomplete, %DeriveFromIncomplete.decl [template = constants.%DeriveFromIncomplete]
|
|
|
+// CHECK:STDOUT: %.loc95: type = ptr_type DeriveFromIncomplete [template = constants.%.19]
|
|
|
+// CHECK:STDOUT: %p.loc95_42.1: DeriveFromIncomplete* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBaseIncomplete.%p: DeriveFromIncomplete* = bind_name p, %p.loc95_42.1
|
|
|
+// CHECK:STDOUT: %return.var.loc95: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %DeriveFromFinal.decl = class_decl @DeriveFromFinal {} [template = constants.%DeriveFromFinal]
|
|
|
+// CHECK:STDOUT: %ConvertToBadBaseFinal: <function> = fn_decl @ConvertToBadBaseFinal {
|
|
|
+// CHECK:STDOUT: %DeriveFromFinal.ref.loc105: type = name_ref DeriveFromFinal, %DeriveFromFinal.decl [template = constants.%DeriveFromFinal]
|
|
|
+// CHECK:STDOUT: %.loc105_44: type = ptr_type DeriveFromFinal [template = constants.%.24]
|
|
|
+// CHECK:STDOUT: %p.loc105_26.1: DeriveFromFinal* = param p
|
|
|
+// CHECK:STDOUT: @ConvertToBadBaseFinal.%p: DeriveFromFinal* = bind_name p, %p.loc105_26.1
|
|
|
+// CHECK:STDOUT: %Final.ref: type = name_ref Final, %Final.decl [template = constants.%Final]
|
|
|
+// CHECK:STDOUT: %.loc105_55: type = ptr_type Final [template = constants.%.25]
|
|
|
+// CHECK:STDOUT: %return.var.loc105: ref Final* = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBaseFinal_WithMember: <function> = fn_decl @AccessMemberWithInvalidBaseFinal_WithMember {
|
|
|
+// CHECK:STDOUT: %DeriveFromFinal.ref.loc109: type = name_ref DeriveFromFinal, %DeriveFromFinal.decl [template = constants.%DeriveFromFinal]
|
|
|
+// CHECK:STDOUT: %.loc109: type = ptr_type DeriveFromFinal [template = constants.%.24]
|
|
|
+// CHECK:STDOUT: %p.loc109_48.1: DeriveFromFinal* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBaseFinal_WithMember.%p: DeriveFromFinal* = bind_name p, %p.loc109_48.1
|
|
|
+// CHECK:STDOUT: %return.var.loc109: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
+// CHECK:STDOUT: %AccessMemberWithInvalidBaseFinal_NoMember: <function> = fn_decl @AccessMemberWithInvalidBaseFinal_NoMember {
|
|
|
+// CHECK:STDOUT: %DeriveFromFinal.ref.loc113: type = name_ref DeriveFromFinal, %DeriveFromFinal.decl [template = constants.%DeriveFromFinal]
|
|
|
+// CHECK:STDOUT: %.loc113: type = ptr_type DeriveFromFinal [template = constants.%.24]
|
|
|
+// CHECK:STDOUT: %p.loc113_46.1: DeriveFromFinal* = param p
|
|
|
+// CHECK:STDOUT: @AccessMemberWithInvalidBaseFinal_NoMember.%p: DeriveFromFinal* = bind_name p, %p.loc113_46.1
|
|
|
+// CHECK:STDOUT: %return.var.loc113: ref i32 = var <return slot>
|
|
|
+// CHECK:STDOUT: } [template]
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT:
|
|
|
// CHECK:STDOUT: class @Base {
|