patch internal/reflectlite; demo: sort.Ints
This commit is contained in:
@@ -208,6 +208,7 @@ Here are the Go packages that can be imported correctly:
|
|||||||
* [math](https://pkg.go.dev/math)
|
* [math](https://pkg.go.dev/math)
|
||||||
* [math/bits](https://pkg.go.dev/math/bits)
|
* [math/bits](https://pkg.go.dev/math/bits)
|
||||||
* [math/cmplx](https://pkg.go.dev/math/cmplx)
|
* [math/cmplx](https://pkg.go.dev/math/cmplx)
|
||||||
|
* [sort](https://pkg.go.dev/sort)
|
||||||
* [strconv](https://pkg.go.dev/strconv)
|
* [strconv](https://pkg.go.dev/strconv)
|
||||||
* [sync/atomic](https://pkg.go.dev/sync/atomic)
|
* [sync/atomic](https://pkg.go.dev/sync/atomic)
|
||||||
* [sync](https://pkg.go.dev/sync) (partially)
|
* [sync](https://pkg.go.dev/sync) (partially)
|
||||||
|
|||||||
11
_demo/sortdemo/sort.go
Normal file
11
_demo/sortdemo/sort.go
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import "sort"
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
vals := []int{32, 58, 25, 92, 45, 78}
|
||||||
|
sort.Ints(vals)
|
||||||
|
for _, v := range vals {
|
||||||
|
println(v)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -518,14 +518,15 @@ func ignoreName(name string) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
return (strings.HasPrefix(name, "internal/") && !supportedInternal(name)) ||
|
const internal = "internal/"
|
||||||
|
return (strings.HasPrefix(name, internal) && !supportedInternal(name[len(internal):])) ||
|
||||||
strings.HasPrefix(name, "crypto/") || strings.HasPrefix(name, "runtime/") ||
|
strings.HasPrefix(name, "crypto/") || strings.HasPrefix(name, "runtime/") ||
|
||||||
strings.HasPrefix(name, "arena.") || strings.HasPrefix(name, "maps.") ||
|
strings.HasPrefix(name, "arena.") || strings.HasPrefix(name, "maps.") ||
|
||||||
strings.HasPrefix(name, "time.") || strings.HasPrefix(name, "plugin.")
|
strings.HasPrefix(name, "time.") || strings.HasPrefix(name, "plugin.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func supportedInternal(name string) bool {
|
func supportedInternal(name string) bool {
|
||||||
return strings.HasPrefix(name, "internal/bytealg.")
|
return strings.HasPrefix(name, "bytealg.") || strings.HasPrefix(name, "reflectlite.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -739,18 +739,19 @@ func canSkipToBuild(pkgPath string) bool {
|
|||||||
type none struct{}
|
type none struct{}
|
||||||
|
|
||||||
var hasAltPkg = map[string]none{
|
var hasAltPkg = map[string]none{
|
||||||
"errors": {},
|
"errors": {},
|
||||||
"internal/bytealg": {},
|
"internal/bytealg": {},
|
||||||
"io": {},
|
"internal/reflectlite": {},
|
||||||
"io/fs": {},
|
"io": {},
|
||||||
"math": {},
|
"io/fs": {},
|
||||||
"math/cmplx": {},
|
"math": {},
|
||||||
"reflect": {},
|
"math/cmplx": {},
|
||||||
"sync": {},
|
"reflect": {},
|
||||||
"sync/atomic": {},
|
"sync": {},
|
||||||
"syscall": {},
|
"sync/atomic": {},
|
||||||
"os": {},
|
"syscall": {},
|
||||||
"runtime": {},
|
"os": {},
|
||||||
|
"runtime": {},
|
||||||
}
|
}
|
||||||
|
|
||||||
func check(err error) {
|
func check(err error) {
|
||||||
|
|||||||
22
internal/lib/internal/reflectlite/reflectlite.go
Normal file
22
internal/lib/internal/reflectlite/reflectlite.go
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package reflectlite
|
||||||
|
|
||||||
|
// llgo:skipall
|
||||||
|
import (
|
||||||
|
_ "unsafe"
|
||||||
|
)
|
||||||
@@ -1,3 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
// Copyright 2012 The Go Authors. All rights reserved.
|
// Copyright 2012 The Go Authors. All rights reserved.
|
||||||
// Use of this source code is governed by a BSD-style
|
// Use of this source code is governed by a BSD-style
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|||||||
@@ -14,6 +14,10 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Copyright 2009 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.
|
||||||
|
|
||||||
package reflect
|
package reflect
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
|||||||
Reference in New Issue
Block a user