func()

in rules/terraform_output_separate.go [57:87]


func (r *TerraformOutputSeparateRule) checkOutputSeparate(runner tflint.Runner, file *hcl.File) error {
	body, ok := file.Body.(*hclsyntax.Body)
	if !ok {
		logger.Debug("skip terraform_output_separate check since it's not hcl file")
		return nil
	}
	blocks := body.Blocks
	var firstNonOutputBlockRange *hcl.Range
	outputDefined := false
	for _, block := range blocks {
		switch block.Type {
		case "output":
			{
				outputDefined = true
			}
		default:
			if firstNonOutputBlockRange == nil {
				firstNonOutputBlockRange = ref(block.DefRange())
			}
		}
	}

	if outputDefined && firstNonOutputBlockRange != nil {
		return runner.EmitIssue(
			r,
			"Putting outputs and other types of blocks in the same file is not recommended",
			*firstNonOutputBlockRange,
		)
	}
	return nil
}