go directive 源码

  • 2022-07-15
  • 浏览 (857)

golang directive 代码

文件路径:/test/directive.go

// errorcheck

// Copyright 2020 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.

// Verify that misplaced directives are diagnosed.

//go:noinline // ERROR "misplaced compiler directive"

//go:noinline // ERROR "misplaced compiler directive"
package main

//go:nosplit
func f1() {}

//go:nosplit
//go:noinline
func f2() {}

//go:noinline // ERROR "misplaced compiler directive"

//go:noinline // ERROR "misplaced compiler directive"
var x int

//go:noinline // ERROR "misplaced compiler directive"
const c = 1

//go:noinline // ERROR "misplaced compiler directive"
type T int

// ok
//go:notinheap
type T1 int

type (
	//go:notinheap
	//go:noinline // ERROR "misplaced compiler directive"
	T2  int
	T2b int
	//go:notinheap
	T2c int
	//go:noinline // ERROR "misplaced compiler directive"
	T3 int
)

//go:noinline
func f() {
	x := 1

	{
		_ = x
	}
	//go:noinline // ERROR "misplaced compiler directive"
	var y int
	_ = y

	//go:noinline // ERROR "misplaced compiler directive"
	const c = 1

	_ = func() {}

	//go:noinline // ERROR "misplaced compiler directive"
	// ok:
	//go:notinheap
	type T int
}

// someday there might be a directive that can apply to type aliases, but go:notinheap doesn't.
//go:notinheap // ERROR "misplaced compiler directive"
type T6 = int

相关信息

go 源码目录

相关文章

go 235 源码

go 64bit 源码

go alg 源码

go alias 源码

go alias1 源码

go alias2 源码

go alias3 源码

go align 源码

go append 源码

go append1 源码

0  赞