Remove maud_lints

It's undocumented, it doesn't do much, and it keeps breaking.
This commit is contained in:
Chris Wong 2018-09-03 19:23:22 +12:00
parent f3d967c020
commit 66ddbcac98
14 changed files with 1 additions and 150 deletions

View file

@ -13,7 +13,7 @@ script:
- (cd benchmarks && cargo bench --no-run)
- |
CLIPPY_STATUS=0
for package in maud_htmlescape maud_macros maud maud_lints maud_extras; do
for package in maud_htmlescape maud_macros maud maud_extras; do
(cd $package && cargo clippy -- -D warnings) || CLIPPY_STATUS=$?
done
(exit $CLIPPY_STATUS)

View file

@ -9,12 +9,9 @@ Great to see that you want to help out! Here are some tips for getting started:
* Most contributions should include tests see the [existing test code] for how to write these.
* Documentation on the proc macro interface can be found on [docs.rust-lang.org][proc_macro].
- The `maud_lints` crate uses internal compiler APIs; the documentation for these can be found on [Manishearth's site].
Have fun! ☺️
[easy issues]: https://github.com/lfairy/maud/issues?q=is%3Aissue+is%3Aopen+label%3A%22difficulty%3A+easy%22
[existing test code]: https://github.com/lfairy/maud/tree/master/maud/tests
[proc_macro]: https://doc.rust-lang.org/nightly/proc_macro/
[compiler source]: https://github.com/rust-lang/rust/tree/master/src
[Manishearth's site]: https://manishearth.github.io/rust-internals-docs/rustc/

View file

@ -3,7 +3,6 @@ members = [
"maud_htmlescape",
"maud_macros",
"maud",
"maud_lints",
"maud_extras",
]
exclude = [

View file

@ -19,9 +19,6 @@ iron = { version = ">= 0.5.1, < 0.7.0", optional = true }
rocket = { version = "0.3", optional = true }
actix-web = { version = ">= 0.6.12, < 0.8.0", optional = true }
[dev-dependencies]
maud_lints = { version = "0.18.1", path = "../maud_lints" }
[badges]
travis-ci = { repository = "lfairy/maud" }

View file

@ -1,8 +1,5 @@
#![feature(plugin)]
#![feature(proc_macro_non_items)]
#![plugin(maud_lints)]
extern crate maud;
use maud::{Markup, html};

View file

@ -1,8 +1,5 @@
#![feature(plugin)]
#![feature(proc_macro_non_items)]
#![plugin(maud_lints)]
extern crate maud;
use maud::html;

View file

@ -1,8 +1,5 @@
#![feature(plugin)]
#![feature(proc_macro_non_items)]
#![plugin(maud_lints)]
extern crate maud;
use maud::html;

View file

@ -1,8 +1,5 @@
#![feature(plugin)]
#![feature(proc_macro_non_items)]
#![plugin(maud_lints)]
extern crate maud;
use maud::html;

View file

@ -10,7 +10,6 @@ description = "Extra bits and pieces for use in Maud templates."
[dependencies]
maud = { path = "../maud", features = ["iron"] }
maud_lints = { path = "../maud_lints" }
[lib]
path = "lib.rs"

View file

@ -1,8 +1,5 @@
#![feature(plugin)]
#![feature(proc_macro_non_items)]
#![plugin(maud_lints)]
extern crate maud;
use maud::{Markup, Render, html};

View file

@ -1,22 +0,0 @@
[package]
name = "maud_lints"
# When releasing a new version, please update html_root_url in src/lib.rs
version = "0.18.1"
authors = ["Chris Wong <lambda.fairy@gmail.com>"]
license = "MIT/Apache-2.0"
documentation = "https://docs.rs/maud_lints/"
homepage = "https://maud.lambda.xyz/"
repository = "https://github.com/lfairy/maud"
description = "Lint plugin for the Maud template engine."
[dependencies]
if_chain = "0.1"
[lib]
name = "maud_lints"
plugin = true
[badges]
travis-ci = { repository = "lfairy/maud" }

View file

@ -1,41 +0,0 @@
use rustc::hir::{Expr, ExprKind};
use rustc::lint::{LateContext, LateLintPass, LintArray, LintContext, LintPass};
use syntax::ast::LitKind;
use util::match_def_path;
declare_lint! {
pub MAUD_DOCTYPE,
Warn,
"suggest using the maud::DOCTYPE constant"
}
pub struct Doctype;
impl LintPass for Doctype {
fn get_lints(&self) -> LintArray {
lint_array![MAUD_DOCTYPE]
}
}
impl<'a, 'tcx> LateLintPass<'a, 'tcx> for Doctype {
fn check_expr(&mut self, cx: &LateContext<'a, 'tcx>, expr: &'tcx Expr) {
if_chain! {
// It's a function call...
if let ExprKind::Call(ref path_expr, ref args) = expr.node;
// ... where the argument is a literal "<!doctype html>"
if let Some(first_arg) = args.first();
if let ExprKind::Lit(ref lit) = first_arg.node;
if let LitKind::Str(s, _) = lit.node;
if s.as_str().eq_ignore_ascii_case("<!doctype html>");
// ... and the callee is `maud::PreEscaped`
if let ExprKind::Path(ref qpath) = path_expr.node;
let def_id = cx.tables.qpath_def(qpath, path_expr.hir_id).def_id();
if match_def_path(cx, def_id, &["maud", "PreEscaped"]);
then {
cx.struct_span_lint(MAUD_DOCTYPE, expr.span,
"use `maud::DOCTYPE` instead").emit();
}
}
}
}

View file

@ -1,29 +0,0 @@
#![feature(plugin_registrar)]
#![feature(rustc_private)]
#![feature(macro_at_most_once_rep)]
#![recursion_limit = "1000"] // if_chain
#![doc(html_root_url = "https://docs.rs/maud_lints/0.18.1")]
#[macro_use]
extern crate if_chain;
#[macro_use]
extern crate rustc;
extern crate rustc_plugin;
extern crate syntax;
extern crate syntax_pos;
use rustc_plugin::Registry;
#[macro_use]
mod util;
mod doctype;
#[plugin_registrar]
pub fn plugin_registrar(reg: &mut Registry) {
reg.register_late_lint_pass(Box::new(doctype::Doctype));
reg.register_lint_group("maud", vec![
doctype::MAUD_DOCTYPE,
]);
}

View file

@ -1,34 +0,0 @@
//! Miscellaneous utilities for writing lints.
//!
//! Most of these are adapted from Clippy.
use rustc::hir::def_id::DefId;
use rustc::lint::LateContext;
use rustc::ty;
use syntax_pos::symbol::{LocalInternedString, Symbol};
/// Check if a `DefId`'s path matches the given absolute type path usage.
///
/// # Examples
/// ```rust,ignore
/// match_def_path(cx, id, &["core", "option", "Option"])
/// ```
pub fn match_def_path(cx: &LateContext, def_id: DefId, path: &[&str]) -> bool {
struct AbsolutePathBuffer {
names: Vec<LocalInternedString>,
}
impl ty::item_path::ItemPathBuffer for AbsolutePathBuffer {
fn root_mode(&self) -> &ty::item_path::RootMode {
&ty::item_path::RootMode::Absolute
}
fn push(&mut self, text: &str) {
self.names.push(Symbol::intern(text).as_str());
}
}
let mut apb = AbsolutePathBuffer { names: vec![] };
cx.tcx.push_item_path(&mut apb, def_id);
apb.names.len() == path.len() && apb.names.iter().zip(path.iter()).all(|(a, &b)| &**a == b)
}