Fix in codegen for inlined sequence nodes.
For inlined sequence nodes, generate nested ifs rather than sequential code which
does not work when inlined. The reason is that #codeReturn: in inline generates
instvar assignment, not method return, so in sequential code the next child of a sequence
will be probed even if previous failed. If that happends, the whole sequence fail and therefore
we must generate nested ifs to correctly handle this w.r.t. inlining.
"{ Package: 'stx:goodies/petitparser/parsers/java' }"
"{ NameSpace: Smalltalk }"
PJTypeNode subclass:#PJArrayTypeNode
instanceVariableNames:'dimensions elementType'
classVariableNames:''
poolDictionaries:''
category:'PetitJava-AST'
!
!PJArrayTypeNode class methodsFor:'instance creation'!
elementType: aTypeNode dimensions: aNumber
^(self new) elementType: aTypeNode; dimensions: aNumber; yourself
! !
!PJArrayTypeNode methodsFor:'accessing'!
dimensions
^ dimensions
!
dimensions: anObject
dimensions := anObject
!
elementType
^ elementType
!
elementType: anObject
elementType := anObject
!
type
^type ifNil: [type :=
((1 to: dimensions)
inject: elementType type
into: [:current :parenthesis |
(current , '[]')]) ]
! !