public readonly PredefinedType INotifyCompletion;
public readonly PredefinedType ICriticalNotifyCompletion;
+ // C# 6.0
+ public readonly PredefinedType IFormattable;
+ public readonly PredefinedType FormattableString;
+ public readonly PredefinedType FormattableStringFactory;
+
public PredefinedTypes (ModuleContainer module)
{
TypedReference = new PredefinedType (module, MemberKind.Struct, "System", "TypedReference");
INotifyCompletion = new PredefinedType (module, MemberKind.Interface, "System.Runtime.CompilerServices", "INotifyCompletion");
ICriticalNotifyCompletion = new PredefinedType (module, MemberKind.Interface, "System.Runtime.CompilerServices", "ICriticalNotifyCompletion");
+ IFormattable = new PredefinedType (module, MemberKind.Interface, "System", "IFormattable");
+ FormattableString = new PredefinedType (module, MemberKind.Class, "System", "FormattableString");
+ FormattableStringFactory = new PredefinedType (module, MemberKind.Class, "System.Runtime.CompilerServices", "FormattableStringFactory");
+
//
// Define types which are used for comparison. It does not matter
// if they don't exist as no error report is needed
TaskGeneric.TypeSpec.IsGenericTask = true;
SwitchUserTypes = Switch.CreateSwitchUserTypes (module, Nullable.TypeSpec);
+
+ IFormattable.Define ();
+ FormattableString.Define ();
}
}
public readonly PredefinedMember<MethodSpec> FixedBufferAttributeCtor;
public readonly PredefinedMember<MethodSpec> MethodInfoGetMethodFromHandle;
public readonly PredefinedMember<MethodSpec> MethodInfoGetMethodFromHandle2;
+ public readonly PredefinedMember<MethodSpec> MethodInfoCreateDelegate;
public readonly PredefinedMember<MethodSpec> MonitorEnter;
public readonly PredefinedMember<MethodSpec> MonitorEnter_v4;
public readonly PredefinedMember<MethodSpec> MonitorExit;
MethodInfoGetMethodFromHandle2 = new PredefinedMember<MethodSpec> (module, types.MethodBase,
"GetMethodFromHandle", MemberKind.Method, types.RuntimeMethodHandle, new PredefinedType (btypes.RuntimeTypeHandle));
+ MethodInfoCreateDelegate = new PredefinedMember<MethodSpec> (module, types.MethodInfo,
+ "CreateDelegate", MemberKind.Method,
+ new PredefinedType (btypes.Type), new PredefinedType (btypes.Object));
+
MonitorEnter = new PredefinedMember<MethodSpec> (module, types.Monitor, "Enter", btypes.Object);
MonitorEnter_v4 = new PredefinedMember<MethodSpec> (module, types.Monitor,