Parse boolean literal in nested meta
diff --git a/src/attr.rs b/src/attr.rs
index 4fede88..2e0cccb 100644
--- a/src/attr.rs
+++ b/src/attr.rs
@@ -282,7 +282,15 @@
                 }
             }
 
-            Some((Meta::Word(ident.clone()).into(), &tts[1..]))
+            let nested_meta = if ident == "true" || ident == "false" {
+                NestedMeta::Literal(Lit::Bool(LitBool {
+                    value: ident == "true",
+                    span: ident.span(),
+                }))
+            } else {
+                NestedMeta::Meta(Meta::Word(ident.clone()))
+            };
+            Some((nested_meta, &tts[1..]))
         }
 
         _ => None,
diff --git a/tests/test_meta_item.rs b/tests/test_meta_item.rs
index 623e5da..8a0fed0 100644
--- a/tests/test_meta_item.rs
+++ b/tests/test_meta_item.rs
@@ -167,6 +167,23 @@
     )
 }
 
+#[test]
+fn test_bool_lit() {
+    run_test(
+        "#[foo(true)]",
+        MetaList {
+            ident: ident("foo").into(),
+            paren_token: Default::default(),
+            nested: punctuated![
+                NestedMeta::Literal(Lit::Bool(LitBool {
+                    value: true,
+                    span: Span::call_site(),
+                })),
+            ],
+        },
+    )
+}
+
 fn run_test<T: Into<Meta>>(input: &str, expected: T) {
     let attrs = Attribute::parse_outer.parse_str(input).unwrap();
     assert_eq!(attrs.len(), 1);