void wake::ast::Foreach::typeCheck() { auto_ptr<Type> list(iterable->typeCheck(false)); if(list->type == TYPE_OPTIONAL) { errors->addError(new SemanticError(DIRECT_USE_OF_OPTIONAL_TYPE, "Iterating over optional type. You must first wrap object in an exists { } clause.", node)); return; } // no sense checking the contents of the loop if we're missing a variable if(list->type == TYPE_MATCHALL) return; if(list->type != TYPE_LIST) { errors->addError(new SemanticError(TYPE_ERROR, "Calling foreach over something that is not a list", node)); } else { Type lowered(*list->typedata.list.contained); if(lowered.alias != NULL) free(lowered.alias); Type actualLowered = getIterationType(&lowered); scopesymtable->pushScope(); scopesymtable->add(&actualLowered); body->typeCheck(); scopesymtable->popScope(); AddSubNode(node, MakeNodeFromString(NT_COMPILER_HINT, strdup(scopesymtable->getNameForType(&actualLowered).c_str()), node->loc)); } }
nsIAtom* nsLanguageAtomService::LookupLanguage(const nsACString &aLanguage, nsresult *aError) { nsCAutoString lowered(aLanguage); ToLowerCase(lowered); nsCOMPtr<nsIAtom> lang = do_GetAtom(lowered); return GetLanguageGroup(lang, aError); }
void extended_lexical_cast( const std::string &val, bool &var ) { std::string lowered( boost::algorithm::to_lower_copy( val ) ); if ( lowered == "true" || lowered == "1" ) { var = true; } else if ( lowered == "false" || lowered == "0" ) { var = false; } else { throw boost::bad_lexical_cast(); } }
void EditFrame::onLower() { emit lowered(this); }