in rules/terraform_variable_separate.go [56:87]
func (r *TerraformVariableSeparateRule) checkVariableSeparate(runner tflint.Runner, file *hcl.File) error {
body, ok := file.Body.(*hclsyntax.Body)
if !ok {
logger.Debug("skip terraform_variable_separate check since it's not hcl file")
return nil
}
blocks := body.Blocks
var firstNonVarBlockRange *hcl.Range
variableDefined := false
for _, block := range blocks {
switch block.Type {
case "variable":
if !variableDefined {
variableDefined = true
}
default:
if firstNonVarBlockRange == nil {
firstNonVarBlockRange = ref(block.DefRange())
}
}
}
if variableDefined && firstNonVarBlockRange != nil {
return runner.EmitIssue(
r,
"Putting variables and other types of blocks in the same file is not recommended",
*firstNonVarBlockRange,
)
}
return nil
}