<commit_before>package org.rust.lang.core.stubs

import com.intellij.psi.stubs.IndexSink
import org.rust.lang.core.psi.RustCompositeElement
import org.rust.lang.core.stubs.index.RustNamedElementIndex

abstract class RustNamedStubElementType<StubT, PsiT>(debugName: String) : RustStubElementType<StubT, PsiT>(debugName)
    where StubT : RustNamedElementStub<*>,
          PsiT  : RustCompositeElement {

    final override fun indexStub(stub: StubT, sink: IndexSink) {
        stub.name?.let { sink.occurrence(RustNamedElementIndex.KEY, it) }
        additionalIndexing(stub, sink)
    }
<commit_msg>(STUB): more precise generic bounds<commit_after>package org.rust.lang.core.stubs

import com.intellij.psi.stubs.IndexSink
import org.rust.lang.core.psi.RustNamedElement
import org.rust.lang.core.stubs.index.RustNamedElementIndex

abstract class RustNamedStubElementType<StubT, PsiT>(debugName: String) : RustStubElementType<StubT, PsiT>(debugName)
    where StubT : RustNamedElementStub<PsiT>,
          PsiT  : RustNamedElement {

    final override fun indexStub(stub: StubT, sink: IndexSink) {
        stub.name?.let { sink.occurrence(RustNamedElementIndex.KEY, it) }
        additionalIndexing(stub, sink)
    }

{'fraction_non_alphanumeric': 0.1018898931799507, 'fraction_numerical': 0.0, 'mean_word_length': 4.665116279069768, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, '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': '1694825', 'n_tokens_mistral': 406, 'n_tokens_neox': 413, 'n_words': 68}