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
}