[MIRROR] Adds a check grep for using src as a trait source rather that REF(src) [MDB IGNORE] (#23264)

* Adds a check grep for using `src` as a trait source rather that `REF(src)` (#77836)

## About The Pull Request

Using `src` as a trait source is an error and can often lead to
hard-deletes

If you wish to tie a source to a certain datum, it is common to use
`REF(src)` instead.

Ideally, we would lint or test for any use of a reference rather than a
string in use in trait sources, but that's a bit harder to setup.
Currently (from what I can see) the *only* erroneous use of references
as sources are via `src`, so it being the most common error, I see it
fine to lint for it.

## Changelog

Nothing player facing.

* Adds a check grep for using `src` as a trait source rather that `REF(src)`

* Update style.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-08-23 01:18:53 -04:00
committed by GitHub
co-authored by MrMelbert Giz
parent ab236fd886
commit 53955051d0
8 changed files with 25 additions and 13 deletions
@@ -21,7 +21,7 @@ GLOBAL_LIST_INIT(floor_diseases, list(
if(!isobj(parent))
return COMPONENT_INCOMPATIBLE
ADD_TRAIT(parent, TRAIT_GERM_SENSITIVE, src)
ADD_TRAIT(parent, TRAIT_GERM_SENSITIVE, REF(src))
RegisterSignal(parent, COMSIG_ATOM_EXAMINE, PROC_REF(examine))
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(handle_movement))
@@ -44,7 +44,7 @@ GLOBAL_LIST_INIT(floor_diseases, list(
handle_movement()
/datum/component/germ_sensitive/UnregisterFromParent()
REMOVE_TRAIT(parent, TRAIT_GERM_SENSITIVE, src)
REMOVE_TRAIT(parent, TRAIT_GERM_SENSITIVE, REF(src))
UnregisterSignal(parent, list(
COMSIG_ATOM_EXAMINE,
COMSIG_MOVABLE_MOVED,
+2 -2
View File
@@ -83,7 +83,7 @@
/datum/component/label/proc/apply_label()
var/atom/owner = parent
owner.name += " ([label_name])"
ADD_TRAIT(owner, TRAIT_HAS_LABEL, src)
ADD_TRAIT(owner, TRAIT_HAS_LABEL, REF(src))
owner.update_appearance(UPDATE_ICON)
/// Removes the label from the parent's name
@@ -91,5 +91,5 @@
var/atom/owner = parent
owner.name = replacetext(owner.name, "([label_name])", "") // Remove the label text from the parent's name, wherever it's located.
owner.name = trim(owner.name) // Shave off any white space from the beginning or end of the parent's name.
REMOVE_TRAIT(owner, TRAIT_HAS_LABEL, src)
REMOVE_TRAIT(owner, TRAIT_HAS_LABEL, REF(src))
owner.update_appearance(UPDATE_ICON)
+2 -2
View File
@@ -35,7 +35,7 @@
src.direction = direction
ADD_TRAIT(parent, TRAIT_HYPERSPACED, src)
ADD_TRAIT(parent, TRAIT_HYPERSPACED, REF(src))
RegisterSignals(parent, list(COMSIG_MOVABLE_MOVED, COMSIG_MOVABLE_UNBUCKLE, COMSIG_ATOM_NO_LONGER_PULLED), PROC_REF(update_state))
RegisterSignal(parent, SIGNAL_REMOVETRAIT(TRAIT_FREE_HYPERSPACE_MOVEMENT), PROC_REF(initialize_loop))
@@ -178,7 +178,7 @@
qdel(src)
/datum/component/shuttle_cling/Destroy(force, silent)
REMOVE_TRAIT(parent, TRAIT_HYPERSPACED, src)
REMOVE_TRAIT(parent, TRAIT_HYPERSPACED, REF(src))
QDEL_NULL(hyperloop)
return ..()
+2 -2
View File
@@ -98,7 +98,7 @@
RegisterSignal(src, COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL), PROC_REF(on_parent_multitool))
ADD_TRAIT(mob_parent, TRAIT_STYLISH, src) // SKYRAT EDIT ADD - allows style meter chads to do flips
ADD_TRAIT(mob_parent, TRAIT_STYLISH, REF(src)) // SKYRAT EDIT ADD - allows style meter chads to do flips
/datum/component/style/RegisterWithParent()
RegisterSignal(parent, COMSIG_MOB_ITEM_AFTERATTACK, PROC_REF(hotswap))
@@ -152,7 +152,7 @@
if(mob_parent.hud_used)
mob_parent.hud_used.static_inventory -= meter
mob_parent.hud_used.show_hud(mob_parent.hud_used.hud_version)
REMOVE_TRAIT(mob_parent, TRAIT_STYLISH, src) // SKYRAT EDIT ADD - allows style meter chads to do flips
REMOVE_TRAIT(mob_parent, TRAIT_STYLISH, REF(src)) // SKYRAT EDIT ADD - allows style meter chads to do flips
return ..()