// Compiler options: -t:library
+public interface I<T>
+{
+ T Value { get; }
+}
+
+public class AI: I<object>
+{
+ public object Value { get; set; }
+}
+
public class External
{
public dynamic DynamicProperty { get; set; }
public dynamic Field;
+ public dynamic[,] FieldArray;
public dynamic Method (dynamic d)
{
{
d = decimal.MaxValue;
}
+
+ public I<dynamic>[] Method2 (dynamic d)
+ {
+ return new [] { new AI () { Value = d }};
+ }
+
+ // Same as Method2 to check we are interning dynamic
+ public I<dynamic>[] Method3 (dynamic d)
+ {
+ return d;
+ }
+}
+
+public class CI<T> : I<T>
+{
+ public T Value { get; set; }
+}
+
+public class CI2 : CI<dynamic>
+{
}