I did this recently and needed about 30 minutes to find my bug:
function Demo
{
Param (
[string] $input
)
}
You can pass everything to this parameter, no warning, no error and $input is always $null !
See here, too: #712 "New Rule Suggestion: AvoidReuseOfAutomaticVariables"