Ticket #148 (closed defect: fixed)
Compiler is sensitive to "implements" order
Reported by: | Chuck | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Cobra 0.9 |
Component: | Cobra Compiler | Version: | 0.8.0 |
Keywords: | Cc: |
Description
Some programs are breaking on Novell Mono 2.2 whose reflection system returns the "implements" of IList<of T> in a different order than before. The non-generic IEnumerable is now coming before IEnumerable<of T> (in response to .clrType.getInterfaces). This causes Cobra's Box.innerType to find the non-generic "getEnumerator" first.
Cobra should not be sensitive to this order.
Here is a program that fails only on Mono 2.2:
class X def main is shared pass def foo(args as IList<of String>) for arg in args print arg.trim # foo.cobra(8): error: # Cannot find a definition for "trim" in "arg" whose type is "Object?".
Change History
Note: See
TracTickets for help on using
tickets.