diff --git a/analyzer/type-section.go b/analyzer/type-section.go index 588d1d6..4825250 100644 --- a/analyzer/type-section.go +++ b/analyzer/type-section.go @@ -39,13 +39,16 @@ func (member ObjectMember) ToString (indent int) (output string) { indent, "member ", member.permission.ToString(), " ", member.name) - if member.bitWidth > 0 { output += fmt.Sprint(" width ", member.bitWidth) } - output += "\n" + output += member.what.ToString(indent + 1) + if member.argument != nil { + output += member.argument.ToString(indent + 1) + } + return } diff --git a/parser/type.go b/parser/type.go index bcc2acd..8caa8b8 100644 --- a/parser/type.go +++ b/parser/type.go @@ -101,7 +101,8 @@ func (parser *parsingOperation) parseTypeSectionMember () ( // see if value exists if parser.token.Is(lexer.TokenKindNewline) { - parser.nextToken() + err = parser.nextToken() + if err != nil { return } // if we have exited the member, return if !parser.token.Is(lexer.TokenKindIndent) { return } if parser.token.Value().(int) != 2 { return } diff --git a/tests/analyzer/typeSection/main.arf b/tests/analyzer/typeSection/main.arf index b61de1d..7714a49 100644 --- a/tests/analyzer/typeSection/main.arf +++ b/tests/analyzer/typeSection/main.arf @@ -7,7 +7,10 @@ type ro aBasicInt:Int 5 type ro bOnBasicInt:aBasicInt type ro cBasicObject:Obj - ro that:Int + ro that:UInt ro this:Int type ro dInheritedFromOther:something.Thing + +type ro eInheritObject:cBasicObject + rw that