diff --git a/.travis.yml b/.travis.yml index b82b3746842f..3f68c2e944b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,15 +22,10 @@ script: (cd diesel && travis-cargo test -- --no-default-features --features "extras with-deprecated $BACKEND") && (cd diesel_derives && travis-cargo test -- --features "diesel/$BACKEND") && (cd diesel_derives2 && travis-cargo test -- --features "$BACKEND") && - if [[ "$BACKEND" == postgres ]]; then - (cd examples/postgres && ./test_all) - fi && - if [[ "$BACKEND" == mysql ]]; then - (cd examples/mysql && ./test_all) - fi && - if [[ "$BACKEND" == sqlite ]]; then - (cd examples/sqlite && ./test_all) + if [[ "$TRAVIS_RUST_VERSION" == nightly* ]]; then + (cd diesel_derives2 && travis-cargo test -- --features "nightly $BACKEND") fi && + (cd "examples/$BACKEND" && ./test_all) && (cd diesel_cli && travis-cargo test -- --no-default-features --features "$BACKEND") && (cd diesel_infer_schema/infer_schema_internals && travis-cargo test -- --no-default-features --features "$BACKEND") && (cd diesel_infer_schema/infer_schema_macros && travis-cargo test -- --no-default-features --features "$BACKEND") && @@ -48,7 +43,7 @@ matrix: - rust: nightly - rust: beta include: - - rust: nightly-2017-11-28 + - rust: nightly-2018-02-02 env: CLIPPY_AND_COMPILE_TESTS=YESPLEASE script: - (cd diesel && cargo rustc --no-default-features --features "lint unstable sqlite postgres mysql extras" -- -Zno-trans) diff --git a/diesel/Cargo.toml b/diesel/Cargo.toml index 2adb9d234043..96655e86e242 100644 --- a/diesel/Cargo.toml +++ b/diesel/Cargo.toml @@ -16,7 +16,7 @@ byteorder = "1.0" diesel_derives = { version = "1.1.0" } diesel_derives2 = { path = "../diesel_derives2" } chrono = { version = "0.4", optional = true } -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } libc = { version = "0.2.0", optional = true } libsqlite3-sys = { version = ">=0.8.0, <0.10.0", optional = true, features = ["min_sqlite_version_3_7_16"] } mysqlclient-sys = { version = ">=0.1.0, <0.3.0", optional = true } @@ -43,7 +43,7 @@ tempdir = "^0.3.4" [features] default = ["with-deprecated"] extras = ["chrono", "serde_json", "uuid", "deprecated-time", "network-address", "numeric", "r2d2"] -unstable = [] +unstable = ["diesel_derives2/nightly"] lint = ["clippy"] large-tables = [] huge-tables = ["large-tables"] diff --git a/diesel/src/connection/statement_cache.rs b/diesel/src/connection/statement_cache.rs index 14eadb6e4871..920a54651481 100644 --- a/diesel/src/connection/statement_cache.rs +++ b/diesel/src/connection/statement_cache.rs @@ -108,7 +108,7 @@ pub struct StatementCache { pub cache: RefCell, Statement>>, } -#[cfg_attr(feature = "clippy", allow(len_without_is_empty))] +#[cfg_attr(feature = "clippy", allow(len_without_is_empty, new_without_default_derive))] impl StatementCache where DB: Backend, @@ -116,7 +116,6 @@ where DB::QueryBuilder: Default, StatementCacheKey: Hash + Eq, { - #[cfg_attr(feature = "clippy", allow(new_without_default_derive))] pub fn new() -> Self { StatementCache { cache: RefCell::new(HashMap::new()), diff --git a/diesel/src/pg/types/uuid.rs b/diesel/src/pg/types/uuid.rs index fd1f043db5d9..cc6fa22ea6d8 100644 --- a/diesel/src/pg/types/uuid.rs +++ b/diesel/src/pg/types/uuid.rs @@ -31,14 +31,14 @@ impl ToSql for uuid::Uuid { #[test] fn uuid_to_sql() { let mut bytes = Output::test(); - let test_uuid = uuid::Uuid::from_fields(4_294_967_295, 65_535, 65_535, b"abcdef12").unwrap(); + let test_uuid = uuid::Uuid::from_fields(0xFFFF_FFFF, 0xFFFF, 0xFFFF, b"abcdef12").unwrap(); ToSql::::to_sql(&test_uuid, &mut bytes).unwrap(); assert_eq!(bytes, test_uuid.as_bytes()); } #[test] fn some_uuid_from_sql() { - let input_uuid = uuid::Uuid::from_fields(4_294_967_295, 65_535, 65_535, b"abcdef12").unwrap(); + let input_uuid = uuid::Uuid::from_fields(0xFFFF_FFFF, 0xFFFF, 0xFFFF, b"abcdef12").unwrap(); let output_uuid = FromSql::::from_sql(Some(input_uuid.as_bytes())).unwrap(); assert_eq!(input_uuid, output_uuid); } diff --git a/diesel/src/query_builder/bind_collector.rs b/diesel/src/query_builder/bind_collector.rs index 9f7c73452ec8..add7c6256f75 100644 --- a/diesel/src/query_builder/bind_collector.rs +++ b/diesel/src/query_builder/bind_collector.rs @@ -42,8 +42,8 @@ pub struct RawBytesBindCollector { pub binds: Vec>>, } +#[cfg_attr(feature = "clippy", allow(new_without_default_derive))] impl RawBytesBindCollector { - #[cfg_attr(feature = "clippy", allow(new_without_default_derive))] /// Construct an empty `RawBytesBindCollector` pub fn new() -> Self { RawBytesBindCollector { diff --git a/diesel_cli/Cargo.toml b/diesel_cli/Cargo.toml index 1fdc8d3d2f18..e9347848b7fb 100644 --- a/diesel_cli/Cargo.toml +++ b/diesel_cli/Cargo.toml @@ -20,7 +20,7 @@ clap = "2.27" diesel = { version = "1.1.0", default-features = false } dotenv = ">=0.8, <0.11" infer_schema_internals = { version = "1.1.0" } -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } migrations_internals = { version = "1.1.0" } url = { version = "1.4.0", optional = true } diff --git a/diesel_compile_tests/Cargo.toml b/diesel_compile_tests/Cargo.toml index d02a757234e1..9b37f530902a 100644 --- a/diesel_compile_tests/Cargo.toml +++ b/diesel_compile_tests/Cargo.toml @@ -6,8 +6,8 @@ authors = ["Sean Griffin "] [workspace] [dependencies] -diesel = { version = "1.1.0", features = ["extras", "sqlite", "postgres", "mysql"] } -compiletest_rs = "=0.3.3" +diesel = { version = "1.1.0", features = ["extras", "sqlite", "postgres", "mysql", "unstable"] } +compiletest_rs = "=0.3.6" [replace] "diesel:1.1.1" = { path = "../diesel" } diff --git a/diesel_compile_tests/tests/compile_tests.rs b/diesel_compile_tests/tests/compile_tests.rs index 43af2478cbfa..96aa77827f83 100644 --- a/diesel_compile_tests/tests/compile_tests.rs +++ b/diesel_compile_tests/tests/compile_tests.rs @@ -21,6 +21,11 @@ fn run_mode(mode: &'static str) { } #[test] -fn compile_test() { +fn compile_fail() { run_mode("compile-fail"); } + +#[test] +fn ui() { + run_mode("ui") +} diff --git a/diesel_compile_tests/tests/ui/as_changeset_bad_column_name.rs b/diesel_compile_tests/tests/ui/as_changeset_bad_column_name.rs new file mode 100644 index 000000000000..bd410b03e056 --- /dev/null +++ b/diesel_compile_tests/tests/ui/as_changeset_bad_column_name.rs @@ -0,0 +1,20 @@ +#[macro_use] +extern crate diesel; + +table! { + users { + id -> Integer, + } +} + +#[derive(AsChangeset)] +#[table_name = "users"] +struct UserStruct { + name: String, + #[column_name = "hair_color"] + color_de_pelo: String, +} + +#[derive(AsChangeset)] +#[table_name = "users"] +struct UserTuple(#[column_name = "name"] String); diff --git a/diesel_compile_tests/tests/ui/as_changeset_bad_column_name.stderr b/diesel_compile_tests/tests/ui/as_changeset_bad_column_name.stderr new file mode 100644 index 000000000000..cef34a166854 --- /dev/null +++ b/diesel_compile_tests/tests/ui/as_changeset_bad_column_name.stderr @@ -0,0 +1,40 @@ +error[E0412]: cannot find type `name` in module `users` + --> $DIR/as_changeset_bad_column_name.rs:13:5 + | +13 | name: String, + | ^^^^ not found in `users` + +error[E0412]: cannot find type `hair_color` in module `users` + --> $DIR/as_changeset_bad_column_name.rs:14:5 + | +14 | #[column_name = "hair_color"] + | ^ not found in `users` + +error[E0425]: cannot find value `name` in module `users` + --> $DIR/as_changeset_bad_column_name.rs:13:5 + | +13 | name: String, + | ^^^^ not found in `users` + +error[E0425]: cannot find value `hair_color` in module `users` + --> $DIR/as_changeset_bad_column_name.rs:14:5 + | +14 | #[column_name = "hair_color"] + | ^ not found in `users` + +error[E0412]: cannot find type `name` in module `users` + --> $DIR/as_changeset_bad_column_name.rs:20:18 + | +20 | struct UserTuple(#[column_name = "name"] String); + | ^ not found in `users` + +error[E0425]: cannot find value `name` in module `users` + --> $DIR/as_changeset_bad_column_name.rs:20:18 + | +20 | struct UserTuple(#[column_name = "name"] String); + | ^ not found in `users` + +error[E0601]: main function not found + +error: aborting due to 7 previous errors + diff --git a/diesel_compile_tests/tests/ui/as_changeset_missing_table_import.rs b/diesel_compile_tests/tests/ui/as_changeset_missing_table_import.rs new file mode 100644 index 000000000000..9dc67bc944b7 --- /dev/null +++ b/diesel_compile_tests/tests/ui/as_changeset_missing_table_import.rs @@ -0,0 +1,17 @@ +#[macro_use] +extern crate diesel; + +#[derive(AsChangeset)] +struct User { + id: i32, + name: String, +} + +#[derive(AsChangeset)] +#[table_name = "users"] +struct UserForm { + id: i32, + name: String, +} + +fn main() {} diff --git a/diesel_compile_tests/tests/ui/as_changeset_missing_table_import.stderr b/diesel_compile_tests/tests/ui/as_changeset_missing_table_import.stderr new file mode 100644 index 000000000000..e7dd75573568 --- /dev/null +++ b/diesel_compile_tests/tests/ui/as_changeset_missing_table_import.stderr @@ -0,0 +1,14 @@ +error[E0433]: failed to resolve. Use of undeclared type or module `users` + --> $DIR/as_changeset_missing_table_import.rs:5:8 + | +5 | struct User { + | ^^^^ Use of undeclared type or module `users` + +error[E0433]: failed to resolve. Use of undeclared type or module `users` + --> :1:1 + | +1 | #[table_name = "users"] + | ^ Use of undeclared type or module `users` + +error: aborting due to 2 previous errors + diff --git a/diesel_compile_tests/tests/ui/update-references.sh b/diesel_compile_tests/tests/ui/update-references.sh new file mode 100755 index 000000000000..c2c842fcc498 --- /dev/null +++ b/diesel_compile_tests/tests/ui/update-references.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash +# +# Copyright 2015 The Rust Project Developers. See the COPYRIGHT +# file at the top-level directory of this distribution and at +# http://rust-lang.org/COPYRIGHT. +# +# Licensed under the Apache License, Version 2.0 or the MIT license +# , at your +# option. This file may not be copied, modified, or distributed +# except according to those terms. + +# A script to update the references for particular tests. The idea is +# that you do a run, which will generate files in the build directory +# containing the (normalized) actual output of the compiler. This +# script will then copy that output and replace the "expected output" +# files. You can then commit the changes. +# +# If you find yourself manually editing a foo.stderr file, you're +# doing it wrong. + +if [[ "$1" == "--help" || "$1" == "-h" || "$1" == "" || "$2" == "" ]]; then + echo "usage: $0 " + echo "" + echo "For example:" + echo " $0 ../../../build/x86_64-apple-darwin/test/ui *.rs */*.rs" +fi + +MYDIR=$(dirname $0) + +BUILD_DIR="$1" +shift + +while [[ "$1" != "" ]]; do + STDERR_NAME="${1/%.rs/.stderr}" + STDOUT_NAME="${1/%.rs/.stdout}" + shift + if [ -f $BUILD_DIR/$STDOUT_NAME ] && \ + ! (diff $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME >& /dev/null); then + echo updating $MYDIR/$STDOUT_NAME + cp $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME + fi + if [ -f $BUILD_DIR/$STDERR_NAME ] && \ + ! (diff $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME >& /dev/null); then + echo updating $MYDIR/$STDERR_NAME + cp $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME + fi +done diff --git a/diesel_derives/Cargo.toml b/diesel_derives/Cargo.toml index 96c81db44f60..aa49a62b7cef 100644 --- a/diesel_derives/Cargo.toml +++ b/diesel_derives/Cargo.toml @@ -11,7 +11,7 @@ repository = "https://github.com/diesel-rs/diesel/tree/master/diesel_derives" [dependencies] syn = { version = "0.11.4", features = ["aster"] } quote = "0.3.12" -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } [dev-dependencies] dotenv = { version = ">=0.8, <0.11", default-features = false } diff --git a/diesel_derives2/Cargo.toml b/diesel_derives2/Cargo.toml index 64f08a0ce03e..90a3eb9cdb6f 100644 --- a/diesel_derives2/Cargo.toml +++ b/diesel_derives2/Cargo.toml @@ -11,7 +11,8 @@ repository = "https://github.com/diesel-rs/diesel/tree/master/diesel_derives" [dependencies] syn = { version = "0.12.0", features = ["full"] } quote = "0.4" -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } +proc-macro2 = "0.2.0" [dev-dependencies] cfg-if = "0.1.0" @@ -28,6 +29,7 @@ name = "tests" [features] default = [] lint = ["clippy"] +nightly = ["proc-macro2/nightly"] postgres = ["diesel/postgres", "diesel_migrations/postgres"] sqlite = ["diesel/sqlite", "diesel_migrations/sqlite"] mysql = ["diesel/mysql", "diesel_migrations/mysql"] diff --git a/diesel_derives2/src/as_changeset.rs b/diesel_derives2/src/as_changeset.rs index c042f7286919..691b92b45bdf 100644 --- a/diesel_derives2/src/as_changeset.rs +++ b/diesel_derives2/src/as_changeset.rs @@ -43,10 +43,10 @@ pub fn derive(item: syn::DeriveInput) -> quote::Tokens { ); } - wrap_in_dummy_const( - model.dummy_const_name("AS_CHANGESET"), + wrap_in_dummy_mod( + model.dummy_mod_name("as_changeset"), quote!( - use diesel::query_builder::AsChangeset; + use self::diesel::query_builder::AsChangeset; impl #impl_generics AsChangeset for &'update #struct_name #ty_generics #where_clause @@ -70,7 +70,7 @@ fn field_changeset_ty( let column_name = field.column_name(); if !treat_none_as_null && is_option_ty(&field.ty) { let field_ty = inner_of_option_ty(&field.ty); - parse_quote!(::std::option::Option>) + parse_quote!(std::option::Option>) } else { let field_ty = &field.ty; parse_quote!(diesel::dsl::Eq<#table_name::#column_name, &'update #field_ty>) @@ -82,11 +82,11 @@ fn field_changeset_expr( table_name: syn::Ident, treat_none_as_null: bool, ) -> syn::Expr { - let field_name = &field.name; + let field_access = &field.name; let column_name = field.column_name(); if !treat_none_as_null && is_option_ty(&field.ty) { - parse_quote!(self.#field_name.as_ref().map(|x| #table_name::#column_name.eq(x))) + parse_quote!(self#field_access.as_ref().map(|x| #table_name::#column_name.eq(x))) } else { - parse_quote!(#table_name::#column_name.eq(&self.#field_name)) + parse_quote!(#table_name::#column_name.eq(&self#field_access)) } } diff --git a/diesel_derives2/src/field.rs b/diesel_derives2/src/field.rs index 8f91979481a8..a197c65d5377 100644 --- a/diesel_derives2/src/field.rs +++ b/diesel_derives2/src/field.rs @@ -1,5 +1,6 @@ -use syn; +use proc_macro2::Span; use quote; +use syn; use meta::*; @@ -16,7 +17,11 @@ impl Field { .map(|m| m.expect_ident_value()); let name = match field.ident { Some(x) => FieldName::Named(x), - None => FieldName::Unnamed(index.into()), + None => FieldName::Unnamed(syn::Index { + index: index as u32, + // https://github.com/rust-lang/rust/issues/47312 + span: Span::call_site(), + }), }; Self { @@ -42,6 +47,13 @@ pub enum FieldName { impl quote::ToTokens for FieldName { fn to_tokens(&self, tokens: &mut quote::Tokens) { + use proc_macro2::{Spacing, TokenNode, TokenTree}; + + // https://github.com/rust-lang/rust/issues/47312 + tokens.append(TokenTree { + span: Span::call_site(), + kind: TokenNode::Op('.', Spacing::Alone), + }); match *self { FieldName::Named(x) => x.to_tokens(tokens), FieldName::Unnamed(ref x) => x.to_tokens(tokens), diff --git a/diesel_derives2/src/lib.rs b/diesel_derives2/src/lib.rs index 79a7d6c822f3..a9ed55f70114 100644 --- a/diesel_derives2/src/lib.rs +++ b/diesel_derives2/src/lib.rs @@ -1,3 +1,4 @@ +#![recursion_limit = "1024"] // Built-in Lints #![deny(warnings, missing_copy_implementations)] // Clippy lints @@ -9,6 +10,7 @@ warn(wrong_pub_self_convention, mut_mut, non_ascii_literal, similar_names, unicode_not_nfc, if_not_else, items_after_statements, used_underscore_binding))] +extern crate proc_macro2; extern crate proc_macro; #[macro_use] extern crate quote; diff --git a/diesel_derives2/src/meta.rs b/diesel_derives2/src/meta.rs index a91abe20abd4..dff945d6e3ba 100644 --- a/diesel_derives2/src/meta.rs +++ b/diesel_derives2/src/meta.rs @@ -1,6 +1,10 @@ +use proc_macro2::Span; use syn; pub struct MetaItem { + // Due to https://github.com/rust-lang/rust/issues/47941 + // we can only ever get the span of the #, which is better than nothing + span: Span, meta: syn::Meta, } @@ -11,9 +15,9 @@ impl MetaItem { ) -> Result> { attrs .iter() - .filter_map(syn::Attribute::interpret_meta) - .find(|m| m.name() == name) - .map(|meta| Self { meta }) + .filter_map(|attr| attr.interpret_meta().map(|m| (attr.pound_token.0[0], m))) + .find(|&(_, ref m)| m.name() == name) + .map(|(span, meta)| Self { span, meta }) .ok_or(MissingOption { name }) } @@ -40,7 +44,10 @@ impl MetaItem { ); x } - _ => self.expect_str_value().into(), + _ => syn::Ident::new( + &self.expect_str_value(), + self.span.resolved_at(Span::call_site()), + ), } } @@ -69,7 +76,7 @@ impl MetaItem { use syn::Meta::*; match self.meta { - List(ref list) => Some(Nested(list.nested.iter())), + List(ref list) => Some(Nested(list.nested.iter(), self.span)), _ => None, } } @@ -112,7 +119,7 @@ impl<'a> RequiredOption for Result> { } #[cfg_attr(rustfmt, rustfmt_skip)] // https://github.com/rust-lang-nursery/rustfmt/issues/2392 -pub struct Nested<'a>(syn::punctuated::Iter<'a, syn::NestedMeta, Token![,]>); +pub struct Nested<'a>(syn::punctuated::Iter<'a, syn::NestedMeta, Token![,]>, Span); impl<'a> Iterator for Nested<'a> { type Item = MetaItem; @@ -121,7 +128,10 @@ impl<'a> Iterator for Nested<'a> { use syn::NestedMeta::*; match self.0.next() { - Some(&Meta(ref item)) => Some(MetaItem { meta: item.clone() }), + Some(&Meta(ref item)) => Some(MetaItem { + span: self.1, + meta: item.clone(), + }), Some(_) => self.next(), None => None, } diff --git a/diesel_derives2/src/model.rs b/diesel_derives2/src/model.rs index cdf880d7568e..d4ae07ba0cbf 100644 --- a/diesel_derives2/src/model.rs +++ b/diesel_derives2/src/model.rs @@ -1,4 +1,5 @@ use syn; +use proc_macro2::Span; use field::*; use meta::*; @@ -28,13 +29,17 @@ impl Model { } pub fn table_name(&self) -> syn::Ident { - self.table_name_from_attribute - .unwrap_or_else(|| infer_table_name(self.name.as_ref()).into()) + self.table_name_from_attribute.unwrap_or_else(|| { + syn::Ident::new( + &infer_table_name(self.name.as_ref()), + self.name.span.resolved_at(Span::call_site()), + ) + }) } - pub fn dummy_const_name(&self, trait_name: &str) -> syn::Ident { - let name = self.name.as_ref().to_uppercase(); - format!("_IMPL_{}_FOR_{}", trait_name, name).into() + pub fn dummy_mod_name(&self, trait_name: &str) -> syn::Ident { + let name = self.name.as_ref().to_lowercase(); + format!("_impl_{}_for_{}", trait_name, name).into() } pub fn fields(&self) -> &[Field] { diff --git a/diesel_derives2/src/util.rs b/diesel_derives2/src/util.rs index 5e9ba6df9703..403de25d46e9 100644 --- a/diesel_derives2/src/util.rs +++ b/diesel_derives2/src/util.rs @@ -1,14 +1,18 @@ use syn::*; use quote::Tokens; -pub fn wrap_in_dummy_const(const_name: Ident, item: Tokens) -> Tokens { +pub fn wrap_in_dummy_mod(const_name: Ident, item: Tokens) -> Tokens { quote! { - const #const_name: () = { + mod #const_name { + // https://github.com/rust-lang/rust/issues/47314 + extern crate std; + mod diesel { __diesel_use_everything!(); } + use self::diesel::prelude::*; #item - }; + } } } diff --git a/diesel_infer_schema/Cargo.toml b/diesel_infer_schema/Cargo.toml index ad4ea3b9d5e4..8dae03de1d4d 100644 --- a/diesel_infer_schema/Cargo.toml +++ b/diesel_infer_schema/Cargo.toml @@ -11,7 +11,7 @@ keywords = ["diesel"] [dependencies] infer_schema_macros = { version = "1.1.0" } -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } [dev-dependencies] diesel = "1.1.0" diff --git a/diesel_infer_schema/infer_schema_internals/Cargo.toml b/diesel_infer_schema/infer_schema_internals/Cargo.toml index 4b1c1525e3a1..c947603e35cb 100644 --- a/diesel_infer_schema/infer_schema_internals/Cargo.toml +++ b/diesel_infer_schema/infer_schema_internals/Cargo.toml @@ -11,7 +11,7 @@ keywords = ["orm", "database", "postgres", "postgresql", "sql"] [dependencies] diesel = { version = "1.1.0", default-features = false } -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } [dev-dependencies] dotenv = ">=0.8, <0.11" diff --git a/diesel_infer_schema/infer_schema_macros/Cargo.toml b/diesel_infer_schema/infer_schema_macros/Cargo.toml index f1df37e27ef3..3634282b10a4 100644 --- a/diesel_infer_schema/infer_schema_macros/Cargo.toml +++ b/diesel_infer_schema/infer_schema_macros/Cargo.toml @@ -10,7 +10,7 @@ syn = { version = "0.11.4", features = ["aster"] } quote = "0.3.12" dotenv = { version = ">=0.8, <0.11", optional = true, default-features = false } infer_schema_internals = { version = "1.1.0", default-features = false } -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } [dev-dependencies] tempdir = "^0.3.4" diff --git a/diesel_migrations/Cargo.toml b/diesel_migrations/Cargo.toml index f5c2260b3563..dfbc93ea0ae4 100644 --- a/diesel_migrations/Cargo.toml +++ b/diesel_migrations/Cargo.toml @@ -9,7 +9,7 @@ homepage = "http://diesel.rs" [dependencies] -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } migrations_internals = { version = "1.1.0" } migrations_macros = { version = "1.1.0" } diff --git a/diesel_migrations/migrations_internals/Cargo.toml b/diesel_migrations/migrations_internals/Cargo.toml index bdbeca8fea45..28dea3bc300d 100644 --- a/diesel_migrations/migrations_internals/Cargo.toml +++ b/diesel_migrations/migrations_internals/Cargo.toml @@ -7,7 +7,7 @@ description = "Internal implementation of diesels migration mechanism" homepage = "http://diesel.rs" [dependencies] -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } diesel = "1.1.0" [dev-dependencies] diff --git a/diesel_migrations/migrations_macros/Cargo.toml b/diesel_migrations/migrations_macros/Cargo.toml index 89729a2f5986..4c65a289b6f9 100644 --- a/diesel_migrations/migrations_macros/Cargo.toml +++ b/diesel_migrations/migrations_macros/Cargo.toml @@ -8,7 +8,7 @@ documentation = "http://docs.diesel.rs" homepage = "http://diesel.rs" [dependencies] -clippy = { optional = true, version = "=0.0.174" } +clippy = { optional = true, version = "=0.0.185" } migrations_internals = { version = "1.1.0" } syn = { version = "0.11.4", features = ["aster"] } quote = "0.3.12"