function checkForShadows(scope){var variables=scope.variables;for(var i=0;i<variables.length;++i){var variable=variables[i];// Skips "arguments" or variables of a class name in the class scope of ClassDeclaration.
if(variable.identifiers.length===0||isDuplicatedClassNameVariable(variable)||isAllowed(variable)){continue;}// Gets shadowed variable.
var shadowed=astUtils.getVariableByName(scope.upper,variable.name);if(shadowed&&(shadowed.identifiers.length>0||options.builtinGlobals&&"writeable"in shadowed)&&!isOnInitializer(variable,shadowed)&&!(options.hoist!=="all"&&isInTdz(variable,shadowed))){context.report({node:variable.identifiers[0],message:"'{{name}}' is already declared in the upper scope.",data:variable});}}}
Checks the current context for shadowed variables.
@param {Scope} scope - Fixme
@returns {void}