<commit_before>// RUN: %target-swift-frontend -sil-verify-all -O %s -emit-sil | FileCheck %s

// This file consists of tests for making sure that protocol conformances and
// inherited conformances work well together when applied to each other. The
// check works by making sure we can blow through a long class hierarchy and
// expose the various "unknown" functions.
//
// *NOTE* If something like templated protocols is ever implemented this file
// needs to be updated.

// CHECK-LABEL: sil @_TF38devirt_specialized_inherited_interplay6driverFT_T_ : $@convention(thin) () -> () {
// CHECK: bb0:
// CHECK: [[A1:%[0-9]+]] = alloc_ref $A3<S>
// CHECK: [[A2:%[0-9]+]] = alloc_ref $A4<S>
// CHECK: [[A3:%[0-9]+]] = alloc_ref $A5<S>
// CHECK: [[A4:%[0-9]+]] = alloc_ref $B1<S>
// CHECK: [[A5:%[0-9]+]] = alloc_ref $B2<S>
// CHECK: [[A6:%[0-9]+]] = alloc_ref $B3<S>
// CHECK: [[A7:%[0-9]+]] = alloc_ref $B4<S>
// CHECK: [[F0:%[0-9]+]] = function_ref @unknown0 : $@convention(thin) () -> ()
// CHECK: apply [[F0]]
// CHECK: apply [[F0]]
// CHECK: [[F1:%[0-9]+]] = function_ref @unknown1 : $@convention(thin) () -> ()
// CHECK: apply [[F1]]
// CHECK: apply [[F1]]
// CHECK: [[F2:%[0-9]+]] = function_ref @unknown2 : $@convention(thin) () -> ()
// CHECK: apply [[F2]]
// CHECK: apply [[F2]]
// CHECK: [[F3:%[0-9]+]] = function_ref @unknown3 : $@convention(thin) () -> ()
// CHECK: apply [[F3]]
// CHECK: apply [[F3]]
// CHECK: [[F4:%[0-9]+]] = function_ref @unknown4 : $@convention(thin) () -> ()
// CHECK: apply [[F4]]
// CHECK: apply [[F4]]
// CHECK: [[F5:%[0-9]+]] = function_ref @unknown5 : $@convention(thin) () -> ()
// CHECK: apply [[F5]]
// CHECK: apply [[F5]]
// CHECK: [[F6:%[0-9]+]] = function_ref @unknown6 : $@convention(thin) () -> ()
// CHECK: apply [[F6]]
// CHECK: apply [[F6]]
// CHECK: apply [[F6]]
// CHECK: apply [[F6]]
// CHECK: [[F8:%[0-9]+]] = function_ref @unknown8 :
// CHECK: apply [[F8]]
// CHECK: apply [[F8]]
// CHECK: strong_release [[A7]]
// CHECK-NEXT: strong_release [[A6]]
// CHECK-NEXT: strong_release [[A5]]
// CHECK-NEXT: strong_release [[A4]]
// CHECK-NEXT: strong_release [[A3]]
// CHECK-NEXT: strong_release [[A2]]
// CHECK-NEXT: strong_release [[A1]]
// CHECK-NEXT: tuple
// CHECK-NEXT: return

@asmname("unknown0")
func unknown0() -> ()
@asmname("unknown1")
func unknown1() -> ()
@asmname("unknown2")
func unknown2() -> ()
@asmname("unknown3")
func unknown3() -> ()
@asmname("unknown4")
func unknown4() -> ()
@asmname("unknown5")
func unknown5() -> ()
@asmname("unknown6")
func unknown6() -> ()<commit_msg>Update FileCheck variable names to make test easier to read.<commit_after>// RUN: %target-swift-frontend -sil-verify-all -O %s -emit-sil | FileCheck %s

// This file consists of tests for making sure that protocol conformances and
// inherited conformances work well together when applied to each other. The
// check works by making sure we can blow through a long class hierarchy and
// expose the various "unknown" functions.
//
// *NOTE* If something like templated protocols is ever implemented this file
// needs to be updated.

// CHECK-LABEL: sil @_TF38devirt_specialized_inherited_interplay6driverFT_T_ : $@convention(thin) () -> () {
// CHECK: bb0:
// CHECK: [[A3:%[0-9]+]] = alloc_ref $A3<S>
// CHECK: [[A4:%[0-9]+]] = alloc_ref $A4<S>
// CHECK: [[A5:%[0-9]+]] = alloc_ref $A5<S>
// CHECK: [[B1:%[0-9]+]] = alloc_ref $B1<S>
// CHECK: [[B2:%[0-9]+]] = alloc_ref $B2<S>
// CHECK: [[B3:%[0-9]+]] = alloc_ref $B3<S>
// CHECK: [[B4:%[0-9]+]] = alloc_ref $B4<S>
// CHECK: [[F0:%[0-9]+]] = function_ref @unknown0 : $@convention(thin) () -> ()
// CHECK: apply [[F0]]
// CHECK: apply [[F0]]
// CHECK: [[F1:%[0-9]+]] = function_ref @unknown1 : $@convention(thin) () -> ()
// CHECK: apply [[F1]]
// CHECK: apply [[F1]]
// CHECK: [[F2:%[0-9]+]] = function_ref @unknown2 : $@convention(thin) () -> ()
// CHECK: apply [[F2]]
// CHECK: apply [[F2]]
// CHECK: [[F3:%[0-9]+]] = function_ref @unknown3 : $@convention(thin) () -> ()
// CHECK: apply [[F3]]
// CHECK: apply [[F3]]
// CHECK: [[F4:%[0-9]+]] = function_ref @unknown4 : $@convention(thin) () -> ()
// CHECK: apply [[F4]]
// CHECK: apply [[F4]]
// CHECK: [[F5:%[0-9]+]] = function_ref @unknown5 : $@convention(thin) () -> ()
// CHECK: apply [[F5]]
// CHECK: apply [[F5]]
// CHECK: [[F6:%[0-9]+]] = function_ref @unknown6 : $@convention(thin) () -> ()
// CHECK: apply [[F6]]
// CHECK: apply [[F6]]
// CHECK: apply [[F6]]
// CHECK: apply [[F6]]
// CHECK: [[F8:%[0-9]+]] = function_ref @unknown8 :
// CHECK: apply [[F8]]
// CHECK: apply [[F8]]
// CHECK: strong_release [[B4]]
// CHECK-NEXT: strong_release [[B3]]
// CHECK-NEXT: strong_release [[B2]]
// CHECK-NEXT: strong_release [[B1]]
// CHECK-NEXT: strong_release [[A5]]
// CHECK-NEXT: strong_release [[A4]]
// CHECK-NEXT: strong_release [[A3]]
// CHECK-NEXT: tuple
// CHECK-NEXT: return

@asmname("unknown0")
func unknown0() -> ()
@asmname("unknown1")
func unknown1() -> ()
@asmname("unknown2")
func unknown2() -> ()
@asmname("unknown3")
func unknown3() -> ()
@asmname("unknown4")
func unknown4() -> ()
@asmname("unknown5")
func unknown5() -> ()
@asmname("unknown6")
func unknown6() -> ()
{'fraction_non_alphanumeric': 0.25073056691992984, 'fraction_numerical': 0.04013247613481395, 'mean_word_length': 3.979631425800194, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 47, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7485554', 'n_tokens_mistral': 1943, 'n_tokens_neox': 1902, 'n_words': 487}