From cd5dbd84e0519526cdc60f37cffeeefe044b5afc Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Mon, 8 May 2017 18:24:15 +0200 Subject: [PATCH] in storage class doesn't mean ref/assignable --- src/analysis/unused.d | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/analysis/unused.d b/src/analysis/unused.d index ad20543..033fa82 100644 --- a/src/analysis/unused.d +++ b/src/analysis/unused.d @@ -299,18 +299,15 @@ class UnusedVariableCheck : BaseAnalyzer override void visit(const Parameter parameter) { - import std.algorithm : canFind; + import std.algorithm : among; import std.algorithm.iteration : filter; import std.range : empty; import std.array : array; if (parameter.name != tok!"") { - immutable bool isRef = - canFind(parameter.parameterAttributes, cast(IdType) tok!"ref") || - canFind(parameter.parameterAttributes, cast(IdType) tok!"in") || - canFind(parameter.parameterAttributes, cast(IdType) tok!"out"); - + immutable bool isRef = !parameter.parameterAttributes + .filter!(a => a.among(tok!"ref", tok!"out")).empty; immutable bool isPtr = parameter.type && !parameter.type .typeSuffixes.filter!(a => a.star != tok!"").empty; @@ -461,6 +458,8 @@ private: int a; // [warn]: Variable a is never used. } + void inPSC(in int a){} // [warn]: Parameter a is never used. + // Issue 380 int templatedEnum() {