Wiki

Ticket #148 (closed defect: fixed)

Opened 9 years ago

Last modified 9 years ago

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

Changed 9 years ago by Chuck

  • status changed from new to closed
  • resolution set to fixed

Fixed in changeset:1931

Note: See TracTickets for help on using tickets.