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

// ok
//go:build !ignore

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

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

//go:build bad // ERROR "misplaced compiler directive"

//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

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

//go:notinheap // ERROR "misplaced compiler directive"
type (
	//go:notinheap
	T4 int
)

//go:notinheap // ERROR "misplaced compiler directive"
type ()

type T5 int

func g() {} //go:noinline // ERROR "misplaced compiler directive"

// ok: attached to f (duplicated yes, but ok)
//go:noinline

//go:noinline
func f() {
	//go:noinline // ERROR "misplaced compiler directive"
	x := 1

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

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

	//go:noinline // ERROR "misplaced compiler directive"
	_ = 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

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

//go:build bad // ERROR "misplaced compiler directive"
