Fix #73038.
[mono.git] / mcs / mcs / TODO
index 03d691e99ab7e161eb28cad68b36469a7ceb7b94..3545196fc9266498142c7c420ab9ec202c1ccc9d 100644 (file)
@@ -1,12 +1,34 @@
+* Value Parameter
+
+       I believe that `Value Parameter' might have been introduced
+       after C# 1.0, also notice than in the treatment of Value Parameter
+       the parameters are defined in four categories:
+
+       Section 9.3 in the latest spec.
+
+
+* Review
+--------
+
+       Reference type equality operators (15.9.6) introduced
+       operator == (C x, C y) where C is a reference type.
+
+       Our compiler used:
+
+       operator == (object a, object b)
+
+       Review our implementation.
+
 New
 ---
 
-       When invoked by `Assign' on a value type, it knows the address where
-       it will be stored.
+       It would be nice to optimize the case of:
+
+               Method (new ValueType ())
 
-       In any other place value types do not need a local variable, so
-       we could probably just do an `initobj' and leave the result *on the stack*
-       as an argument.
+       So that no temporary is created, and we only use a newobj call
+       that remains on the stack, as opposed to ldloca, initobj, ldloc
+       call.
 
 NEW NOTES:
 ----------