From 56ce4e5d508e562ad2d441b4baaeb94febe22753 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Tue, 13 Aug 2019 10:08:58 -0700 Subject: [PATCH] Upgrade rsass, remove hashbrown --- Cargo.lock | Bin 43037 -> 47378 bytes cli/Cargo.toml | 3 +-- .../build_tables/build_parse_table.rs | 5 ++--- .../generate/build_tables/item_set_builder.rs | 2 +- .../build_tables/minimize_parse_table.rs | 2 +- .../generate/build_tables/token_conflicts.rs | 2 +- cli/src/generate/grammars.rs | 2 +- cli/src/generate/node_types.rs | 3 +-- .../prepare_grammar/expand_repeats.rs | 2 +- .../prepare_grammar/extract_tokens.rs | 2 +- .../prepare_grammar/process_inlines.rs | 2 +- cli/src/generate/properties.rs | 8 +++++++- cli/src/generate/render.rs | 2 +- cli/src/generate/rules.rs | 2 +- cli/src/generate/tables.rs | 3 +-- 15 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8f3eb5d4320ffa8ac3a48cf6b9356d3487a2be48..6b8dca984c12de684bf54afd1557ac16700540cf 100644 GIT binary patch delta 2145 zcmZ`)U2K$98qN%zDIk>^Fp7%#tQz7^+w=be(wS1$fEv^yi8UHIze^Q5*cnia8oGzJB&!^^5=Lt0{0ZTh9*kmG?A;>sNolU$->MbN!v#;uAPOxT$=4&AD15bdJpQ z&W`Pa(dP9x1vVTGID8GQJ(^~_)18@Odoe^t*a-Y{@^Lse`QW-@=C_uZYZC*=4AiUQK$DdOS<8%#+pB--mII6okQ^VI}Sjrm|R>_?%#B&eocB|I=F+w zp);Gn-MkO>^Nr9hb|KJ58nefa6ch%h#@BayE& z+fB1QMA(Py{|MsbYs{$e+3@+{44#j9cEbbhuq=Na;Cj5uY!oSG|c=NZA zpfhk$12Ub*_jT~Hoq~C~4v+q&K%-RbyI(arH@vHSPpGvpReNHMKh{eNzJlW63AjA9 zr!mtxRLDwD_`LNlT%Oohe%k)H25WZ=!uhakL8s?;^!hhl6?=sNE8z?DA6f%WTzCMA zoi`2s+5zy>{zXN8*gd&YzVeklpDaUrdher9IrPg%PA(}|p5D8GXM z8|8gZ&RxHl4(y@@Ao6H!Y%vj=FjKo^2txq|6$F!zAXr-;?*>FQB zWx?q%w00;QNa5M;kwe8wp-#NldPqklA`#jsJVr7j6v@FDp(PL5#27;mO8LZz$%-(Q zP2y4pK^;kg61u!P+_rfK9DlyA{A~86{uNG}XmgP{k4a_Xk`6X_nWPqyFeepD%uC7; zc;d`?kI+M;Nn01KWL_~ZZ285Dabn?2aR4COPIEMc>#= zg>s4p?HED1HQ^#CuNLaAdo9=D(!^r5D0Fh3B*UXsmPbLdL3Bo0VVt8X<*c+M$wg6- z8HDpzdgHm%nMfAEpZcJ&Fv)R(OtcAi%vlnh30g9qr4(FMwXoEmfGC^d|4YnNuCYyVMfDw4ckO)kE(o6~rR@DqD zW^H*ZtZoim9cx$aux%AoM}xrS3QyIBaY+o)Ni)ixv4MnA2h1tQ|EOHxnF~izMYJy^ z%DB8dF~4^sZiB%y%`u)lR~~7=aO2>j0o%nQfdy)n^ub!@qebHqCbE-AI-?fppx9*O K<&AGQ*8d;x6{^<& delta 895 zcmZXSO=#Rj7{>Ykv)eUmyP}P>Sfp#H3WhH8{XtB!^$KxgI=7@qkYe(X-d>h$(>f97(LM)w}C zCAq(|!2<`!rc=IM=Wq0#GP!XxSIkptB&{{+>{;lQ5Rsq~xQTISYQ zz8r@RufVC>!?8AuI~7CBjXbtA zD2J3}Qfo>THa-L_g_lMVn>jeeINdn|gO5?H>}hL9nT|q5!Xww2D>CLH3epKJIWgP` zN-g3XIT~|A&9So48bm0Sl9^O|w6~IO_q!#$eZCIYKJCNm@+N33p96W}d~z2rZd!ki zskV%aQ|26^h#?z{^F#_RC;0#X diff --git a/cli/Cargo.toml b/cli/Cargo.toml index ad612cfc2..ba5fa148c 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -25,14 +25,13 @@ lazy_static = "1.2.0" smallbitvec = "2.3.0" clap = "2.32" dirs = "1.0.2" -hashbrown = "0.1" libloading = "0.5" once_cell = "0.1.8" serde = "1.0" serde_derive = "1.0" regex-syntax = "0.6.4" regex = "1" -rsass = "^0.9.8" +rsass = "^0.11.0" tiny_http = "0.6" webbrowser = "0.5.1" diff --git a/cli/src/generate/build_tables/build_parse_table.rs b/cli/src/generate/build_tables/build_parse_table.rs index 892fb7a2e..5f7e301b7 100644 --- a/cli/src/generate/build_tables/build_parse_table.rs +++ b/cli/src/generate/build_tables/build_parse_table.rs @@ -11,9 +11,8 @@ use crate::generate::tables::{ ProductionInfo, ProductionInfoId, }; use core::ops::Range; -use hashbrown::hash_map::Entry; -use hashbrown::{HashMap, HashSet}; -use std::collections::{BTreeMap, VecDeque}; +use std::collections::hash_map::Entry; +use std::collections::{BTreeMap, HashMap, HashSet, VecDeque}; use std::fmt::Write; use std::u32; diff --git a/cli/src/generate/build_tables/item_set_builder.rs b/cli/src/generate/build_tables/item_set_builder.rs index 9a929f050..3bed0492f 100644 --- a/cli/src/generate/build_tables/item_set_builder.rs +++ b/cli/src/generate/build_tables/item_set_builder.rs @@ -1,7 +1,7 @@ use super::item::{ParseItem, ParseItemDisplay, ParseItemSet, TokenSet, TokenSetDisplay}; use crate::generate::grammars::{InlinedProductionMap, LexicalGrammar, SyntaxGrammar}; use crate::generate::rules::{Symbol, SymbolType}; -use hashbrown::{HashMap, HashSet}; +use std::collections::{HashMap, HashSet}; use std::fmt; #[derive(Clone, Debug, PartialEq, Eq)] diff --git a/cli/src/generate/build_tables/minimize_parse_table.rs b/cli/src/generate/build_tables/minimize_parse_table.rs index 906ce685c..e01295149 100644 --- a/cli/src/generate/build_tables/minimize_parse_table.rs +++ b/cli/src/generate/build_tables/minimize_parse_table.rs @@ -4,8 +4,8 @@ use crate::generate::dedup::split_state_id_groups; use crate::generate::grammars::{LexicalGrammar, SyntaxGrammar, VariableType}; use crate::generate::rules::{AliasMap, Symbol}; use crate::generate::tables::{ParseAction, ParseState, ParseStateId, ParseTable, ParseTableEntry}; -use hashbrown::{HashMap, HashSet}; use log::info; +use std::collections::{HashMap, HashSet}; use std::mem; pub(crate) fn minimize_parse_table( diff --git a/cli/src/generate/build_tables/token_conflicts.rs b/cli/src/generate/build_tables/token_conflicts.rs index a7737eb3a..71a569e64 100644 --- a/cli/src/generate/build_tables/token_conflicts.rs +++ b/cli/src/generate/build_tables/token_conflicts.rs @@ -1,7 +1,7 @@ use crate::generate::build_tables::item::{TokenSet, TokenSetDisplay}; use crate::generate::grammars::{LexicalGrammar, SyntaxGrammar}; use crate::generate::nfa::{CharacterSet, NfaCursor, NfaTransition}; -use hashbrown::HashSet; +use std::collections::HashSet; use std::cmp::Ordering; use std::fmt; diff --git a/cli/src/generate/grammars.rs b/cli/src/generate/grammars.rs index df22eaffe..0b42c4c32 100644 --- a/cli/src/generate/grammars.rs +++ b/cli/src/generate/grammars.rs @@ -1,6 +1,6 @@ use super::nfa::Nfa; use super::rules::{Alias, Associativity, Rule, Symbol}; -use hashbrown::HashMap; +use std::collections::HashMap; #[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)] pub(crate) enum VariableType { diff --git a/cli/src/generate/node_types.rs b/cli/src/generate/node_types.rs index d5b8c215a..4dab44709 100644 --- a/cli/src/generate/node_types.rs +++ b/cli/src/generate/node_types.rs @@ -4,9 +4,8 @@ use super::grammars::{ }; use super::rules::{Alias, AliasMap, Symbol, SymbolType}; use crate::error::{Error, Result}; -use hashbrown::HashMap; use serde_derive::Serialize; -use std::collections::BTreeMap; +use std::collections::{BTreeMap, HashMap}; use std::mem; #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] diff --git a/cli/src/generate/prepare_grammar/expand_repeats.rs b/cli/src/generate/prepare_grammar/expand_repeats.rs index 66f064166..ccc83d978 100644 --- a/cli/src/generate/prepare_grammar/expand_repeats.rs +++ b/cli/src/generate/prepare_grammar/expand_repeats.rs @@ -1,7 +1,7 @@ use super::ExtractedSyntaxGrammar; use crate::generate::grammars::{Variable, VariableType}; use crate::generate::rules::{Rule, Symbol}; -use hashbrown::HashMap; +use std::collections::HashMap; use std::mem; struct Expander { diff --git a/cli/src/generate/prepare_grammar/extract_tokens.rs b/cli/src/generate/prepare_grammar/extract_tokens.rs index 01b4584c2..def35b972 100644 --- a/cli/src/generate/prepare_grammar/extract_tokens.rs +++ b/cli/src/generate/prepare_grammar/extract_tokens.rs @@ -2,7 +2,7 @@ use super::{ExtractedLexicalGrammar, ExtractedSyntaxGrammar, InternedGrammar}; use crate::error::{Error, Result}; use crate::generate::grammars::{ExternalToken, Variable, VariableType}; use crate::generate::rules::{MetadataParams, Rule, Symbol, SymbolType}; -use hashbrown::HashMap; +use std::collections::HashMap; use std::mem; pub(super) fn extract_tokens( diff --git a/cli/src/generate/prepare_grammar/process_inlines.rs b/cli/src/generate/prepare_grammar/process_inlines.rs index e7c1b3e8b..685684199 100644 --- a/cli/src/generate/prepare_grammar/process_inlines.rs +++ b/cli/src/generate/prepare_grammar/process_inlines.rs @@ -1,5 +1,5 @@ use crate::generate::grammars::{InlinedProductionMap, Production, ProductionStep, SyntaxGrammar}; -use hashbrown::HashMap; +use std::collections::HashMap; #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)] struct ProductionStepId { diff --git a/cli/src/generate/properties.rs b/cli/src/generate/properties.rs index 77fa29e1f..a5532a414 100644 --- a/cli/src/generate/properties.rs +++ b/cli/src/generate/properties.rs @@ -656,7 +656,13 @@ pub(crate) fn generate_property_sheet( fn parse_property_sheet(path: &Path, css: &str) -> Result> { let mut schema_paths = Vec::new(); - let mut items = rsass::parse_scss_data(css.as_bytes())?; + let css = css.as_bytes(); + let mut items = rsass::parse_scss_data(css).map_err(|(pos, kind)| rsass::Error::ParseError { + file: path.to_string_lossy().into(), + pos: rsass::ErrPos::pos_of(pos, &css), + kind, + })?; + process_at_rules(&mut items, &mut schema_paths, path)?; let mut result = Vec::new(); let selector_prefixes = vec![Vec::new()]; diff --git a/cli/src/generate/render.rs b/cli/src/generate/render.rs index 24fcec205..438fcf836 100644 --- a/cli/src/generate/render.rs +++ b/cli/src/generate/render.rs @@ -5,7 +5,7 @@ use super::tables::{ AdvanceAction, FieldLocation, LexState, LexTable, ParseAction, ParseTable, ParseTableEntry, }; use core::ops::Range; -use hashbrown::{HashMap, HashSet}; +use std::collections::{HashMap, HashSet}; use std::fmt::Write; use std::mem::swap; use tree_sitter::LANGUAGE_VERSION; diff --git a/cli/src/generate/rules.rs b/cli/src/generate/rules.rs index 174e06e53..82655d260 100644 --- a/cli/src/generate/rules.rs +++ b/cli/src/generate/rules.rs @@ -1,4 +1,4 @@ -use hashbrown::HashMap; +use std::collections::HashMap; #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub(crate) enum SymbolType { diff --git a/cli/src/generate/tables.rs b/cli/src/generate/tables.rs index 75fb7710d..81b31493a 100644 --- a/cli/src/generate/tables.rs +++ b/cli/src/generate/tables.rs @@ -1,7 +1,6 @@ use super::nfa::CharacterSet; use super::rules::{Alias, Associativity, Symbol}; -use hashbrown::HashMap; -use std::collections::BTreeMap; +use std::collections::{BTreeMap, HashMap}; pub(crate) type ProductionInfoId = usize; pub(crate) type ParseStateId = usize;