DmdType CreateTypeSig(IList <TSpec> tspecs, DmdType currentType) { foreach (var tspec in tspecs) { switch (tspec.etype) { case DMD.ElementType.SZArray: currentType = currentType.MakeArrayType(); break; case DMD.ElementType.Array: var arraySpec = (ArraySpec)tspec; currentType = currentType.MakeArrayType(arraySpec.rank, arraySpec.sizes, arraySpec.lowerBounds); break; case DMD.ElementType.GenericInst: var ginstSpec = (GenericInstSpec)tspec; currentType = currentType.MakeGenericType(ginstSpec.args.ToArray()); break; case DMD.ElementType.ByRef: currentType = currentType.MakeByRefType(); break; case DMD.ElementType.Ptr: currentType = currentType.MakePointerType(); break; default: Verify(false, "Unknown TSpec"); break; } } return(currentType); }
protected AddressILValue(DebuggerRuntimeImpl runtime, DmdType locationType) { this.runtime = runtime; Type = locationType.MakeByRefType(); }