| 897 | |
| 898 | // Make an array type of t |
| 899 | private TypeMemPtr typeAry( Type t ) { |
| 900 | if( t instanceof TypeMemPtr tmp && tmp.notNull() ) |
| 901 | throw error("Arrays of reference types must always be nullable"); |
| 902 | String tname = "["+t.str()+"]"; |
| 903 | Type ta = TYPES.get(tname); |
| 904 | if( ta != null ) return (TypeMemPtr)ta; |
| 905 | TypeStruct ts = TypeStruct.makeAry(tname,TypeInteger.U32,_code.getALIAS(),t,_code.getALIAS()); |
| 906 | assert ts.str().equals(tname); |
| 907 | TypeMemPtr tary = TypeMemPtr.make(ts); |
| 908 | TYPES.put(tname,tary); |
| 909 | return tary; |
| 910 | } |
| 911 | |
| 912 | // A function type is `{ type... -> type }` or `{ type }`. |
| 913 | private Type typeFunPtr() { |