DioxusLabs/dioxus · error

expected `core`

Error message

expected `core`

What it means

The define_elements!-style macro input must start with `core = <path>` to locate the dioxus-core crate. The first identifier parsed was something else, indicating malformed or out-of-order macro input.

Source

Thrown at packages/html-internal-macro/src/elements.rs:45

struct ElementDef {
    attrs: Vec<Attribute>,
    name: Ident,
    metadata: ElementMetadata,
    attributes: Punctuated<ExtensionAttribute, Token![,]>,
}

#[derive(Default)]
struct ElementMetadata {
    name: Option<LitStr>,
    namespace: Option<LitStr>,
}

impl Parse for DefineElements {
    fn parse(input: ParseStream) -> syn::Result<Self> {
        let core_marker: Ident = input.parse()?;
        if core_marker != "core" {
            return Err(syn::Error::new(core_marker.span(), "expected `core`"));
        }
        input.parse::<Token![=]>()?;
        let core_path = input.parse()?;
        input.parse::<Token![,]>()?;

        let html_marker: Ident = input.parse()?;
        if html_marker != "html" {
            return Err(syn::Error::new(html_marker.span(), "expected `html`"));
        }
        input.parse::<Token![=]>()?;
        let html_path = input.parse()?;

        let mut hot_reload_context = false;
        while input.peek(Token![,]) {
            input.parse::<Token![,]>()?;
            if input.peek(Token![;]) {
                break;
            }

View on GitHub (pinned to 24f6a829df)

Solutions

  1. Pass `core` as the expected argument; this internal macro expects the literal `core` in this position.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packages/html-internal-macro/src/elements.rs:45 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of DioxusLabs/dioxus@24f6a829df (2026-08-23). Data as JSON: /api/errors/c60576fae28bbc4e. Report an issue: GitHub.