Merge pull request #3867 from matklad/deny-eprintln

Check for eprintlns on CI
This commit is contained in:
Aleksey Kladov 2020-04-06 17:21:47 +02:00 committed by GitHub
commit 109bb1a793
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 39 additions and 13 deletions

View file

@ -10,7 +10,7 @@ on:
env: env:
CARGO_INCREMENTAL: 0 CARGO_INCREMENTAL: 0
CARGO_NET_RETRY: 10 CARGO_NET_RETRY: 10
RUN_SLOW_TESTS: 1 CI: 1
RUST_BACKTRACE: short RUST_BACKTRACE: short
RUSTFLAGS: -D warnings RUSTFLAGS: -D warnings
RUSTUP_MAX_RETRIES: 10 RUSTUP_MAX_RETRIES: 10

View file

@ -5,6 +5,11 @@
//! certain context. For example, if the cursor is over `,`, a "swap `,`" assist //! certain context. For example, if the cursor is over `,`, a "swap `,`" assist
//! becomes available. //! becomes available.
#[allow(unused)]
macro_rules! eprintln {
($($tt:tt)*) => { stdx::eprintln!($($tt)*) };
}
mod assist_ctx; mod assist_ctx;
mod marks; mod marks;
#[cfg(test)] #[cfg(test)]

View file

@ -9,6 +9,7 @@ use hir_def::{
AsMacroCall, TraitId, AsMacroCall, TraitId,
}; };
use hir_expand::ExpansionInfo; use hir_expand::ExpansionInfo;
use itertools::Itertools;
use ra_db::{FileId, FileRange}; use ra_db::{FileId, FileRange};
use ra_prof::profile; use ra_prof::profile;
use ra_syntax::{ use ra_syntax::{
@ -135,7 +136,6 @@ impl<'db, DB: HirDatabase> Semantics<'db, DB> {
node: &SyntaxNode, node: &SyntaxNode,
offset: TextUnit, offset: TextUnit,
) -> impl Iterator<Item = SyntaxNode> + '_ { ) -> impl Iterator<Item = SyntaxNode> + '_ {
use itertools::Itertools;
node.token_at_offset(offset) node.token_at_offset(offset)
.map(|token| self.ancestors_with_macros(token.parent())) .map(|token| self.ancestors_with_macros(token.parent()))
.kmerge_by(|node1, node2| node1.text_range().len() < node2.text_range().len()) .kmerge_by(|node1, node2| node1.text_range().len() < node2.text_range().len())

View file

@ -7,6 +7,11 @@
//! Note that `hir_def` is a work in progress, so not all of the above is //! Note that `hir_def` is a work in progress, so not all of the above is
//! actually true. //! actually true.
#[allow(unused)]
macro_rules! eprintln {
($($tt:tt)*) => { stdx::eprintln!($($tt)*) };
}
pub mod db; pub mod db;
pub mod attr; pub mod attr;

View file

@ -1,6 +1,11 @@
//! The type system. We currently use this to infer types for completion, hover //! The type system. We currently use this to infer types for completion, hover
//! information and various assists. //! information and various assists.
#[allow(unused)]
macro_rules! eprintln {
($($tt:tt)*) => { stdx::eprintln!($($tt)*) };
}
macro_rules! impl_froms { macro_rules! impl_froms {
($e:ident: $($v:ident $(($($sv:ident),*))?),*) => { ($e:ident: $($v:ident $(($($sv:ident),*))?),*) => {
$( $(

View file

@ -10,6 +10,11 @@
// For proving that RootDatabase is RefUnwindSafe. // For proving that RootDatabase is RefUnwindSafe.
#![recursion_limit = "128"] #![recursion_limit = "128"]
#[allow(unused)]
macro_rules! eprintln {
($($tt:tt)*) => { stdx::eprintln!($($tt)*) };
}
pub mod mock_analysis; pub mod mock_analysis;
mod source_change; mod source_change;

View file

@ -13,17 +13,8 @@
pub mod cli; pub mod cli;
#[allow(unused)] #[allow(unused)]
macro_rules! println { macro_rules! eprintln {
($($tt:tt)*) => { ($($tt:tt)*) => { stdx::eprintln!($($tt)*) };
compile_error!("stdout is locked, use eprintln")
};
}
#[allow(unused)]
macro_rules! print {
($($tt:tt)*) => {
compile_error!("stdout is locked, use eprint")
};
} }
mod vfs_glob; mod vfs_glob;

View file

@ -2,6 +2,21 @@
use std::{cell::Cell, fmt}; use std::{cell::Cell, fmt};
#[inline(always)]
pub fn is_ci() -> bool {
option_env!("CI").is_some()
}
#[macro_export]
macro_rules! eprintln {
($($tt:tt)*) => {{
if $crate::is_ci() {
panic!("Forgot to remove debug-print?")
}
std::eprintln!($($tt)*)
}}
}
/// Appends formatted string to a `String`. /// Appends formatted string to a `String`.
#[macro_export] #[macro_export]
macro_rules! format_to { macro_rules! format_to {