================================================================================
let declaration with integer
================================================================================

let x = 42

--------------------------------------------------------------------------------

(source_file
  (let_declaration
    name: (identifier)
    value: (primary_expression
      (integer))))

================================================================================
enum declaration
================================================================================

enum Color {
  Red;
  Green;
  Blue
}

--------------------------------------------------------------------------------

(source_file
  (enum_declaration
    name: (type_identifier)
    (enum_variant
      name: (type_identifier))
    (enum_variant
      name: (type_identifier))
    (enum_variant
      name: (type_identifier))))

================================================================================
struct declaration
================================================================================

struct Point {
  x: Int; y: Int
}

--------------------------------------------------------------------------------

(source_file
  (struct_declaration
    name: (type_identifier)
    (struct_field
      name: (identifier)
      type: (type_name
        (type_identifier)))
    (struct_field
      name: (identifier)
      type: (type_name
        (type_identifier)))))

================================================================================
trait and impl
================================================================================

trait Eq

impl Eq for Int

--------------------------------------------------------------------------------

(source_file
  (trait_declaration
    name: (type_identifier))
  (impl_declaration
    trait: (type_identifier)
    type: (type_name
      (type_identifier))))
