[[Property:title|CA013 - Exported creation procedure]]
[[Property:link_title|CA013]]
[[Property:weight|0]]
[[Property:uuid|26455914-3b04-cacc-67bb-cd8e083ce947]]
__NOTOC__
=Description=
If acreation procedure is exported then it may be called by clients after the object has been created. Usually, this is not intended. A client might, for example, by accident call <e>x.make</e> instead of <e>create x.make</e>, possibly causing a class invariant or postcondition to not hold anymore.

:{| class="doctable"
|-
| '''Scope'''
| class
|-
| '''Status'''
| Enabled
|-
| '''Severity'''
| Warning
|-
| '''Applicability'''
| All
|-
| '''Score'''
|  50
|}


=Example of violation=
<e>class TEST
create
	make
feature -- Initialization
	make
			-- Initialize Current
		do
		end
	update
		do
		end
end
</e>

=Recommendation=
Make sure to export the creation procedure to NONE.

In the example, add the export to NONE after the feature clause:
<e>class TEST
create
	make
feature {NONE} -- Initialization
	make
			-- Initialize Current
		do
		end
feature -- Initialization
	update
		do
		end
end
</e>

