ProjectChecker.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 12 Mar 2013 10:31:15 +0000
branchjv
changeset 3125 08d6603c4fe9
parent 3096 a35270f0fad8
child 3128 87750af738dc
permissions -rw-r--r--
New check in ProjectChecker. Check for extensiom method to a private class. This is forbidden and won't compile using stc.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3012
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     1
"
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     3
              All Rights Reserved
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     4
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     5
 This software is furnished under a license and may be used
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     6
 only in accordance with the terms of that license and with the
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     8
 be provided or otherwise made available to, or used by, any
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
     9
 other person.  No title to or ownership of the software is
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    10
 hereby transferred.
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    11
"
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    13
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    14
Object subclass:#ProjectChecker
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    15
	instanceVariableNames:'package packageDef classes methods problems phase'
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    16
	classVariableNames:''
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    17
	poolDictionaries:''
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    18
	category:'System-Support-Projects'
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    19
!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    20
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    21
!ProjectChecker class methodsFor:'documentation'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    22
3012
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    23
copyright
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    24
"
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    25
 COPYRIGHT (c) 2006 by eXept Software AG
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    26
              All Rights Reserved
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    27
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    28
 This software is furnished under a license and may be used
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    29
 only in accordance with the terms of that license and with the
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    31
 be provided or otherwise made available to, or used by, any
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    32
 other person.  No title to or ownership of the software is
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    33
 hereby transferred.
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    34
"
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    35
!
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
    36
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    37
documentation
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    38
"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    39
    A simple project checker that can search whole projects or individual
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    40
    classes or methods for various problems that may cause build problems such
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    41
    as:
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    42
        - inconsistent/messed up project definition class
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    43
        - method code problems
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    44
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    45
    NOTE: Not yet finished. This code is meant as a single central entry for all the
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    46
    source code management tools like SCM Utilities, NewSystemBrowser ets. That code
3019
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
    47
    will be refactored later once this tool prooves itself useful and mature enough.
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    48
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    49
    [author:]
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    50
        Jan Vrany <jan.vrany@fit.cvut.cz>
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    51
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    52
    [instance variables:]
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    53
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    54
    [class variables:]
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    55
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    56
    [see also:]
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    57
        Tools::ProjectCheckerBrowser
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    58
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    59
"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    60
!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    61
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    62
examples
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    63
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    64
    "
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    65
        ProjectChecker check: 'stx:libbasic'
3019
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
    66
        ProjectChecker check: 'stx:libtool'
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
    67
        ProjectChecker check: 'stx:libbasic3'
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    68
    "
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    69
! !
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    70
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    71
!ProjectChecker class methodsFor:'instance creation'!
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    72
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    73
forPackage: packageId
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    74
    ^self new
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    75
        package: packageId;
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    76
        yourself.
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    77
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    78
    "Created: / 25-07-2012 / 18:00:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
    79
!
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
    80
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
    81
new
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
    82
    "return an initialized instance"
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
    83
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
    84
    ^ self basicNew initialize.
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    85
! !
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
    86
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    87
!ProjectChecker class methodsFor:'checking'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    88
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    89
check: package
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    90
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    91
    ^self new check: package
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    92
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    93
    "Created: / 11-01-2012 / 16:46:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    94
! !
68860a7700c2 initial checkin
vrany
parents:
diff changeset
    95
3095
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
    96
!ProjectChecker class methodsFor:'others'!
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
    97
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
    98
version_CVS
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
    99
    ^ '§Header: /cvs/stx/stx/libbasic3/ProjectChecker.st,v 1.12 2012/11/07 16:49:29 cg Exp §'
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
   100
! !
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
   101
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   102
!ProjectChecker methodsFor:'accessing'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   103
3019
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   104
classes: aCollection
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   105
    classes := aCollection.
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   106
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   107
    "Created: / 13-02-2012 / 17:06:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   108
!
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   109
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   110
methods
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   111
    ^ methods
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   112
!
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   113
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   114
methods:something
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   115
    methods := something.
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   116
!
4eb74fb0cae6 Access methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3018
diff changeset
   117
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   118
package
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   119
    ^ package
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   120
!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   121
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   122
package:packageId
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   123
    package := packageId asSymbol.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   124
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   125
    "Modified: / 11-04-2012 / 16:00:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3018
9eb47024eba1 added #problems to ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3012
diff changeset
   126
!
9eb47024eba1 added #problems to ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3012
diff changeset
   127
9eb47024eba1 added #problems to ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3012
diff changeset
   128
problems
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   129
    ^ problems
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   130
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   131
    "Modified: / 23-02-2012 / 15:14:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   132
! !
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   133
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   134
!ProjectChecker methodsFor:'checking'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   135
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   136
check
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   137
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   138
    problems removeAll.
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   139
    packageDef := ProjectDefinition definitionClassForPackage: package.
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   140
    packageDef isNil ifTrue:[
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   141
        self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   142
            (ProjectProblem newProjectDefinitionDoesNotExist package: package).
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   143
        ^self    
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   144
    ].
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   145
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   146
    self
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   147
        checkPackage;
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   148
        checkClasses;
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   149
        checkMethods
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   150
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   151
    "Created: / 11-01-2012 / 16:47:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   152
!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   153
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   154
check: package
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   155
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   156
    self package: package.
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   157
    self check.
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   158
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   159
    "Created: / 11-01-2012 / 16:47:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   160
! !
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   161
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   162
!ProjectChecker methodsFor:'checks-individual'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   163
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   164
checkClassListConsistency
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   165
    "Checks whether all classes listed in #classNamesAndAttributes are present
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   166
    and if all present classes are listed"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   167
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   168
    |classesInImage classesInDescription classesInDescriptionChecked onlyInDescription|
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   169
    "WARNING: Copy/paste of ProjectDefinition>>validateDescription"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   170
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   171
    classesInImage := Smalltalk allClasses select:[:cls | (cls package = self package) and:[cls isPrivate not]].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   172
    "/ classesInDescription := self classes asIdentitySet.
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   173
    classesInDescription := OrderedCollection new.
3092
432aa120d8d2 Fixed #checkClassListConsistency - class order (first common classes, then platform-specific)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3091
diff changeset
   174
    ( (packageDef compiled_classNames_common)
432aa120d8d2 Fixed #checkClassListConsistency - class order (first common classes, then platform-specific)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3091
diff changeset
   175
    , (packageDef compiled_classNamesForPlatform:(OperatingSystem platformName))
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   176
    , (packageDef autoloaded_classNames)) do:[:nm |
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   177
        |cls|
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   178
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   179
        cls := Smalltalk at:nm asSymbol.
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   180
        cls isNil ifTrue:[
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   181
            self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   182
                (ProjectProblem newClassListedButDoesNotExist className: nm)
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   183
        ] ifFalse:[
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   184
            classesInDescription add:cls.
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   185
        ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   186
    ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   187
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   188
    classesInDescriptionChecked := OrderedCollection new.
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   189
    classesInDescription do:[:eachClass |
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   190
        (classesInDescriptionChecked includes: eachClass) ifTrue:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   191
                    self addProblem: 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   192
                        (ProjectProblem newClassListedMultipleTimes
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   193
                            className: eachClass name)
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   194
        ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   195
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   196
        eachClass sharedPoolNames do:[:eachPoolName |
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   197
            |pool|
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   198
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   199
            pool := eachClass nameSpace classNamed:eachPoolName.
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   200
            pool isNil ifTrue:[
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   201
                eachClass nameSpace ~~ Smalltalk ifTrue:[
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   202
                    pool := Smalltalk classNamed:eachPoolName.
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   203
                ]
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   204
            ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   205
            pool isNil ifTrue:[
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   206
                self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   207
                    (ProjectProblem newClassUsesPoolButItDoesNotExist
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   208
                        className: eachClass name;
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   209
                        poolName: eachPoolName).
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   210
            ] ifFalse:[
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   211
                pool isSharedPool ifFalse:[
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   212
                    self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   213
                        (ProjectProblem newClassUsesPoolButItIsNotASharedPool
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   214
                            className: eachClass name;
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   215
                            poolName: eachPoolName).                
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   216
                ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   217
            ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   218
        ].
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   219
3091
afe091fa9820 Fix in #checkClassListConsistency - care about classes with nil superclass (Object/Autoload)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   220
        (eachClass superclass notNil "/Care about classes with nil superclass - Object & Autoload
afe091fa9820 Fix in #checkClassListConsistency - care about classes with nil superclass (Object/Autoload)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3088
diff changeset
   221
            and:[eachClass superclass package == eachClass package]) ifTrue:[
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   222
            (classesInDescriptionChecked includes: eachClass superclass) ifFalse:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   223
                self addProblem:
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   224
                    (ProjectProblem newClassListedBeforeItsSuperclass
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   225
                        className: eachClass name;
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   226
                        superClassName: eachClass superclass name)
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   227
            ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   228
        ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   229
        eachClass sharedPools do:[:eachPool|
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   230
            eachPool package == eachClass package ifTrue:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   231
                (classesInDescriptionChecked includes: eachPool) ifFalse:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   232
                    self addProblem:
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   233
                        (ProjectProblem newClassListedBeforeItsPool
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   234
                            className: eachClass name;
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   235
                            poolName: eachPool name)
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   236
                ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   237
            ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   238
        ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   239
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   240
        classesInDescriptionChecked add: eachClass.
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   241
    ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   242
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   243
    classesInImage ~= classesInDescription ifTrue:[
3065
c60f15e53fce Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3064
diff changeset
   244
        "This is done later in checkClassesListedInProjectDefinition:"
c60f15e53fce Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3064
diff changeset
   245
"/        onlyInImage := (classesInImage reject:[:cls | classesInDescription includes:cls]).
c60f15e53fce Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3064
diff changeset
   246
"/        onlyInImage do:[:cls|
c60f15e53fce Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3064
diff changeset
   247
"/            self addProblem: 
c60f15e53fce Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3064
diff changeset
   248
"/                (ProjectProblem newClassNotListed className: cls name).
c60f15e53fce Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3064
diff changeset
   249
"/        ].
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   250
        onlyInDescription := (classesInDescription reject:[:cls | classesInImage includes:cls]).
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   251
        onlyInDescription do:[:cls|
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   252
            self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   253
                (ProjectProblem newClassListedButDoesNotExist className: cls name)
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   254
        ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   255
    ].
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   256
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   257
    "Created: / 11-01-2012 / 17:14:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3092
432aa120d8d2 Fixed #checkClassListConsistency - class order (first common classes, then platform-specific)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3091
diff changeset
   258
    "Modified: / 31-10-2012 / 17:40:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2718
vrany
parents: 2716
diff changeset
   259
!
vrany
parents: 2716
diff changeset
   260
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   261
checkClassesForMethodsInNoProject:classesToCheck 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   262
    | checker |
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   263
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   264
    checker := [:cls | 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   265
        cls 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   266
            selectorsAndMethodsDo:[:sel :mth | 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   267
                (mth package isNil or:[ mth package == PackageId noProjectID ]) ifTrue:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   268
                    "Sigh, special hack for Expecco"
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   269
                    ((cls name = 'Expecco::AbstractApplication class' and:[ sel = 'flags' ]) or:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   270
                     (cls name = 'Expecco::Browser class' and:[ sel = 'flags' ])]) ifFalse:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   271
                        self addProblem:(ProjectProblem newMethodInNoPackage className:cls name
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   272
                                    selector:sel).
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   273
                    ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   274
                ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   275
            ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   276
    ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   277
    classesToCheck do:[:class | 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   278
        checker value:class theMetaclass.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   279
        checker value:class theNonMetaclass.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   280
    ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   281
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   282
    "Created: / 13-02-2012 / 18:18:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   283
!
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   284
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   285
checkClassesForNonQualifiedSharedPools: classesToCheck 
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   286
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   287
    classesToCheck do:[:cls|
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   288
        cls sharedPoolNames do:[:poolName|
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   289
            (Smalltalk at: poolName asSymbol) isNil ifTrue:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   290
                | ns |
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   291
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   292
                ns := cls nameSpace.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   293
                (ns ~~ Smalltalk and:[(ns at: poolName asSymbol) notNil]) ifTrue:[
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   294
                    self addProblem:
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   295
                        (ProjectProblem newClassUsesPoolButItIsNotASharedPool
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   296
                                className: cls name;
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   297
                                poolName: poolName)
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   298
                ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   299
            ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   300
        ]
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   301
    ].
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   302
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   303
    "Created: / 13-09-2012 / 16:34:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   304
!
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   305
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   306
checkClassesListedInProjectDefinition: classesToCheck
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   307
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   308
    | classNamesListed |
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   309
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   310
    classNamesListed := packageDef classNames.
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   311
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   312
    classesToCheck do:[:class|
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   313
        (class isPrivate not and:[(classNamesListed includes: class name) not]) ifTrue:[
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   314
            self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   315
                (ProjectProblem newClassNotListed className: class name).
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   316
        ]
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   317
    ].
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   318
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   319
    "Created: / 13-02-2012 / 18:18:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   320
!
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   321
2718
vrany
parents: 2716
diff changeset
   322
checkExtensionsListConsistency
vrany
parents: 2716
diff changeset
   323
    "Checks whether all extensions listed in #extensionMethodNames are present
vrany
parents: 2716
diff changeset
   324
    and if all extension methods are listed"
vrany
parents: 2716
diff changeset
   325
vrany
parents: 2716
diff changeset
   326
    | extensionsListed extensionsPresent |
vrany
parents: 2716
diff changeset
   327
vrany
parents: 2716
diff changeset
   328
    extensionsListed := OrderedCollection new.
vrany
parents: 2716
diff changeset
   329
    packageDef extensionMethodNames pairWiseDo:[:cls :sel|
vrany
parents: 2716
diff changeset
   330
        extensionsListed add: (Array with: cls with: sel)
vrany
parents: 2716
diff changeset
   331
    ].
vrany
parents: 2716
diff changeset
   332
    extensionsPresent := OrderedCollection new.
vrany
parents: 2716
diff changeset
   333
    packageDef searchForExtensions do:[:each|
3081
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   334
        "JV@2012-09-07: Do not take Java methods into an account, they
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   335
         should not be listed in extensionMethodNames.
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   336
         They are loaded lazily by JavaClassReader and if listed here,
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   337
         they would cause an error if the package is loaded from source.
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   338
         Sort of a HACK, indeed"
3094
4ec645987e2d - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3092
diff changeset
   339
        each mclass theNonMetaclass isJavaClass ifFalse:[
3081
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   340
            extensionsPresent add: (Array with: each mclass name with: each selector)
712525843aef - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3065
diff changeset
   341
        ].
2718
vrany
parents: 2716
diff changeset
   342
    ].
vrany
parents: 2716
diff changeset
   343
vrany
parents: 2716
diff changeset
   344
    (extensionsListed \ extensionsPresent) do:[:clsAndSel|
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   345
         self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   346
            (ProjectProblem newExtensionMethodListedButDoesNotExist
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   347
                className: clsAndSel first selector: clsAndSel second).                            
2718
vrany
parents: 2716
diff changeset
   348
    ].
vrany
parents: 2716
diff changeset
   349
vrany
parents: 2716
diff changeset
   350
    (extensionsPresent \ extensionsListed) do:[:clsAndSel|
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   351
         self addProblem: 
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   352
            (ProjectProblem newExtensionMethodNotListed
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   353
                className: clsAndSel first selector: clsAndSel second).                            
2718
vrany
parents: 2716
diff changeset
   354
    ].
vrany
parents: 2716
diff changeset
   355
vrany
parents: 2716
diff changeset
   356
    "Created: / 12-01-2012 / 12:31:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3094
4ec645987e2d - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3092
diff changeset
   357
    "Modified: / 18-11-2012 / 19:48:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2718
vrany
parents: 2716
diff changeset
   358
!
vrany
parents: 2716
diff changeset
   359
vrany
parents: 2716
diff changeset
   360
checkExtensionsPrerequisites
vrany
parents: 2716
diff changeset
   361
    "Checks whether packages of all extensions method classes are listed
vrany
parents: 2716
diff changeset
   362
     in package prerequisites"
vrany
parents: 2716
diff changeset
   363
vrany
parents: 2716
diff changeset
   364
    packageDef searchForExtensions do:[:mthd|
vrany
parents: 2716
diff changeset
   365
        (packageDef preRequisites includes: mthd mclass package) ifFalse:[
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   366
"/            self problem: ('%3 required by extension method but not in prerequisites' bindWith: mthd mclass package)
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   367
"/                 description: ('An extension method %1>>%2 extends class in package %3 but the package is not listed in package''s prerequisited. This leads into missing methods and strange bugs when application is compiled and run!!' bindWith: mthd class with: mthd selector with: mthd class package)
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   368
"/                 severity: #error data: mthd
2718
vrany
parents: 2716
diff changeset
   369
         ].
vrany
parents: 2716
diff changeset
   370
    ]
vrany
parents: 2716
diff changeset
   371
vrany
parents: 2716
diff changeset
   372
    "Created: / 12-01-2012 / 12:41:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   373
!
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   374
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   375
checkMethodCodingStyle: method
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   376
    "Checks for various coding style violations such as 'self halt' or
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   377
     improper indentation :-)"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   378
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   379
    "To be implemented"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   380
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   381
    "Created: / 11-04-2012 / 12:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   382
!
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   383
3125
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   384
checkMethodExtensionToAPrivateClass: method
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   385
    "Checks, whether method is an extension to a private class, 
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   386
     which is forbidden"
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   387
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   388
    | class |
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   389
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   390
    class := method mclass.
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   391
    class isPrivate ifFalse:[ ^ self ].
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   392
    method package isNil ifTrue:[ ^ self ]. "/Unpackaged method
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   393
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   394
    class owningClassOrYourself package ~~ method package ifTrue:[
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   395
        self addProblem:
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   396
            (ProjectProblem newExtensionMethodToAPrivateClass method: method).
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   397
    ]
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   398
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   399
    "Created: / 11-03-2013 / 13:00:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   400
!
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   401
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   402
checkMethodSTCCompilability1: method into: problem
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   403
    "Checks is the method can be compiled by STC based on Parser error/warnings"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   404
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   405
    | lang |
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   406
    lang := method programmingLanguage.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   407
    lang isSmalltalk ifFalse:[ ^ self ].
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   408
3096
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   409
    "Do not check methods that were compiled but never changed.
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   410
     Note, that for instvar change, all methods that use/used the
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   411
     instvar are recompiled and this have bytecode"
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   412
    method byteCode isNil ifTrue:[ ^ self ].
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   413
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   414
    lang compilerClass new
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   415
        compile:method source
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   416
        forClass:method mclass
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   417
        inCategory:'others'
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   418
        notifying:problem
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   419
        install:false
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   420
        skipIfSame:false
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   421
        silent:false
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   422
        foldConstants:true
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   423
        ifFail:[ ]
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   424
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   425
    "Created: / 11-04-2012 / 15:31:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3096
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   426
    "Modified: / 06-12-2012 / 15:46:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   427
!
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   428
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   429
checkMethodSTCCompilability2: method into: problem
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   430
    "Checks is the method can be compiled by STC based on selected lint rules"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   431
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   432
    "Not yet implemented"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   433
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   434
    "Created: / 11-04-2012 / 15:54:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   435
!
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   436
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   437
checkMethodSTCCompilability: method
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   438
    "Checks is the method can be compiled by STC (since STC won't compile
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   439
     everything bytecode compiler/jit compiler does, sigh"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   440
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   441
    | issue |
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   442
3064
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   443
    "No need to check the method if the class is autoloaded"
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   444
    (packageDef autoloaded_classNames includes: method mclass theNonMetaclass name) ifTrue:[
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   445
        ^ self
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   446
    ].
5aaeb66c9663 - ProjectProblem
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3046
diff changeset
   447
    
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   448
    issue := ProjectProblem newMethodCompilabilityIssue.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   449
    issue method: method.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   450
    self checkMethodSTCCompilability1: method into: issue.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   451
    self checkMethodSTCCompilability2: method into: issue.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   452
    issue hasIssue ifTrue:[
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   453
        self addProblem: issue
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   454
    ]
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   455
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   456
    "Created: / 11-04-2012 / 12:37:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   457
!
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   458
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   459
checkMethodSourceCode: method
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   460
    "Checks, whether method's source code is both
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   461
     available and parseable. Return true if the code
3085
01e9d0823966 - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3084
diff changeset
   462
     is syntactically correct, false otherwise"
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   463
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   464
    | source |
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   465
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   466
    [    
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   467
        source := method source.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   468
    ] on: Error do:[
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   469
        self addProblem:
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   470
            (ProjectProblem newMethodSourceNotAvailable method: method).
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   471
        ^false
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   472
    ].
3085
01e9d0823966 - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3084
diff changeset
   473
    method programmingLanguage isSmalltalk ifFalse:[ ^ false ].
01e9d0823966 - ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3084
diff changeset
   474
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   475
    [
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   476
        (Parser parseMethod: method source) == #Error ifTrue:[
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   477
            self addProblem:
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   478
                (ProjectProblem newMethodSourceCorrupted method: method).
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   479
            ^false.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   480
        ]
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   481
    ] on: Error do:[
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   482
        self addProblem:
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   483
            (ProjectProblem newMethodSourceCorrupted method: method).
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   484
        ^false.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   485
    ].
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   486
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   487
    ^true
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   488
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   489
    "Created: / 11-04-2012 / 12:29:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   490
! !
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   491
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   492
!ProjectChecker methodsFor:'checks-private'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   493
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   494
checkClasses
3095
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
   495
    |myPackage|
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   496
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   497
    classes notNil ifTrue:[
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   498
        self checkClasses: classes
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   499
    ] ifFalse:[
3095
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
   500
        myPackage := self package.
5843e7139014 Merged with /trunk
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3094
diff changeset
   501
        self checkClasses: (Smalltalk allClasses select:[:cls | (cls package = myPackage)]).
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   502
    ].
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   503
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   504
    "Created: / 11-01-2012 / 16:55:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   505
!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   506
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   507
checkClasses: classesToCheck
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   508
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   509
    self checkClassesListedInProjectDefinition: classesToCheck.
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   510
    self checkClassesForMethodsInNoProject:classesToCheck.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   511
    self checkClassesForNonQualifiedSharedPools:classesToCheck.
3020
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   512
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   513
    "Created: / 13-02-2012 / 18:18:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   514
!
240c299584af Improvements in project checker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3019
diff changeset
   515
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   516
checkMethod: method
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   517
3125
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   518
    self checkMethodExtensionToAPrivateClass: method. 
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   519
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   520
    (self checkMethodSourceCode: method) ifTrue:[
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   521
        "/OK, method's source is OK, perform further checks
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   522
        self checkMethodSTCCompilability: method.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   523
        self checkMethodCodingStyle: method.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   524
    ]
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   525
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   526
    "Created: / 11-04-2012 / 12:27:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3125
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   527
    "Modified: / 11-03-2013 / 13:02:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   528
!
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   529
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   530
checkMethods
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   531
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   532
    methods notEmptyOrNil ifTrue:[
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   533
        self checkMethods: methods.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   534
        ^self.
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   535
    ].
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   536
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   537
    self checkMethods:
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   538
        (Iterator on:[:whatToDo|
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   539
            (classes notNil ifTrue:[classes] ifFalse:[Smalltalk allClasses]) do:[:cls|
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   540
                cls theNonMetaclass withAllPrivateClassesDo:[:each |
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   541
                    each instAndClassSelectorsAndMethodsDo:[:s :m | m package = package ifTrue:[whatToDo value:m]]
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   542
                ].
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   543
            ]
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   544
        ])
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   545
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   546
    "Created: / 11-01-2012 / 16:55:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   547
!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   548
3046
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   549
checkMethods: methodsToCheck
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   550
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   551
    methodsToCheck do:[:m|self checkMethod: m].
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   552
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   553
    "Created: / 11-04-2012 / 12:16:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   554
!
c99775eaf08a Improvements in ProjectChecker - now it checks for corrupted source and uncompilable methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3037
diff changeset
   555
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   556
checkPackage
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   557
2716
9a74597bcd4b Do not use annotations as stc crashes when compiling them
vrany
parents: 2707
diff changeset
   558
    self checkClassListConsistency.
2718
vrany
parents: 2716
diff changeset
   559
    self checkExtensionsListConsistency.
vrany
parents: 2716
diff changeset
   560
    self checkExtensionsPrerequisites.
vrany
parents: 2716
diff changeset
   561
2716
9a74597bcd4b Do not use annotations as stc crashes when compiling them
vrany
parents: 2707
diff changeset
   562
    "add more here..."
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   563
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   564
    "Created: / 11-01-2012 / 16:55:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   565
! !
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   566
3084
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   567
!ProjectChecker methodsFor:'initialization'!
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   568
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   569
initialize
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   570
    "Invoked when a new instance is created."
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   571
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   572
    "/ please change as required (and remove this comment)
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   573
    "/ package := nil.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   574
    "/ packageDef := nil.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   575
    "/ classes := nil.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   576
    "/ methods := nil.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   577
    problems := List new.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   578
    "/ phase := nil.
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   579
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   580
    "/ super initialize.   -- commented since inherited method does nothing
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   581
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   582
    "Modified: / 13-09-2012 / 17:24:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   583
! !
0288b25613a9 Merged ProjectProblem/ProjectChecker from CVS
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3081
diff changeset
   584
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   585
!ProjectChecker methodsFor:'reporting'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   586
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   587
addProblem: aProjectProblem
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   588
    aProjectProblem package: self package.
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   589
    problems isNil ifTrue:[problems := OrderedCollection new].
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   590
    problems add: aProjectProblem
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   591
3023
ed74806df5bc Improvements in ProjectChecker
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3022
diff changeset
   592
    "Created: / 23-02-2012 / 13:10:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2718
vrany
parents: 2716
diff changeset
   593
! !
vrany
parents: 2716
diff changeset
   594
2707
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   595
!ProjectChecker class methodsFor:'documentation'!
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   596
68860a7700c2 initial checkin
vrany
parents:
diff changeset
   597
version
3096
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   598
    ^ '$Id: ProjectChecker.st 1982 2012-12-06 15:48:40Z vranyj1 $'
3012
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   599
!
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   600
3125
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   601
version_HG
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   602
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   603
    ^ '$Changeset: <not expanded> $'
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   604
!
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   605
3012
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   606
version_SVN
3096
a35270f0fad8 ProjectChecker>>checkMethodSTCCompilability1:into: - performance optimization.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3095
diff changeset
   607
    ^ '$Id: ProjectChecker.st 1982 2012-12-06 15:48:40Z vranyj1 $'
3012
4f40b8304d54 Added InvalidChange
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3011
diff changeset
   608
! !
3125
08d6603c4fe9 New check in ProjectChecker.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3096
diff changeset
   609