Aller au contenu

Module:No globals

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est la version actuelle de cette page, en date du 10 mai 2019 à 20:39 et modifiée en dernier par Yurik (discuter | contributions) (update manually from mw. Now autotranslated). L'URL présente est un lien permanent vers cette version.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

Ce module génère une erreur si une fonction essaye de lire ou de modifier une variable globale de valeur nil. La seule exception la variable arg qui est utilisée par Scribunto.

Pour utiliser ce module ajouter require( 'Module:No globals' ) au début du module.

L'utilisation de ce module permet en général de détecter plus facilement les typos dans les noms des variables.


local mt = getmetatable(_G) or {}
function mt.__index (t, k)
	if k ~= 'arg' then
		-- perf optimization here and below: do not load Module:TNT unless there is an error
		error(require('Module:TNT').format('I18n/No globals', 'err-read', tostring(k)), 2)
	end
	return nil
end
function mt.__newindex(t, k, v)
	if k ~= 'arg' then
		error(require('Module:TNT').format('I18n/No globals', 'err-write', tostring(k)), 2)
	end
	rawset(t, k, v)
end
setmetatable(_G, mt)