No public description

PiperOrigin-RevId: 633628775
Change-Id: Iee11b6df74e30142c5db5cbefd28e3a1c819a074
diff --git a/GOIMPORT/MANIFEST b/GOIMPORT/MANIFEST
index 7260f9f..8a98aab 100644
--- a/GOIMPORT/MANIFEST
+++ b/GOIMPORT/MANIFEST
@@ -5,13 +5,13 @@
 
 + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx BUILD
 + 3a01ef1d86a62268741125473fe51568 GOIMPORT/CONFIGURATION
-+ 69508582c0c21c5a0b48e19da184b82b GOIMPORT/MANIFEST
++ 13cc1524a68117f1b2e21d6b392ce811 GOIMPORT/MANIFEST
 = 9fc9e1d6b93fb3971a451d68e21a4437 LICENSE
-+ 68587bd42e304e2816e2da57c99cb7c5 METADATA
++ 0996c12b34e73626ce1c579768154a41 METADATA
 + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OWNERS
 = 3ec7645ccbfe13331f1675d54034d89d README.md
-= 5f4dfa7393d07daf243d8d64eb715e8b decoder.go
-= a0c0a0fe9e9c757954bca07a18482c2a decoder_test.go
+= 51f6bda406b8ea454112aa256907ac6f decoder.go
+= 9d0980c4ac284ebb5a1e309c79268ddf decoder_test.go
 = a6c7fbb988e532707b47bbd31daf4676 go.mod
 = 26a95cbd0a533fcf286f3b81e3951000 go.sum
 + xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx google_init_test.go
@@ -161,9 +161,6 @@
 = 5cd9f072067f7ccf981450d4d394c2be test-fixtures/assign_deep.hcl
 = 29eada54d9d67b8ea3176390af2869f6 test-fixtures/basic.hcl
 = 73261bc19c6516037316808dc9d0befb test-fixtures/basic.json
-= 2cfbed1438cb24a5dee8fa50745c1e71 test-fixtures/basic_bool.hcl
-= 5b4ef779c5007abca3d562b03fea6a4e test-fixtures/basic_bool_int.hcl
-= 495542dc1c801690a401eeec90960d2f test-fixtures/basic_bool_string.hcl
 = 83347a9c40a9d26a7840f3ce646fa275 test-fixtures/basic_int_string.hcl
 = 734b850cc4895d53e0bb0fa899600ad9 test-fixtures/basic_squish.hcl
 = 957a4def52e1468cc7eb0d83b6fdd963 test-fixtures/block_assign.hcl
diff --git a/decoder.go b/decoder.go
index 0f0514f..41d3fbd 100644
--- a/decoder.go
+++ b/decoder.go
@@ -117,17 +117,10 @@
 func (d *decoder) decodeBool(name string, node ast.Node, result reflect.Value) error {
 	switch n := node.(type) {
 	case *ast.LiteralType:
-		switch n.Token.Type {
-		case token.BOOL, token.STRING, token.NUMBER:
-			var v bool
-			s := strings.ToLower(strings.Replace(n.Token.Text, "\"", "", -1))
-			switch s {
-			case "1", "true":
-				v = true
-			case "0", "false":
-				v = false
-			default:
-				return fmt.Errorf("decodeBool: Unknown value for boolean: %s", n.Token.Text)
+		if n.Token.Type == token.BOOL {
+			v, err := strconv.ParseBool(n.Token.Text)
+			if err != nil {
+				return err
 			}
 
 			result.Set(reflect.ValueOf(v))
diff --git a/decoder_test.go b/decoder_test.go
index d81f52f..e05e7eb 100644
--- a/decoder_test.go
+++ b/decoder_test.go
@@ -794,51 +794,6 @@
 	}
 }
 
-func TestDecode_boolString(t *testing.T) {
-	var value struct {
-		Boolean bool
-	}
-
-	err := Decode(&value, testReadFile(t, "basic_bool_string.hcl"))
-	if err != nil {
-		t.Fatalf("err: %s", err)
-	}
-
-	if value.Boolean != true {
-		t.Fatalf("bad: %#v", value.Boolean)
-	}
-}
-
-func TestDecode_boolInt(t *testing.T) {
-	var value struct {
-		Boolean bool
-	}
-
-	err := Decode(&value, testReadFile(t, "basic_bool_int.hcl"))
-	if err != nil {
-		t.Fatalf("err: %s", err)
-	}
-
-	if value.Boolean != true {
-		t.Fatalf("bad: %#v", value.Boolean)
-	}
-}
-
-func TestDecode_bool(t *testing.T) {
-	var value struct {
-		Boolean bool
-	}
-
-	err := Decode(&value, testReadFile(t, "basic_bool.hcl"))
-	if err != nil {
-		t.Fatalf("err: %s", err)
-	}
-
-	if value.Boolean != true {
-		t.Fatalf("bad: %#v", value.Boolean)
-	}
-}
-
 func TestDecode_intString(t *testing.T) {
 	var value struct {
 		Count int
diff --git a/hcl/fmtcmd/fmtcmd_test.go b/hcl/fmtcmd/fmtcmd_test.go
index 4a152ad..0b10f2f 100644
--- a/hcl/fmtcmd/fmtcmd_test.go
+++ b/hcl/fmtcmd/fmtcmd_test.go
@@ -1,4 +1,6 @@
+//go:build !windows
 // +build !windows
+
 // TODO(jen20): These need fixing on Windows but fmt is not used right now
 // and red CI is making it harder to process other bugs, so ignore until
 // we get around to fixing them.
diff --git a/hcl/printer/nodes.go b/hcl/printer/nodes.go
index 677058e..aa54d68 100644
--- a/hcl/printer/nodes.go
+++ b/hcl/printer/nodes.go
@@ -721,10 +721,9 @@
 //
 // A single line object:
 //
-//   * has no lead comments (hence multi-line)
-//   * has no assignment
-//   * has no values in the stanza (within {})
-//
+//   - has no lead comments (hence multi-line)
+//   - has no assignment
+//   - has no values in the stanza (within {})
 func (p *printer) isSingleLineObject(val *ast.ObjectItem) bool {
 	// If there is a lead comment, can't be one line
 	if val.LeadComment != nil {