Wiki
Show
Ignore:
Timestamp:
06/24/09 08:41:56 (3 years ago)
Author:
Chuck.Esterbrook
Message:

Fixed: A duplicate enum error produces an internal error/exception rather than a useful error message.
reported-by:webnov8

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • cobra/trunk/Source/CobraParser.cobra

    r2121 r2123  
    977977        docString = .docString 
    978978        enumMembers = List<of EnumMember>() 
     979        nameSet = Set<of String>() 
    979980        while .peek.which <> 'DEDENT' 
    980981            .zeroOrMore('EOL') 
     
    986987                enumValue = nil 
    987988            .endOfLine 
    988             enumMembers.add(EnumMember(enumNameToken, enumValue)) 
    989             # TODO: check for repeated names 
     989            if enumNameToken.text in nameSet 
     990                .recordError(enumNameToken, 'Already defined "[enumNameToken.text]" earlier.') 
     991            else 
     992                enumMembers.add(EnumMember(enumNameToken, enumValue)) 
     993                nameSet.add(enumNameToken.text) 
    990994            # TODO: check for values that repeat or go backwards 
    991995        .dedent