@SuppressWarnings("unused") @Specialization(guards = {"!isData(name)", "name == cachedName"}) protected Object updateSlotS4Cached( RAttributable object, String name, Object value, @Cached("name") String cachedName, @Cached("createAttrUpdate(cachedName)") PutAttributeNode attributeUpdate) { attributeUpdate.execute(object.initAttributes(), value); return object; }
@Specialization(contains = "updateSlotS4Cached", guards = "!isData(name)") protected Object updateSlotS4(RAttributable object, String name, Object value) { assert name == name.intern(); object.setAttr(name, value); return object; }