// Test of empty-blocks.

package fixtures

import "os"

func earlyRet() bool {
	if cond { //   MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } .../
		println()
		println()
		println()
	} else {
		return false
	}

	if cond { //MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } .../
		println()
	} else {
		return false
	}

	if cond { //MATCH /if c { } else { ... return } can be simplified to if !c { ... return }/
	} else {
		return false
	}

	if cond {
		println()
	} else if cond { //MATCH /if c { } else { ... return } can be simplified to if !c { ... return }/
	} else {
		return false
	}

	// the first branch does not return, so we can't reduce nesting here
	if cond {
		println()
	} else if cond {
		println()
	} else {
		return false
	}

	// Case already covered by golint
	if cond {
		return true
	} else {
		return false
	}

	if cond { //MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } .../
		println()
		println()
		println()
	} else {
		return false
	}

	if cond {
		println()
		println()
		println()
	} else {
		println()
	}

	if cond {
		if cond { //MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } .../
			println()
		} else {
			return false
		}
	}

	if cond {
		println()
	} else {
		if cond { //MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } .../
			println()
		} else {
			return false
		}
	}

	if cond {
		println()
	} else if cond {
		println()
	} else {
		if cond { //MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } .../
			println()
		} else {
			return false
		}
	}

	for {
		if cond { //MATCH /if c { ... } else { ... continue } can be simplified to if !c { ... continue } .../
			println()
		} else {
			continue
		}
	}

	for {
		if cond { //MATCH /if c { ... } else { ... break } can be simplified to if !c { ... break } .../
			println()
		} else {
			break
		}
	}

	if cond { //MATCH /if c { ... } else { ... panic() } can be simplified to if !c { ... panic() } .../
		println()
	} else {
		panic("!")
	}

	if cond { //MATCH /if c { ... } else { ... goto } can be simplified to if !c { ... goto } .../
		println()
	} else {
		goto X
	}

	if x, ok := foo(); ok { //MATCH /if c { ... } else { ... return } can be simplified to if !c { ... return } ... (move short variable declaration to its own line if necessary)/
		println(x)
	} else {
		return false
	}

	if cond { //MATCH /if c { ... } else { ... os.Exit() } can be simplified to if !c { ... os.Exit() } .../
		println()
	} else {
		os.Exit(0)
	}
}