about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMichael Wright <mikerite@lavabit.com>2019-09-23 05:26:47 +0200
committerMichael Wright <mikerite@lavabit.com>2019-09-23 05:26:47 +0200
commitca6d36ba224e1cbd207db792833bab9325a8a897 (patch)
tree54735a0255153c7f8dfa4c8ad4e42072d45ad14b
parentbe4e41562a7f1a14783fecff8dd904fd28d1f82f (diff)
parent157edad6205fdd6a4f5932fba2675c6190746358 (diff)
downloadrust-ca6d36ba224e1cbd207db792833bab9325a8a897.tar.gz
rust-ca6d36ba224e1cbd207db792833bab9325a8a897.zip
Merge branch 'master' into unneeded_wildcard_pattern
-rw-r--r--clippy_lints/src/cargo_common_metadata.rs10
-rw-r--r--tests/ui/builtin-type-shadow.stderr2
2 files changed, 10 insertions, 2 deletions
diff --git a/clippy_lints/src/cargo_common_metadata.rs b/clippy_lints/src/cargo_common_metadata.rs
index 115bb9ee8c8..cfc70de8f21 100644
--- a/clippy_lints/src/cargo_common_metadata.rs
+++ b/clippy_lints/src/cargo_common_metadata.rs
@@ -1,5 +1,7 @@
 //! lint on missing cargo common metadata
 
+use std::path::PathBuf;
+
 use crate::utils::span_lint;
 use rustc::lint::{EarlyContext, EarlyLintPass, LintArray, LintPass};
 use rustc::{declare_lint_pass, declare_tool_lint};
@@ -47,6 +49,10 @@ fn is_empty_str(value: &Option<String>) -> bool {
     value.as_ref().map_or(true, String::is_empty)
 }
 
+fn is_empty_path(value: &Option<PathBuf>) -> bool {
+    value.as_ref().and_then(|x| x.to_str()).map_or(true, str::is_empty)
+}
+
 fn is_empty_vec(value: &[String]) -> bool {
     // This works because empty iterators return true
     value.iter().all(std::string::String::is_empty)
@@ -72,8 +78,8 @@ impl EarlyLintPass for CargoCommonMetadata {
                 missing_warning(cx, &package, "package.description");
             }
 
-            if is_empty_str(&package.license) {
-                missing_warning(cx, &package, "package.license");
+            if is_empty_str(&package.license) && is_empty_path(&package.license_file) {
+                missing_warning(cx, &package, "either package.license or package.license_file");
             }
 
             if is_empty_str(&package.repository) {
diff --git a/tests/ui/builtin-type-shadow.stderr b/tests/ui/builtin-type-shadow.stderr
index 5714f2094da..c19ea6114f8 100644
--- a/tests/ui/builtin-type-shadow.stderr
+++ b/tests/ui/builtin-type-shadow.stderr
@@ -16,6 +16,8 @@ LL |     42
    |
    = note: expected type `u32`
               found type `{integer}`
+   = help: type parameters must be constrained to match other types
+   = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
 
 error: aborting due to 2 previous errors