Skip to content
Snippets Groups Projects
sort_impl_go121.go 876 B
Newer Older
  • Learn to ignore specific revisions
  • // Copyright 2023 The Go Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    //go:build go1.21
    
    // Starting with Go 1.21, we can leverage the new generic functions from the
    // slices package to implement some `sort` functions faster. However, until
    // the bootstrap compiler uses Go 1.21 or later, we keep a fallback version
    // in sort_impl_120.go that retains the old implementation.
    
    package sort
    
    import "slices"
    
    func intsImpl(x []int)         { slices.Sort(x) }
    func float64sImpl(x []float64) { slices.Sort(x) }
    func stringsImpl(x []string)   { slices.Sort(x) }
    
    func intsAreSortedImpl(x []int) bool         { return slices.IsSorted(x) }
    func float64sAreSortedImpl(x []float64) bool { return slices.IsSorted(x) }
    func stringsAreSortedImpl(x []string) bool   { return slices.IsSorted(x) }