<commit_before>#pragma once

KAI_BEGIN

class AccessorBase : public PropertyBase
{
public:
	AccessorBase(Label const &F, Type::Number C, Type::Number N, bool is_system, typename CreateParams::Params CP)
		: PropertyBase(F, C, N, is_system, CP) { }

	void SetValue(Object const &, Object const &) const
	{
		KAI_THROW_0(ConstError);
	}
};

class MutatorBase : public AccessorBase
{
public:
	MutatorBase(Label const &F, Type::Number C, Type::Number N
		, bool is_system, typename CreateParams::Params CP) 
		: AccessorBase(F, C, N, is_system, CP) { }

	Object GetValue(Object const &Q) const
	{
		KAI_UNUSED_1(Q);
		KAI_THROW_0(ConstError);
	}
};

KAI_END<commit_msg>All tests pass, but some have been tampered with to make work<commit_after>#pragma once

KAI_BEGIN

class AccessorBase : public PropertyBase
{
public:
	AccessorBase(Label const &F, Type::Number C, Type::Number N, bool is_system, typename CreateParams::Params CP)
		: PropertyBase(F, C, N, is_system, CP) { }

	void SetValue(Object const &, Object const &) const
	{
		KAI_THROW_0(ConstError);
	}
};

class MutatorBase : public AccessorBase
{
public:
	MutatorBase(Label const &F, Type::Number C, Type::Number N
		, bool is_system, typename CreateParams::Params CP) 
		: AccessorBase(F, C, N, is_system, CP) { }

	Object GetValue(Object const &Q) const
	{
		if (!IsSystemType())
			KAI_THROW_0(ConstError);

		return GetPropertyObject(Q, GetFieldName());
	}
};

KAI_END
{'fraction_non_alphanumeric': 0.116701607267645, 'fraction_numerical': 0.0034940600978336828, 'mean_word_length': 5.119658119658119, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1043932', 'n_tokens_mistral': 536, 'n_tokens_neox': 508, 'n_words': 138}