compiler/PPCASTUtilitiesTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 30 Jul 2015 08:37:37 +0100
changeset 510 869853decf31
parent 506 e5d63143737f
permissions -rw-r--r--
Tests refactoring - use generated test cases to make sure all posibilities are tested. Do not generate resource for all combinations, use PPCSetUpBeforeTearDownAfterResource instead that delegates parser compilation to the testcase itself (it calls it's #setUpBefore method).
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
506
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/petitparser/compiler' }"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
TestCase subclass:#PPCASTUtilitiesTests
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
	instanceVariableNames:''
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
	classVariableNames:'SomeClassVariable'
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
	poolDictionaries:''
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
	category:'PetitCompiler-Tests-Support'
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
!PPCASTUtilitiesTests methodsFor:'methods under test'!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
methodSimple1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
    ^ 1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
    "Created: / 27-07-2015 / 13:27:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
methodWithArguments: arg1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
    (arg1 + 4) yourself isOdd ifTrue:[ 
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
        ^ true
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
    ].
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
    ^ false not.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
    "Created: / 27-07-2015 / 13:35:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
methodWithClassReference
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
    ^ PPCASTUtilities new
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
    "Created: / 27-07-2015 / 13:28:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
methodWithClassVariableReference
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
    ^ SomeClassVariable
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
    "Created: / 27-07-2015 / 14:02:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
methodWithInstanceVariableReference
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
    ^ testSelector
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
    "Created: / 27-07-2015 / 13:29:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
methodWithSelfSend1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
    ^ self methodSimple1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
    "Created: / 27-07-2015 / 13:28:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
methodWithSelfSend2
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
    ^ self methodWithSelfSend1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    "Created: / 27-07-2015 / 13:34:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
methodWithSelfSend3
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
    ^ self methodWithInstanceVariableReference
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
    "Created: / 27-07-2015 / 14:01:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
methodWithSuperSend
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
    ^ super yourself
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
    "Created: / 27-07-2015 / 14:02:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
methodWithTemporaries
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
    | tmp1 |
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
    tmp1 := 3.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    (tmp1 + 4) yourself isOdd ifTrue:[ 
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
        | tmp2 |
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
        tmp2 := tmp1 + 1.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
        ^ tmp1 + tmp2.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
    ].
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    ^ tmp1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
    "Created: / 27-07-2015 / 13:33:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
! !
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
!PPCASTUtilitiesTests methodsFor:'tests'!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
test_checkNodeIsFunctional_1
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
    self shouldnt: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodSimple1) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
            raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
    self shouldnt: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithSelfSend1) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
            raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
    self shouldnt: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithSelfSend2) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
            raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    self shouldnt: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithClassReference) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
            raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    self shouldnt: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithTemporaries) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
            raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
    self shouldnt: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithArguments:) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
            raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
    "Created: / 27-07-2015 / 14:00:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
!
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
test_checkNodeIsFunctional_2
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    self should: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithInstanceVariableReference) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
         raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    self should: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithClassVariableReference) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
         raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110
    self should: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithSelfSend3) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   111
         raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   112
    self should: [ PPCASTUtilities new checkNodeIsFunctional: (self class >> #methodWithSuperSend) parseTree inClass: self class ]
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   113
         raise: PPCCompilationError.
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   114
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   115
    "Created: / 27-07-2015 / 14:00:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   116
! !
e5d63143737f Added static analysis of blocks when inlining. Allow inlining only when block is functional
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   117