vyper Version (output of vyper --version): commit 4b4e188ba83d28b5dd6ff66479e7448e5b925030
Issue description
Since ModuleT is a Vyper type, and since ModuleT._invalid_locations
does not contain DataLocation.STORAGE, it is possible to use it as a
type for a storage variable while this should not be possible.
The contract below will compile, and calling foo() will return
(1,2).
Version Information
vyper --version
): commit4b4e188ba83d28b5dd6ff66479e7448e5b925030
Issue description
Since
ModuleT
is a Vyper type, and sinceModuleT._invalid_locations
does not containDataLocation.STORAGE
, it is possible to use it as a type for a storage variable while this should not be possible.The contract below will compile, and calling
foo()
will return(1,2)
.Note that a similar behavior can be observed for
InterfaceT
.