From d54cfaf3f4e6a84a7fcd82f4d7327eead8fb9968 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sun, 27 Sep 2020 10:46:50 +0900 Subject: [PATCH] Keep source code order for module items --- Cargo.lock | 1 + derive/Cargo.toml | 1 + derive/src/util.rs | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index 262c5eb68..b5f620599 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1670,6 +1670,7 @@ dependencies = [ name = "rustpython-derive" version = "0.1.2" dependencies = [ + "indexmap", "maplit", "once_cell", "proc-macro2", diff --git a/derive/Cargo.toml b/derive/Cargo.toml index 61c019918..69167ee21 100644 --- a/derive/Cargo.toml +++ b/derive/Cargo.toml @@ -20,3 +20,4 @@ rustpython-bytecode = { path = "../bytecode", version = "0.1.1" } maplit = "1.0" once_cell = "1.3.1" textwrap = "0.12.1" +indexmap = "^1" diff --git a/derive/src/util.rs b/derive/src/util.rs index 52f80a68d..86f7b31be 100644 --- a/derive/src/util.rs +++ b/derive/src/util.rs @@ -1,3 +1,4 @@ +use indexmap::map::IndexMap; use proc_macro2::{Span, TokenStream}; use quote::{quote, ToTokens}; use std::collections::HashMap; @@ -18,7 +19,7 @@ pub(crate) const ALL_ALLOWED_NAMES: &[&str] = &[ ]; #[derive(Default)] -pub(crate) struct ItemNursery(HashMap<(String, Vec), TokenStream>); +pub(crate) struct ItemNursery(IndexMap<(String, Vec), TokenStream>); impl ItemNursery { pub fn add_item(