equal
deleted
inserted
replaced
496 |
496 |
497 "Modified: / 06-11-2014 / 01:12:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
497 "Modified: / 06-11-2014 / 01:12:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
498 ! |
498 ! |
499 |
499 |
500 testInlinePluggable |
500 testInlinePluggable |
|
501 "Sadly, on Smalltalk/X blocks cannot be inlined because |
|
502 the VM does not provide enough information to map |
|
503 it back to source code. Very bad indeed!!" |
|
504 ((Smalltalk respondsTo:#isSmalltalkX) and:[ Smalltalk isSmalltalkX ]) ifTrue:[ |
|
505 self skipIf: true description: 'Blocks cannot be inlined due to a lack of proper VM support'. |
|
506 ]. |
|
507 |
501 tree := PPCSequenceNode new |
508 tree := PPCSequenceNode new |
502 children: { PPCInlinePluggableNode new block: [ :ctx | tree. ctx next ]. $a asParser asCompilerNode }. |
509 children: { PPCInlinePluggableNode new block: [ :ctx | ctx next ]. $a asParser asCompilerNode }. |
503 |
510 |
504 parser := self compileTree: tree. |
511 parser := self compileTree: tree. |
505 |
512 |
506 self assert: parser class methodDictionary size = 3. |
513 self assert: parser class methodDictionary size = 3. |
507 self assert: parser parse: 'ba' to: #($b $a). |
514 self assert: parser parse: 'ba' to: #($b $a). |
508 |
515 |
509 "Modified: / 06-11-2014 / 01:20:46 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
516 "Modified: / 06-11-2014 / 01:48:07 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
510 ! ! |
517 ! ! |
511 |
518 |
512 !PPCNodeCompilingTest class methodsFor:'documentation'! |
519 !PPCNodeCompilingTest class methodsFor:'documentation'! |
513 |
520 |
514 version_HG |
521 version_HG |