ProjectProblem.st
author Claus Gittinger <cg@exept.de>
Thu, 14 Jan 2016 22:09:34 +0100
changeset 3933 f7cd19b621fb
parent 3932 ff45df4a8398
child 3936 669dd820f259
child 3937 9873e699a554
permissions -rw-r--r--
#FEATURE class: ProjectProblem
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     1
"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
     3
              All Rights Reserved
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     4
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     5
 This software is furnished under a license and may be used
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
24f170d78e3b initial checkin
vrany
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    10
 hereby transferred.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    11
"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libbasic3' }"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    13
3775
472cfbb0e695 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3691
diff changeset
    14
"{ NameSpace: Smalltalk }"
472cfbb0e695 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3691
diff changeset
    15
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    16
Object subclass:#ProjectProblem
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    17
	instanceVariableNames:'package fixes allProblems'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    18
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    19
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    20
	category:'System-Support-Projects'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    21
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    22
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    23
ProjectProblem subclass:#ClassProblem
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    24
	instanceVariableNames:'className'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    25
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    26
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    27
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    28
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    29
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    30
ProjectProblem::ClassProblem subclass:#InconsistentProjectDefinition
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    31
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    32
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    33
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    34
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    35
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    36
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    37
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedBeforeItsPool
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    38
	instanceVariableNames:'poolName'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    39
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    40
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    41
	privateIn:ProjectProblem
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    42
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    43
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    44
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedBeforeItsSuperclass
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    45
	instanceVariableNames:'superClassName'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    46
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    47
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    48
	privateIn:ProjectProblem
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    49
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    50
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    51
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedButDoesNotExist
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    52
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    53
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    54
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    55
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    56
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    57
3806
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    58
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedButInOtherPackage
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    59
	instanceVariableNames:''
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    60
	classVariableNames:''
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    61
	poolDictionaries:''
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    62
	privateIn:ProjectProblem
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    63
!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
    64
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    65
ProjectProblem::InconsistentProjectDefinition subclass:#ClassListedMultipleTimes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    66
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    67
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    68
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    69
	privateIn:ProjectProblem
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    70
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    71
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
    72
ProjectProblem::InconsistentProjectDefinition subclass:#ClassNotListed
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    73
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    74
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    75
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    76
	privateIn:ProjectProblem
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    77
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    78
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
    79
ProjectProblem::InconsistentProjectDefinition subclass:#ClassIsCompiledButSuperclassIsAutoloaded
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    80
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    81
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    82
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    83
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    84
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    85
3588
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
    86
ProjectProblem::InconsistentProjectDefinition subclass:#ClassShouldNotBeInPackage
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    87
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    88
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    89
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    90
	privateIn:ProjectProblem
3588
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
    91
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
    92
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
    93
ProjectProblem::ClassProblem subclass:#ClassUsesPoolProblem
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    94
	instanceVariableNames:'poolName'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    95
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    96
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
    97
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    98
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
    99
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   100
ProjectProblem::ClassUsesPoolProblem subclass:#ClassUsesPoolButItIsNotASharedPool
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   101
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   102
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   103
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   104
	privateIn:ProjectProblem
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   105
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   106
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   107
ProjectProblem::ClassUsesPoolProblem subclass:#ClassUsesPoolInNamespaceButNamespaceIsNotDefined
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   108
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   109
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   110
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   111
	privateIn:ProjectProblem
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   112
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   113
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   114
ProjectProblem::ClassUsesPoolProblem subclass:#ClassUsesPoolButItDoesNotExist
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   115
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   116
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   117
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   118
	privateIn:ProjectProblem
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   119
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   120
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   121
ProjectProblem::ClassProblem subclass:#MethodProblem
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   122
	instanceVariableNames:'selector'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   123
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   124
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   125
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   126
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   127
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   128
ProjectProblem::MethodProblem subclass:#ExtensionMethodListedButInDifferentPackage
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   129
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   130
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   131
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   132
	privateIn:ProjectProblem
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   133
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   134
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   135
ProjectProblem::MethodProblem subclass:#ExtensionMethodNotListed
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   136
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   137
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   138
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   139
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   140
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   141
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   142
ProjectProblem::MethodProblem subclass:#ExtensionMethodsClassDoesNotExist
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   143
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   144
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   145
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   146
	privateIn:ProjectProblem
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   147
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   148
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   149
ProjectProblem::InconsistentProjectDefinition subclass:#ClassIsCompiledButSuperclassProjectDefinitionIsMissing
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   150
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   151
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   152
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   153
	privateIn:ProjectProblem
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   154
!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   155
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   156
ProjectProblem::MethodProblem subclass:#MethodCompilabilityIssue1
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   157
	instanceVariableNames:'errors warnings'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   158
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   159
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   160
	privateIn:ProjectProblem
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   161
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   162
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   163
Object subclass:#Error
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   164
	instanceVariableNames:'message startPosition endPosition'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   165
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   166
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   167
	privateIn:ProjectProblem::MethodCompilabilityIssue1
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   168
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   169
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   170
Object subclass:#Warning
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   171
	instanceVariableNames:'message startPosition endPosition'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   172
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   173
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   174
	privateIn:ProjectProblem::MethodCompilabilityIssue1
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   175
!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   176
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   177
ProjectProblem::MethodProblem subclass:#MethodCompilabilityIssue2
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   178
	instanceVariableNames:'rules errors warnings'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   179
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   180
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   181
	privateIn:ProjectProblem
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   182
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   183
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   184
ProjectProblem::MethodProblem subclass:#MethodInNoPackage
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   185
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   186
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   187
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   188
	privateIn:ProjectProblem
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   189
!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   190
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   191
ProjectProblem::MethodProblem subclass:#MethodListedInOtherPackage
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   192
	instanceVariableNames:'otherProjectDefinitionClasses'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   193
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   194
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   195
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   196
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   197
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   198
ProjectProblem::MethodProblem subclass:#ExtensionMethodListedButDoesNotExist
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   199
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   200
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   201
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   202
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   203
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   204
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   205
ProjectProblem::MethodProblem subclass:#MethodSourceCorrupted
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   206
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   207
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   208
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   209
	privateIn:ProjectProblem
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   210
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   211
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   212
ProjectProblem::MethodProblem subclass:#MethodSourceNotAvailable
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   213
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   214
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   215
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   216
	privateIn:ProjectProblem
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   217
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   218
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   219
ProjectProblem subclass:#ProjectDefinitionDoesNotExist
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   220
	instanceVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   221
	classVariableNames:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   222
	poolDictionaries:''
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   223
	privateIn:ProjectProblem
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   224
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   225
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   226
!ProjectProblem class methodsFor:'documentation'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   227
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   228
copyright
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   229
"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   230
 COPYRIGHT (c) 2006 by eXept Software AG
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   231
              All Rights Reserved
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   232
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   233
 This software is furnished under a license and may be used
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   234
 only in accordance with the terms of that license and with the
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   235
 inclusion of the above copyright notice.   This software may not
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   236
 be provided or otherwise made available to, or used by, any
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   237
 other person.  No title to or ownership of the software is
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   238
 hereby transferred.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   239
"
3430
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   240
!
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   241
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   242
documentation
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   243
"
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   244
    I represent a problem as detect by the project consistency checker,
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   245
    which is optionally executed before committing a package to a repository.
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   246
    Typically, I find inconsistencies, uncompilable methods or missing prerequisites,
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   247
    which might lead to trouble when the package is later to be compiled to a dll via stc.
3431
731fc5928190 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3430
diff changeset
   248
3547
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   249
    [instance variables:]
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   250
        package         - the package in question
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   251
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   252
        fixes           - a collection of possible fixes
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   253
                          (to be shown in the HTML view of the problem browser)
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   254
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   255
        allProblems     - the collection of problems I am part of
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   256
                          (only needed to be able to do the 
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   257
                           'fix other problems of this kind' operation,
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   258
                           for example in the MethodOnNoPackage problem.)
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   259
3431
731fc5928190 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3430
diff changeset
   260
    [see also:]
731fc5928190 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3430
diff changeset
   261
        ProjectChecker ProjectDefinition
3430
aad21e0e26e9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3382
diff changeset
   262
"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   263
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   264
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   265
!ProjectProblem class methodsFor:'instance creation'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   266
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   267
newClassIsCompiledButSuperclassIsAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   268
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   269
    ^ClassIsCompiledButSuperclassIsAutoloaded new
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   270
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   271
    "Created: / 20-09-2013 / 11:18:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   272
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   273
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   274
newClassIsCompiledButSuperclassProjectDefinitionIsMissing
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   275
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   276
    ^ClassIsCompiledButSuperclassProjectDefinitionIsMissing new
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   277
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   278
    "Created: / 05-10-2013 / 12:43:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   279
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   280
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   281
newClassListedBeforeItsPool
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   282
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   283
    ^ClassListedBeforeItsPool new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   284
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   285
    "Created: / 13-09-2012 / 17:13:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   286
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   287
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   288
newClassListedBeforeItsSuperclass
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   289
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   290
    ^ClassListedBeforeItsSuperclass new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   291
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   292
    "Created: / 13-09-2012 / 17:13:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   293
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   294
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   295
newClassListedButDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   296
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   297
    ^ClassListedButDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   298
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   299
    "Created: / 23-02-2012 / 13:18:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   300
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   301
3806
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   302
newClassListedButInOtherPackage
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   303
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   304
    ^ClassListedButInOtherPackage new
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   305
!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   306
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   307
newClassListedMultipleTimes
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   308
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   309
    ^ClassListedMultipleTimes new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   310
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   311
    "Created: / 13-09-2012 / 17:40:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   312
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   313
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   314
newClassNotListed
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   315
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   316
    ^ClassNotListed new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   317
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   318
    "Created: / 23-02-2012 / 13:59:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   319
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   320
3588
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
   321
newClassShouldNotBeInPackage
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
   322
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
   323
    ^ClassShouldNotBeInPackage new
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
   324
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
   325
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   326
newClassUsesPoolButItDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   327
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   328
    ^ClassUsesPoolButItDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   329
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   330
    "Created: / 23-02-2012 / 13:37:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   331
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   332
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   333
newClassUsesPoolButItIsNotASharedPool
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   334
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   335
    ^ClassUsesPoolButItIsNotASharedPool new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   336
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   337
    "Created: / 23-02-2012 / 13:48:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   338
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   339
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   340
newClassUsesPoolInNamespaceButNamespaceIsNotDefined
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   341
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   342
    ^ClassUsesPoolInNamespaceButNamespaceIsNotDefined new
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   343
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   344
    "Created: / 13-09-2012 / 16:40:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   345
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   346
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   347
newExtensionMethodListedButDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   348
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   349
    ^ExtensionMethodListedButDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   350
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   351
    "Created: / 23-02-2012 / 14:26:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   352
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   353
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   354
newExtensionMethodListedButInDifferentPackage
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   355
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   356
    ^ExtensionMethodListedButInDifferentPackage new
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   357
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   358
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   359
newExtensionMethodNotListed
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   360
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   361
    ^ExtensionMethodNotListed new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   362
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   363
    "Created: / 23-02-2012 / 14:27:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   364
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   365
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   366
newExtensionMethodsClassDoesNotExist
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   367
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   368
    ^ExtensionMethodsClassDoesNotExist new
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   369
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
   370
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   371
newMethodCompilabilityIssue1
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   372
    ^ MethodCompilabilityIssue1 new
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   373
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   374
    "Created: / 11-04-2012 / 15:34:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   375
    "Modified: / 29-05-2014 / 15:35:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   376
!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   377
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   378
newMethodCompilabilityIssue2
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   379
    ^ MethodCompilabilityIssue2 new
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   380
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
   381
    "Created: / 29-05-2014 / 15:37:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   382
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   383
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   384
newMethodInNoPackage
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   385
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   386
    ^MethodInNoPackage new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   387
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   388
    "Created: / 23-02-2012 / 14:27:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   389
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   390
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   391
newMethodListedInOtherPackage
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   392
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   393
    ^ MethodListedInOtherPackage new
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   394
!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   395
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   396
newMethodSourceCorrupted
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   397
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   398
    ^MethodSourceCorrupted new
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   399
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   400
    "Created: / 11-04-2012 / 12:35:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   401
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   402
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   403
newMethodSourceNotAvailable
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   404
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   405
    ^MethodSourceNotAvailable new
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   406
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   407
    "Created: / 11-04-2012 / 12:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   408
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   409
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   410
newProjectDefinitionDoesNotExist
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   411
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   412
    ^ProjectDefinitionDoesNotExist new
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   413
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   414
    "Created: / 23-02-2012 / 13:08:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   415
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   416
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   417
!ProjectProblem methodsFor:'accessing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   418
3547
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   419
allProblems:something
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   420
    allProblems := something.
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   421
!
1920ce8dc295 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3488
diff changeset
   422
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   423
countOtherProblemsOfThisKind
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   424
    ^ allProblems 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   425
        count:
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   426
            [:problem | 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   427
                problem class == self class
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   428
                and:[ problem ~~ self
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   429
                and:[ problem alreadyFixed not]]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   430
            ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   431
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   432
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   433
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   434
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   435
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   436
    ^self subclassResponsibility
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   437
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   438
    "Created: / 23-02-2012 / 13:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   439
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   440
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   441
descriptionAndFixes
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   442
    "Return a (HTML) describing the problem plus possible fixes."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   443
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   444
    |descriptionText fixes|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   445
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   446
    (self alreadyFixed) ifTrue:[^ 'Already fixed.'].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   447
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   448
    descriptionText := self description.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   449
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   450
    "/ don't use cached fixes (after a fix, the problem may return an empty fix list)
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   451
    fixes := self fixes.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   452
    fixes isEmpty ifTrue:[ ^ descriptionText ].            
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   453
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   454
    ^String streamContents:[:html |
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   455
        html nextPutAll: descriptionText.
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   456
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   457
        html nextPutAll: '<br><br>'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   458
        fixes size == 1 ifTrue:[
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   459
            html nextPutLine: 'Possible fix:'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   460
        ] ifFalse:[
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   461
            html nextPutLine: 'Possible fixes:'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   462
        ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   463
        html nextPutLine:'<ul>'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   464
        fixes withIndexDo:[:fix :index|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   465
            html
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
   466
                nextPutAll:'<li><a ACTION="doit: self application doFix: ';
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   467
                nextPutAll: index printString;
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   468
                nextPutAll:'">';
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   469
                nextPutAll: fix first;
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   470
                nextPutAll:'</a></li>'.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   471
        ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   472
        html nextPutLine:'</ul>'.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   473
    ].
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   474
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   475
    "Created: / 26-07-2012 / 09:46:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   476
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   477
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   478
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   479
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   480
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   481
    ^self subclassResponsibility
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   482
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   483
    "Created: / 23-02-2012 / 13:03:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   484
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   485
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   486
package
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   487
    ^ package
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   488
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   489
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   490
package:aSymbol
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   491
    package := aSymbol asSymbol.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   492
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   493
    "Modified: / 11-04-2012 / 16:00:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   494
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   495
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   496
packageDefinitionClass
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   497
    ^ProjectDefinition definitionClassForPackage: package
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   498
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   499
    "Created: / 23-02-2012 / 13:26:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   500
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   501
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   502
severity
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   503
    "Return a severity - one of #error, #warning, #info"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   504
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   505
    ^#warning "/by default
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   506
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   507
    "Created: / 23-02-2012 / 13:09:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   508
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   509
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   510
!ProjectProblem methodsFor:'fixing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   511
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   512
allUnfixedProblemsOfMyKindDo:aBlock
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   513
    allProblems do:[:p |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   514
        (p class == self class and:[ p alreadyFixed not]) ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   515
            aBlock value:p
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   516
        ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   517
    ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   518
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   519
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   520
alreadyFixed
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   521
    ^ false
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   522
!
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   523
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   524
doFix: index
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   525
    self initializeFixes.
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   526
    ^ (fixes at: index) second value
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   527
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   528
    "Created: / 26-07-2012 / 10:07:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   529
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   530
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   531
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   532
    "Return (possibly empty) list of description-action pairs that
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   533
     the user may take to fix/investigate the problem.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   534
     Returned value should be list of pairs (label, action block).
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   535
     To be overriden in subclasses.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   536
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   537
     The list should be an array of pairs ( fix label , fix block ).
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   538
     Fix block should return true, if the fix was successful,
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   539
     false otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   540
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   541
     ^#()
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   542
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   543
    "Created: / 26-07-2012 / 09:46:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   544
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   545
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   546
!ProjectProblem methodsFor:'initialization'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   547
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   548
initializeFixes
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   549
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   550
    fixes isNil ifTrue:[
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   551
        fixes := self fixes
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   552
    ].
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   553
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   554
    "/ super initialize.   -- commented since inherited method does nothing
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   555
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   556
    "Created: / 26-07-2012 / 09:54:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   557
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   558
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   559
!ProjectProblem methodsFor:'printing & storing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   560
3382
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   561
displayOn:aGCOrStream
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   562
    |lbl|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   563
3382
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   564
    "/ what a kludge - Dolphin and Squeak mean: printOn: a stream;
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   565
    "/ ST/X (and some old ST80's) mean: draw-yourself on a GC.
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   566
    (aGCOrStream isStream) ifFalse:[
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   567
        ^ super displayOn:aGCOrStream
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   568
    ].
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   569
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
   570
    lbl := self label.
3382
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   571
    self alreadyFixed ifTrue:[
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   572
        aGCOrStream
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   573
            nextPutAll:lbl string;
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   574
            emphasis:#italic;
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   575
            nextPutAll:' (already fixed)'
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   576
    ] ifFalse:[
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   577
        aGCOrStream nextPutAll:lbl.
025420bf2e2f Refactor to implement #displayOn:aGcOrStream instead of #displayString
Stefan Vogel <sv@exept.de>
parents: 3342
diff changeset
   578
    ].
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   579
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   580
    "Created: / 14-02-2012 / 17:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   581
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   582
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   583
printOn:aStream
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   584
    "append a printed representation if the receiver to the argument, aStream"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   585
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   586
    super printOn:aStream.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   587
    aStream nextPut:$(.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   588
    self severity printOn:aStream.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   589
    aStream nextPut:$:; space.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   590
    self label printOn:aStream.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   591
    aStream nextPut:$).
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   592
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   593
    "Modified: / 23-02-2012 / 16:49:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   594
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   595
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   596
!ProjectProblem methodsFor:'utilities-HTML'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   597
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   598
linkToClass: classOrclassName
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   599
    | className |
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   600
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   601
    className := classOrclassName isBehavior
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   602
                    ifTrue: [classOrclassName storeString]
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   603
                    ifFalse:[classOrclassName].
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   604
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   605
    ^'<A INFO="Click to browse class" 
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
   606
ACTION="doit: SystemBrowser default openInClass:%1">
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   607
<CODE>%1</CODE></A>'
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   608
        bindWith: className
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   609
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   610
    "Created: / 23-02-2012 / 13:44:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   611
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   612
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   613
linkToClass: classOrclassName selector: selector
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   614
    ^self linkToClass: classOrclassName selector:  selector omitClassName: false
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   615
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   616
    "Created: / 23-02-2012 / 13:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   617
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   618
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   619
linkToClass: classOrclassName selector: selector omitClassName: omitClassName
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   620
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   621
    | className |
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   622
    className := classOrclassName isBehavior
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   623
                    ifTrue: [classOrclassName name]
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   624
                    ifFalse:[classOrclassName].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   625
    ^omitClassName ifTrue:[
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   626
        '<A INFO="Click to browse method" 
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
   627
ACTION="doit: SystemBrowser default openInClass:%1 selector: %2">
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   628
<CODE>#%3</CODE></A>'
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   629
            bindWith: className
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   630
                with: selector storeString
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   631
                with: selector
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   632
    ] ifFalse:[
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   633
        '<A INFO="Click to browse method" 
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
   634
ACTION="doit: SystemBrowser default openInClass:%1 selector: %2">
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   635
<CODE>%1>>%3</CODE></A>'
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   636
            bindWith: className
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   637
                with: selector storeString
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   638
                with: selector
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   639
    ]
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   640
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   641
    "Created: / 26-07-2012 / 10:26:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   642
!
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   643
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   644
linkToPackage: packageId
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   645
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   646
    ^'<A INFO="Click to browse package" 
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
   647
ACTION="doit: SystemBrowser default openOnPackage:''%1''">
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   648
<CODE>%1</CODE></A>'
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
   649
        bindWith: packageId
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   650
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   651
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   652
!ProjectProblem::ClassProblem methodsFor:'accessing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   653
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   654
className
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   655
    ^ className
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   656
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   657
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   658
className:something
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   659
    className := something.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   660
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   661
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   662
klass
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   663
    "Return the class which is subject of the problem"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   664
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   665
"/    | class |
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   666
"/
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   667
"/    (className endsWith: ' class') ifTrue:[
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   668
"/        class := Smalltalk at: (className copyTo: className size - 6) asSymbol.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   669
"/        class := class theMetaclass.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   670
"/    ] ifFalse:[
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   671
"/        class := Smalltalk at: className  asSymbol
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   672
"/    ].
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   673
"/    ^class
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   674
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
   675
    "/ the above is exactly:
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
   676
    ^ Smalltalk classNamed:className
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   677
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
   678
    "Created: / 26-07-2012 / 10:21:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   679
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
   680
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   681
!ProjectProblem::ClassProblem methodsFor:'fixing'!
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   682
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   683
doUpdateAllProjectDefinitions
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   684
    "full update the project definition class;
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   685
     will do a rescan to add all missing items"
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   686
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   687
    | def |
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   688
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   689
    def := self packageDefinitionClass.
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   690
    def isNil ifTrue:[ ^ false ].
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   691
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   692
    def
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   693
        updateMethodsCodeUsingCompiler:Compiler 
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   694
        ignoreOldDefinition:false.
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   695
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   696
    UserNotification notify: ('Project definitions updated. Do not forget to check in build support files!!').
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   697
    ^true
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   698
! !
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   699
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
   700
!ProjectProblem::InconsistentProjectDefinition methodsFor:'fixing'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   701
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   702
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   703
    "return a list of description-actionBlock pairs for possible fixes"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   704
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   705
    ^Array
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   706
        with: (Array 
3816
9a4228491e96 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3809
diff changeset
   707
                with: ('Full update of the package definition (rescan) of "%1"' bindWith:package)
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
   708
                with: [ self doUpdateAllProjectDefinitions ])
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   709
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   710
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   711
!ProjectProblem::ClassListedBeforeItsPool methodsFor:'accessing'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   712
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   713
poolName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   714
    ^ poolName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   715
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   716
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   717
poolName:something
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   718
    poolName := something.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   719
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   720
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   721
!ProjectProblem::ClassListedBeforeItsPool methodsFor:'accessing-description'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   722
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   723
description
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   724
    "Return a (HTML) describing the problem."
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   725
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   726
    ^
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   727
'Class %2 is listed in project definition (%1) before one of its pools (%3).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   728
<br>Such class will fail to compile (if the package is being stc-compiled)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   729
and load (if the package is being loaded from source).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   730
<br>Make sure class (%3) is listed before (%2).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   731
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   732
'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   733
bindWith: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   734
    with: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   735
    with: (self linkToClass: poolName)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   736
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   737
    "Modified: / 13-09-2012 / 18:29:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   738
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   739
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   740
label
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   741
    "Return the label (possibly instance if a Text) shortly describing the problem"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   742
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   743
    ^'Class %1 listed in project definition "%2" before one of its pools' bindWith: className allBold with:self packageDefinitionClass
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   744
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   745
    "Modified: / 13-09-2012 / 17:36:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   746
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   747
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   748
!ProjectProblem::ClassListedBeforeItsSuperclass methodsFor:'accessing'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   749
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   750
superClassName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   751
    ^ superClassName
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   752
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   753
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   754
superClassName:something
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   755
    superClassName := something.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   756
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   757
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   758
!ProjectProblem::ClassListedBeforeItsSuperclass methodsFor:'accessing-description'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   759
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   760
description
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   761
    "Return a (HTML) describing the problem."
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   762
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   763
    ^
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   764
'Class %2 is listed in project definition (%1) before its superclass %3.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   765
<br>The package can be stc-compiled 
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   766
(because the generated makefile compiles in correct order)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   767
but the class may fail to load from source.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   768
<br>Make sure %3 is listed before %2.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   769
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   770
'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   771
bindWith: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   772
    with: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   773
    with: (self linkToClass: superClassName)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   774
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   775
    "Modified: / 13-09-2012 / 18:29:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   776
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   777
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   778
label
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   779
    "Return the label (possibly instance if a Text) shortly describing the problem"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   780
3691
3d611893f839 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3650
diff changeset
   781
    ^'Class %1 listed in project definition "%2" before its superclass %3' 
3d611893f839 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3650
diff changeset
   782
        bindWith: className allBold 
3d611893f839 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3650
diff changeset
   783
        with:self packageDefinitionClass
3d611893f839 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3650
diff changeset
   784
        with:superClassName
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   785
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   786
    "Modified: / 13-09-2012 / 17:36:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   787
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
   788
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   789
!ProjectProblem::ClassListedButDoesNotExist methodsFor:'accessing'!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   790
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   791
severity
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   792
    "Return a severity - one of #error, #warning, #info"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   793
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   794
    ^#error
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   795
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   796
    "Created: / 11-04-2012 / 12:48:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   797
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   798
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   799
!ProjectProblem::ClassListedButDoesNotExist methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   800
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   801
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   802
    "Return a (HTML) describing the problem."
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   803
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   804
    |msg|
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   805
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   806
    self klass isNil ifTrue:[
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   807
        msg :=
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   808
'Class "<code>%1</code>" is listed in the project definition but not present in the system.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   809
<br>
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   810
You should either create it or remove it from %2.'
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   811
    ] ifFalse:[
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   812
        msg :=
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   813
'Class "<code>%1</code>" is listed in the project definition but is located in another package ("',self klass package,'")
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   814
<br>
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   815
You should either move the class to this package it or remove it from the list in %2.'
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   816
    ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   817
    ^ msg
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   818
        bindWith: className 
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   819
        with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes)
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   820
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   821
    "Modified: / 28-02-2012 / 22:23:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   822
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   823
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   824
label
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   825
    ^'Missing class: ', className allBold
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   826
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   827
    "Modified: / 23-02-2012 / 13:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   828
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   829
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   830
!ProjectProblem::ClassListedButDoesNotExist methodsFor:'fixing'!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   831
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   832
alreadyFixed
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   833
    | cls def |
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   834
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   835
    def := self packageDefinitionClass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   836
    def isNil ifTrue:[ ^ false ].   "/ ouch - can this happen?
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   837
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   838
    (def compiled_classNames includes:className) ifFalse:[^ true].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   839
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   840
    cls := self klass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   841
    cls isNil ifTrue:[^ false].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   842
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   843
    ^ cls package = self package 
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   844
!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   845
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   846
doMoveClassToPackage
3806
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   847
    | cls def |
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   848
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   849
    def := self packageDefinitionClass.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   850
    def isNil ifTrue:[ ^ false ].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   851
    cls := self klass.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   852
    cls isNil ifTrue:[ ^ false ].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   853
    cls package:def package.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   854
    UserNotification notify: ('Do not forget to check in the class into the appropriate repository!!').
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   855
    ^true
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   856
!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   857
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   858
doRemoveClassFromProjectDefinition
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   859
    | def cls |
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   860
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   861
    def := self packageDefinitionClass.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   862
    def isNil ifTrue:[ ^ false ].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   863
    cls := self klass.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   864
    cls isNil ifTrue:[ ^ false ].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   865
    def excludeClasses:{ cls } usingCompiler:nil.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   866
    UserNotification notify: ('Class removed from project. Do not forget to check in build support files!!' bindWith: className).
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   867
    ^true
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   868
!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   869
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   870
fixes
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   871
    "return a list of description-actionBlock pairs for possible fixes"
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   872
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   873
    |allFixes|
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   874
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   875
    allFixes := OrderedCollection new.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   876
    allFixes add:{
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   877
                    'Remove from project definition' .
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   878
                    [ self doRemoveClassFromProjectDefinition ]
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   879
                 }.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   880
    self klass notNil ifTrue:[
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   881
        allFixes add:{
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   882
                        'Move class to package' .
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   883
                        [ self doMoveClassToPackage ]
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   884
                     }.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   885
    ].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   886
    allFixes addAll:super fixes.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   887
    ^ allFixes
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   888
! !
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   889
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   890
!ProjectProblem::ClassListedButInOtherPackage methodsFor:'accessing'!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   891
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   892
severity
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   893
    "Return a severity - one of #error, #warning, #info"
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   894
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   895
    ^#error
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   896
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   897
    "Created: / 11-04-2012 / 12:48:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   898
! !
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   899
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   900
!ProjectProblem::ClassListedButInOtherPackage methodsFor:'accessing-description'!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   901
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   902
description
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   903
    "Return a (HTML) describing the problem."
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   904
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   905
    |msg|
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   906
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   907
    msg :=
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   908
'Class "<code>%1</code>" is listed in the project definition but is assigned to another package (%2).
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   909
<br>
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   910
You should either remove it from the classList %3 or completely assign it to %4.'.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   911
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   912
    ^ msg
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   913
        bindWith: className
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   914
        with:(self klass package)
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   915
        with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   916
        with: package
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   917
!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   918
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   919
label
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   920
    ^'Class %1 is assigned to another package (%2)'
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   921
        bindWith:className allBold
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   922
        with: self klass package
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   923
! !
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   924
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   925
!ProjectProblem::ClassListedButInOtherPackage methodsFor:'fixing'!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   926
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   927
alreadyFixed
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   928
    | cls def |
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   929
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   930
    def := self packageDefinitionClass.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   931
    def isNil ifTrue:[ ^ false ].   "/ ouch - can this happen?
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   932
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   933
    (def allClassNames includes:className) ifFalse:[^ true].
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   934
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   935
    cls := self klass.
3806
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   936
    cls isNil ifTrue:[^ false].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   937
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   938
    ^ cls package = package 
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   939
!
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   940
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   941
doMoveClassToPackage
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   942
    | cls def |
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   943
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   944
    def := self packageDefinitionClass.
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   945
    def isNil ifTrue:[ ^ false ].
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   946
    cls := self klass.
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   947
    cls isNil ifTrue:[ ^ false ].
3806
47cbd61e441e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3792
diff changeset
   948
    cls package:def package.
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   949
    UserNotification notify: ('Do not forget to check in the class into the appropriate repository!!').
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   950
    ^true
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   951
!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   952
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   953
doRemoveClassFromProjectDefinition
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   954
    | def cls |
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   955
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   956
    def := self packageDefinitionClass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   957
    def isNil ifTrue:[ ^ false ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   958
    cls := self klass.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   959
    cls isNil ifTrue:[ ^ false ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   960
    def excludeClasses:{ cls } usingCompiler:nil.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   961
    UserNotification notify: ('Class removed from project. Do not forget to check in build support files!!' bindWith: className).
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   962
    ^true
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   963
!
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   964
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   965
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   966
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
   967
3550
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   968
    |allFixes|
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   969
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   970
    allFixes := OrderedCollection new.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   971
    allFixes add:{
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   972
                    'Remove from project definition' .
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   973
                    [ self doRemoveClassFromProjectDefinition ]
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   974
                 }.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   975
    self klass notNil ifTrue:[
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   976
        allFixes add:{
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   977
                        'Move class to package' .
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   978
                        [ self doMoveClassToPackage ]
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   979
                     }.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   980
    ].
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   981
    allFixes addAll:super fixes.
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   982
    ^ allFixes
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   983
! !
44a44c0c231c class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3549
diff changeset
   984
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
   985
!ProjectProblem::ClassListedMultipleTimes methodsFor:'accessing-description'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   986
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   987
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   988
    "Return a (HTML) describing the problem."
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   989
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   990
    ^
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   991
'A class %1 is listed more than once in %2.
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   992
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   993
Such package will fail to compile, as linker will complain
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
   994
about multiple definitions of the same symbols. Make sure each
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   995
class is listed only once.
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   996
'
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
   997
    bindWith: (self linkToClass: className)
3645
175a54263457 Fixes description in ClassListedMultipleTimes problem.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3588
diff changeset
   998
        with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes)
175a54263457 Fixes description in ClassListedMultipleTimes problem.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3588
diff changeset
   999
175a54263457 Fixes description in ClassListedMultipleTimes problem.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3588
diff changeset
  1000
    "Modified: / 26-11-2014 / 09:25:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1001
!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1002
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1003
label
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1004
    "Return the label (possibly instance if a Text) shortly describing the problem"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1005
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1006
    ^'Class %1 listed multiple times in project definition "%2"' bindWith: className allBold with:self packageDefinitionClass
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1007
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1008
    "Modified: / 23-02-2012 / 13:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1009
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1010
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1011
!ProjectProblem::ClassNotListed methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1012
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1013
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1014
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1015
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1016
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1017
'Class %1 is not listed in project definition (%2).
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1018
<br>The class won''t be compiled and - if some other class dependents on it - the whole package will fail to compile
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1019
at all.'
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1020
bindWith: (self linkToClass: className)
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1021
    with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1022
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1023
    "Modified: / 26-07-2012 / 10:27:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1024
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1025
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1026
label
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1027
    "Return the label (possibly instance if a Text) shortly describing the problem"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1028
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1029
    ^'Class %1 not listed in project definition "%2"' bindWith: className allBold with:self packageDefinitionClass 
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1030
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1031
    "Modified: / 23-02-2012 / 13:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1032
! !
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1033
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1034
!ProjectProblem::ClassNotListed methodsFor:'fixing'!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1035
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1036
alreadyFixed
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1037
    | cls def |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1038
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1039
    def := self packageDefinitionClass.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1040
    def isNil ifTrue:[ ^ false ].   "/ ouch - can this happen?
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1041
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1042
    cls := self klass.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1043
    "/ One may "fix" the problem by actually removing the class. 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1044
    "/ In this case, consider problem as "fixed".
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1045
    cls isNil ifTrue:[^ true].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1046
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1047
    ^ (def compiled_classNames includes:className) 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1048
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1049
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1050
doIncludeAllClassesInProject
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1051
    "Include all unlisted subject classes in project definition. 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1052
     Return false if fix fails, true otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1053
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1054
    |any|
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1055
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1056
    any := false.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1057
    self allUnfixedProblemsOfMyKindDo:[:p |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1058
        any := any | (p doIncludeInProjectAsAutoloaded:false)
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1059
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1060
    ^ any
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1061
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1062
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1063
doIncludeInProject
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1064
    "Include subject class in project definition. Return false if
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1065
     fix fails, true otherwise"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1066
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1067
    ^ self doIncludeInProjectAsAutoloaded:false
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1068
!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1069
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1070
doIncludeInProjectAsAutoloaded
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1071
    "Include subject class in project definition. Return false if
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1072
     fix fails, true otherwise"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1073
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1074
    ^ self doIncludeInProjectAsAutoloaded:true
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1075
!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1076
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1077
doIncludeInProjectAsAutoloaded:asAutoloaded
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1078
    "Include subject class in project definition. Return false if
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1079
     fix fails, true otherwise"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1080
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1081
    | def cls |
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1082
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1083
    def := self packageDefinitionClass.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1084
    def isNil ifTrue:[ ^ false ].
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1085
    cls := self klass.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1086
    cls isNil ifTrue:[ ^ false ].
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1087
    asAutoloaded ifTrue:[
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1088
        def makeClassesAutoloaded:(Array with: cls) usingCompiler: nil.
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1089
    ] ifFalse:[
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1090
        def includeClasses:(Array with: cls) usingCompiler: nil.
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1091
    ].
3144
896359337971 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3143
diff changeset
  1092
    UserNotification notify: ('Class added. Do not forget to check in build support files!!' bindWith: className).
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1093
    ^true
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1094
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1095
    "Created: / 26-07-2012 / 10:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1096
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1097
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1098
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1099
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1100
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1101
    |numOther fixes|
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1102
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1103
    numOther := self countOtherProblemsOfThisKind.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1104
    fixes := OrderedCollection new.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1105
    fixes add:{ 'Add class to project (as compiled)' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1106
                [ self doIncludeInProject ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1107
              }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1108
    numOther > 0 ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1109
        fixes add:{ 'Add all listed classes to project (as compiled)' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1110
                    [ self doIncludeAllClassesInProject ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1111
                  }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1112
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1113
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1114
    fixes 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1115
        add:{ 'Add class to project as autoloaded' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1116
                [ self doIncludeInProjectAsAutoloaded ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1117
            };
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1118
        add:{ 'Full update of the project definitions (rescan)' . 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1119
                [ self doUpdateAllProjectDefinitions ] 
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1120
            }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1121
    ^ fixes
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1122
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1123
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1124
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1125
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1126
!ProjectProblem::ClassIsCompiledButSuperclassIsAutoloaded methodsFor:'accessing'!
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1127
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1128
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1129
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1130
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1131
    ^
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1132
'Class %1 is compiled (i.e., not autoloaded) but its superclass %2 is autoloaded. 
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1133
<p>
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1134
Such class won''t compile with STC because of a missing superclass header file.
3776
078a3769d4df class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3775
diff changeset
  1135
To fix it, either make %1 autoloaded or make %2 compiled.'
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1136
bindWith: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1137
    with: (self linkToClass: (Smalltalk at: className) superclass name)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1138
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1139
    "Modified: / 20-09-2013 / 11:04:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1140
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1141
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1142
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1143
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1144
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1145
    ^ 'Class ', className , ' is compiled but its superclass is autoloaded'
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1146
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1147
    "Modified: / 20-09-2013 / 11:00:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1148
! !
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1149
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1150
!ProjectProblem::ClassIsCompiledButSuperclassIsAutoloaded methodsFor:'fixing'!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1151
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1152
doIncludeInProjectAsAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1153
    "Include subject class in project definition. Return false if
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1154
     fix fails, true otherwise"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1155
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1156
    ^ self doIncludeInProjectAsAutoloaded:true
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1157
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1158
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1159
doIncludeInProjectAsAutoloaded:asAutoloaded
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1160
    "Include subject class in project definition. Return false if
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1161
     fix fails, true otherwise"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1162
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1163
    | def cls |
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1164
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1165
    def := self packageDefinitionClass.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1166
    def isNil ifTrue:[ ^ false ].
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1167
    cls := self klass.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1168
    cls isNil ifTrue:[ ^ false ].
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1169
    asAutoloaded ifTrue:[
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1170
        def makeClassesAutoloaded:(Array with: cls) usingCompiler: nil.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1171
    ] ifFalse:[
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1172
        def includeClasses:(Array with: cls) usingCompiler: nil.
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1173
    ].
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1174
    UserNotification notify: ('Class added. Do not forget to check in build support files!!' bindWith: className).
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1175
    ^true
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1176
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1177
    "Created: / 26-07-2012 / 10:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1178
!
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1179
3777
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1180
doMakeSuperclassCompiled
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1181
    "Include subject's super class in project definition as compiled class. 
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1182
     Return false if fix fails, true otherwise"
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1183
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1184
    | def cls superclass superclassDef|
3777
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1185
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1186
    def := self packageDefinitionClass.
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1187
    def isNil ifTrue:[ ^ false ].
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1188
    cls := self klass.
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1189
    cls isNil ifTrue:[ ^ false ].
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1190
3777
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1191
    superclass := (Smalltalk at: className) superclass.
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1192
    superclassDef := superclass projectDefinitionClass.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1193
    superclassDef isNil ifTrue:[^ false].
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1194
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1195
    superclassDef includeClasses:(Array with: superclass) usingCompiler: nil.
3777
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1196
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1197
    UserNotification notify: ('Superclass added/changed. Do not forget to check in build support files!!' bindWith: className).
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1198
    ^true
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1199
!
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1200
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1201
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1202
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1203
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1204
    |fixes superClass superPackage|
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1205
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1206
    fixes := super fixes asNewOrderedCollection.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1207
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1208
    superClass := (Smalltalk at: className) superclass.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1209
    superPackage := superClass package.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1210
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1211
    superPackage = package ifTrue:[
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1212
        fixes add:
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1213
            { 'Make ',className,' autoloaded in project' . 
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1214
                        [ self doIncludeInProjectAsAutoloaded ]}.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1215
        fixes add:    
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1216
            { 'Make superclass ',(superClass name),' compiled' . 
3777
cfc0d41d6bec class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3776
diff changeset
  1217
                        [ self doMakeSuperclassCompiled ]} .
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1218
    ] ifFalse:[
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1219
        fixes add:
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1220
            { 'Make ',className,' autoloaded in project "',package,'"' . 
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1221
                        [ self doIncludeInProjectAsAutoloaded ]}.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1222
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1223
        fixes add:    
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1224
            { 'Make superclass ',(superClass name),' compiled in "',superPackage,'"'. 
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1225
                        [ self doMakeSuperclassCompiled ]} .
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1226
    ].
3778
f715f1c5deae oops stc problem
Claus Gittinger <cg@exept.de>
parents: 3777
diff changeset
  1227
    ^ fixes
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1228
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1229
3588
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1230
!ProjectProblem::ClassShouldNotBeInPackage methodsFor:'accessing-description'!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1231
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1232
description
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1233
    "Return a (HTML) describing the problem."
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1234
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1235
    ^
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1236
'Class %1 should not be assigned to a Folder-only package (%2).
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1237
Folder-only packages are only meant for organization and to visit subprojects for compilation.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1238
<br>The class won''t be compiled and - if some other class dependents on it - the whole package will fail to compile
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1239
at all.'
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1240
bindWith: (self linkToClass: className)
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1241
    with: (self linkToClass: self packageDefinitionClass class selector: #classNamesAndAttributes omitClassName: true)
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1242
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1243
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1244
label
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1245
    "Return the label (possibly instance if a Text) shortly describing the problem"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1246
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1247
    ^'Class %1 not listed in project definition "%2"' bindWith: className allBold with:self packageDefinitionClass 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1248
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1249
    "Modified: / 23-02-2012 / 13:55:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1250
! !
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1251
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1252
!ProjectProblem::ClassShouldNotBeInPackage methodsFor:'fixing'!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1253
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1254
alreadyFixed
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1255
    | cls def |
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1256
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1257
    def := self packageDefinitionClass.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1258
    def isNil ifTrue:[ ^ false ].   "/ ouch - can this happen?
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1259
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1260
    cls := self klass.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1261
    "/ One may "fix" the problem by actually removing the class. 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1262
    "/ In this case, consider problem as "fixed".
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1263
    cls isNil ifTrue:[^ true].
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1264
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1265
    ^ (def compiled_classNames includes:className) 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1266
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1267
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1268
doIncludeAllClassesInProject
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1269
    "Include all unlisted subject classes in project definition. 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1270
     Return false if fix fails, true otherwise"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1271
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1272
    |any|
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1273
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1274
    any := false.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1275
    self allUnfixedProblemsOfMyKindDo:[:p |
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1276
        any := any | (p doIncludeInProjectAsAutoloaded:false)
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1277
    ].
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1278
    ^ any
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1279
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1280
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1281
doIncludeInProject
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1282
    "Include subject class in project definition. Return false if
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1283
     fix fails, true otherwise"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1284
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1285
    ^ self doIncludeInProjectAsAutoloaded:false
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1286
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1287
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1288
doIncludeInProjectAsAutoloaded
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1289
    "Include subject class in project definition. Return false if
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1290
     fix fails, true otherwise"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1291
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1292
    ^ self doIncludeInProjectAsAutoloaded:true
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1293
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1294
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1295
doIncludeInProjectAsAutoloaded:asAutoloaded
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1296
    "Include subject class in project definition. Return false if
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1297
     fix fails, true otherwise"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1298
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1299
    | def cls |
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1300
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1301
    def := self packageDefinitionClass.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1302
    def isNil ifTrue:[ ^ false ].
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1303
    cls := self klass.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1304
    cls isNil ifTrue:[ ^ false ].
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1305
    asAutoloaded ifTrue:[
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1306
        def makeClassesAutoloaded:(Array with: cls) usingCompiler: nil.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1307
    ] ifFalse:[
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1308
        def includeClasses:(Array with: cls) usingCompiler: nil.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1309
    ].
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1310
    UserNotification notify: ('Class added. Do not forget to check in build support files!!' bindWith: className).
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1311
    ^true
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1312
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1313
    "Created: / 26-07-2012 / 10:41:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1314
!
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1315
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1316
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1317
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1318
3588
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1319
    |numOther fixes|
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1320
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1321
    numOther := self countOtherProblemsOfThisKind.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1322
    fixes := OrderedCollection new.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1323
    fixes add:{ 'Add class to project (as compiled)' . 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1324
                [ self doIncludeInProject ] 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1325
              }.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1326
    numOther > 0 ifTrue:[
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1327
        fixes add:{ 'Add all listed classes to project (as compiled)' . 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1328
                    [ self doIncludeAllClassesInProject ] 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1329
                  }.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1330
    ].
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1331
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1332
    fixes 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1333
        add:{ 'Add class to project as autoloaded' . 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1334
                [ self doIncludeInProjectAsAutoloaded ] 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1335
            };
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1336
        add:{ 'Full update of the project definitions (rescan)' . 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1337
                [ self doUpdateAllProjectDefinitions ] 
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1338
            }.
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1339
    ^ fixes
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1340
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1341
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1342
! !
737942c9b93e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3562
diff changeset
  1343
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1344
!ProjectProblem::ClassUsesPoolProblem methodsFor:'accessing'!
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1345
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1346
poolName
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1347
    ^ poolName
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1348
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1349
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1350
poolName:something
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1351
    poolName := something.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1352
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1353
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1354
!ProjectProblem::ClassUsesPoolButItIsNotASharedPool methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1355
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1356
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1357
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1358
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1359
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1360
'A class %1 uses pool %2 but it does not exist.
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1361
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1362
The pool should be removed from the class definition;
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1363
otherwise the package won''t compile due to a missing class.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1364
    bindWith: (self linkToClass: className)
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1365
        with: (self linkToClass: poolName)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1366
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1367
    "Modified: / 23-02-2012 / 13:48:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1368
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1369
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1370
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1371
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1372
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1373
    ^'Used pool %1 is not a SharedPool' bindWith: className allBold
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1374
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1375
    "Modified: / 23-02-2012 / 13:40:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1376
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1377
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1378
!ProjectProblem::ClassUsesPoolInNamespaceButNamespaceIsNotDefined methodsFor:'accessing-description'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1379
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1380
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1381
    "Return a (HTML) describing the problem."
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1382
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1383
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1384
'A class %1 uses pool %2 from same namespace as the class,
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1385
but the namespace is not explicitly named in the shared pools definition.
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1386
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1387
Due to a bug in stc, such code will fail to compile. A pool definition
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1388
must contain a fully qualified class name including namespace.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1389
    bindWith: (self linkToClass: className)
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1390
        with: (self linkToClass: poolName)
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1391
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1392
    "Modified: / 13-09-2012 / 16:32:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1393
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1394
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1395
label
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1396
    "Return the label (possibly instance if a Text) shortly describing the problem"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1397
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1398
    ^ 'Missing namespace prefix in shared pools definition of %1' bindWith: className allBold
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1399
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1400
    "Modified: / 13-09-2012 / 16:28:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1401
! !
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1402
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1403
!ProjectProblem::ClassUsesPoolButItDoesNotExist methodsFor:'accessing-description'!
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1404
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1405
description
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1406
    "Return a (HTML) describing the problem."
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1407
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1408
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1409
'A class %1 uses pool %2 but it does not exist.
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1410
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1411
The pool should be removed from the class definition;
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1412
otherwise the package won''t compile due to a missing class.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1413
    bindWith: (self linkToClass: className) with: poolName
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1414
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1415
    "Modified: / 13-09-2012 / 16:24:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1416
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1417
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1418
label
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1419
    "Return the label (possibly instance if a Text) shortly describing the problem"
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1420
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1421
    ^'Missing pool: ' , className allBold
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1422
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1423
    "Modified: / 23-02-2012 / 13:34:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1424
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1425
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1426
!ProjectProblem::MethodProblem methodsFor:'accessing'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1427
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1428
className:something selector: sel
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1429
    className := something.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1430
    selector :=  sel
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1431
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1432
    "Created: / 23-02-2012 / 14:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1433
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1434
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1435
method
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1436
    | class |
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1437
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1438
    class := self klass.
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1439
    class isNil ifTrue:[ ^ nil ].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1440
    ^class compiledMethodAt: selector
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1441
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1442
    "Created: / 26-07-2012 / 10:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1443
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1444
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1445
method: method
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1446
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1447
    self className: method mclass name selector: method selector
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1448
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1449
    "Created: / 11-04-2012 / 12:32:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1450
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1451
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1452
selector
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1453
    ^ selector
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1454
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1455
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1456
selector:something
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1457
    selector := something.
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1458
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1459
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1460
!ProjectProblem::MethodProblem methodsFor:'fixes'!
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1461
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1462
doRemoveMethodFromExtensionsList
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1463
    "update the extension method info in the project definition.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1464
     Return false if fix fails, true otherwise"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1465
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1466
    | def mthd |
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1467
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1468
    def := self packageDefinitionClass.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1469
    def isNil ifTrue:[ ^ false ].
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1470
    mthd := self method.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1471
    mthd isNil ifTrue:[ ^ false ].
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1472
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1473
    def excludeMethods:(Array with:mthd) usingCompiler:nil.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1474
    UserNotification notify: ('ProjectDefinition updated. Do not forget to check it in!!').
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1475
    ^true
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1476
!
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1477
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1478
doRemoveNamedMethodFromExtensionsList
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1479
    "update the extension method info in the project definition.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1480
     Return false if fix fails, true otherwise"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1481
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1482
    | def |
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1483
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1484
    def := self packageDefinitionClass.
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1485
    def isNil ifTrue:[ ^ false ].
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1486
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1487
    def excludeMethodFor:selector inClassNamed:className usingCompiler:nil.    
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1488
    UserNotification notify: ('ProjectDefinition updated. Do not forget to check it in!!').
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1489
    ^true
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1490
! !
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1491
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1492
!ProjectProblem::MethodProblem methodsFor:'utilities-HTML'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1493
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1494
linkToMethod
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1495
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1496
    ^self linkToClass: className selector: selector
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1497
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1498
    "Created: / 23-02-2012 / 14:21:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1499
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1500
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1501
!ProjectProblem::ExtensionMethodListedButInDifferentPackage methodsFor:'accessing-description'!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1502
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1503
description
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1504
    "Return a (HTML) describing the problem."
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1505
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1506
    |mthd text|
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1507
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1508
    (mthd := self method) isNil ifTrue:[ ^ 'Method removed.' ].
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1509
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1510
    mthd package = mthd mclass package ifTrue:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1511
        text :=
3650
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1512
'Method %1 is listed as an extension in "%3", but is actually associated to its class''s package "%4" (ie. not as extension).
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1513
<P>Maybe the method used to be an extension but is now a proper part of the class.
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1514
If this is the case, you should remove the method name from the extensions list (%3).
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1515
<P>Otherwise, the method may have lost its package information due to a recompilation in
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1516
a tool which did not known about the original package association.
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1517
Then, you should reassociate the method to the extending package.'
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1518
    ] ifFalse:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1519
        text :=
3650
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1520
'Method %1 is listed as an extension in "%3" but is actually assicualted to a different package: "%4".
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1521
<P>The package will compile but may fail to (auto)load from sources.
55efda927113 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3645
diff changeset
  1522
<P>It is recommended to either remove the method name from the extensions list (%3) 
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1523
or move the method it to the correct package.'
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1524
    ].
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1525
    ^ text
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1526
        bindWith: (self linkToClass: (Smalltalk classNamed: className) selector: selector) "className"        
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1527
            with: selector
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1528
            with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1529
            with: mthd package
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1530
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1531
    "Modified: / 23-02-2012 / 15:18:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1532
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1533
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1534
label
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1535
    "Return the label (possibly instance if a Text) shortly describing the problem"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1536
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1537
    |mthd text|
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1538
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1539
    text := 'Extension method %1 >> %2 listed but in different package'.
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1540
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1541
    (mthd := self method) notNil ifTrue:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1542
        mthd package = mthd mclass package ifTrue:[
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1543
            text := 'Extension method %1 >> %2 listed but in classes package' 
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1544
        ]
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1545
    ].
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1546
    ^ text
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1547
        bindWith: className allBold 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1548
        with: selector allBold
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1549
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1550
    "Modified: / 23-02-2012 / 14:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1551
! !
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1552
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1553
!ProjectProblem::ExtensionMethodListedButInDifferentPackage methodsFor:'fixes'!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1554
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1555
alreadyFixed
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1556
    |mthd|
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1557
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1558
    (self packageDefinitionClass extensionMethods includes:self method) ifFalse:[^ true].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1559
    ^ ((mthd := self method) notNil 
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1560
        and:[ mthd package = package ])
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1561
!
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1562
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1563
doMoveMethodToProject
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1564
    self method package:package
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1565
! !
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1566
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1567
!ProjectProblem::ExtensionMethodListedButInDifferentPackage methodsFor:'fixing'!
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1568
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1569
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1570
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1571
3168
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1572
    |mthd|
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1573
9e97b3ddbc71 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3166
diff changeset
  1574
    (mthd := self method) isNil ifTrue:[ ^ #() ].
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1575
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1576
"/    mthd package = mthd mclass package ifTrue:[
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1577
"/        ^Array
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1578
"/            with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveMethodFromExtensionsList ])    
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1579
"/    ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1580
"/
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1581
    ^Array
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1582
        with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveMethodFromExtensionsList ])    
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1583
        with: (Array with: ('Move method to package "%1"' bindWith:package) with: [ self doMoveMethodToProject ])
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1584
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1585
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1586
! !
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1587
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1588
!ProjectProblem::ExtensionMethodNotListed methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1589
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1590
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1591
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1592
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1593
^'Method %1 is not listed in %2.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1594
<br>It should either be listed in the project definition, or moved to the owning classes package'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1595
    bindWith: (self linkToMethod)
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1596
        with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1597
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1598
    "Modified: / 23-02-2012 / 14:34:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1599
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1600
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1601
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1602
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1603
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1604
    ^'Extension method %1 >> %2 not listed in project definition "%3"' bindWith: className allBold with: selector allBold with:self packageDefinitionClass
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1605
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1606
    "Modified: / 23-02-2012 / 14:22:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1607
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1608
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1609
!ProjectProblem::ExtensionMethodNotListed methodsFor:'fixing'!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1610
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1611
alreadyFixed
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1612
    ^ (self packageDefinitionClass extensionMethods includes:self method)        
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1613
!
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1614
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1615
doMoveToClassesPackage
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1616
    "move the extension method to the owning classes package.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1617
     Return false if fix fails, true otherwise"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1618
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1619
    | cls mthd |
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1620
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1621
    cls := self klass.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1622
    cls isNil ifTrue:[ ^ false ].
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1623
    mthd := cls compiledMethodAt:selector.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1624
    mthd package:(cls package).
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1625
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1626
    UserNotification notify: ('Do not forget to check in the method''s package (or class) ("%1")!!' bindWith:cls package).
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1627
    ^true
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1628
!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1629
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1630
doUpdateExtensionMethodsInProject
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  1631
    "update the extension method info in the project definition.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1632
     Return false if fix fails, true otherwise"
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1633
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1634
    | def mthd |
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1635
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1636
    def := self packageDefinitionClass.
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1637
    def isNil ifTrue:[ ^ false ].
3169
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1638
    mthd := self method.
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1639
    mthd isNil ifTrue:[ ^ false ].
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1640
3a64a6d2cbb9 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3168
diff changeset
  1641
    def includeMethods:(Array with:mthd) usingCompiler:nil.
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1642
    UserNotification notify: ('ProjectDefinition updated. Do not forget to check it in!!').
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1643
    ^true
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1644
!
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1645
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1646
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1647
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1648
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1649
    ^Array
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1650
        with: (Array 
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1651
                    with: ('Add method to package ("%1")' bindWith:package)   
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1652
                    with: [ self doUpdateExtensionMethodsInProject ] )
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1653
        with: (Array 
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1654
                    with: ('Move method to classes package ("%1")' bindWith:self klass package)  
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1655
                    with: [ self doMoveToClassesPackage ] )
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1656
        with: (Array 
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1657
                    with: ('Full update of the package definition (rescan) of "%1"' bindWith:self klass package) 
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1658
                    with: [ self doUpdateAllProjectDefinitions ] )
3143
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1659
! !
82a0484299ce class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 2912
diff changeset
  1660
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1661
!ProjectProblem::ExtensionMethodsClassDoesNotExist methodsFor:'accessing-description'!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1662
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1663
description
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1664
    "Return a (HTML) describing the problem."
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1665
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1666
^'Method %1 >> %2 listed in %3 but class does not exist.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1667
The package will compile but may fail to (auto)load from sources.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1668
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1669
It is recommended to remove the method from the list (%3).'
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1670
    bindWith: className 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1671
        with: selector
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1672
        with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1673
!
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1674
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1675
label
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1676
    "Return the label (possibly instance if a Text) shortly describing the problem"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1677
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1678
    ^'Extension method %1 >> %2 listed but class not existing' 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1679
        bindWith: className allBold 
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1680
        with: selector allBold
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1681
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1682
    "Modified: / 23-02-2012 / 14:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1683
! !
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  1684
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  1685
!ProjectProblem::ExtensionMethodsClassDoesNotExist methodsFor:'fixing'!
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1686
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1687
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1688
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1689
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1690
    ^Array
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1691
        with: (Array with: 'Remove from the extensionMethodNames list' with: [ self doRemoveNamedMethodFromExtensionsList ])    
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1692
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1693
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1694
! !
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  1695
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1696
!ProjectProblem::ClassIsCompiledButSuperclassProjectDefinitionIsMissing methodsFor:'accessing'!
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1697
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1698
description
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1699
    "Return a (HTML) describing the problem."
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1700
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1701
    ^
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1702
'Class %1 is compiled (i.e. not autoloaded) but its superclass''s project 
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1703
definition class is missing.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1704
<BR>(superclass %2 has no project definition for "%3").
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1705
<P>
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1706
Such class won''t compile with STC because the superclass''s package
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1707
will likely be missing.'
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1708
bindWith: (self linkToClass: className)
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1709
    with: (self linkToClass: (Smalltalk at: className) superclass name)
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1710
    with: (self linkToPackage: (Smalltalk at: className) superclass package)
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1711
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1712
    "Modified: / 05-10-2013 / 12:43:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1713
!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1714
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1715
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1716
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  1717
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1718
    |fixes superClass superPackage|
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1719
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1720
    fixes := super fixes asNewOrderedCollection.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1721
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1722
    superClass := (Smalltalk at: className) superclass.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1723
    superPackage := superClass package.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1724
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1725
    fixes add:
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1726
        { 'Create project definition class for project "',superPackage,'"' . 
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1727
                    [ self createPackageDefinitionForSuperclass ]
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  1728
        }.
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1729
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1730
    ^ fixes
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1731
!
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1732
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1733
label
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1734
    "Return the label (possibly instance if a Text) shortly describing the problem"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1735
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1736
    ^ 'Class ', className , ' is compiled but its superclass''s package definition is missing'
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1737
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  1738
    "Modified: / 05-10-2013 / 12:41:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1739
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1740
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1741
!ProjectProblem::ClassIsCompiledButSuperclassProjectDefinitionIsMissing methodsFor:'fixing'!
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1742
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1743
createPackageDefinitionForSuperclass
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1744
    "crate super class's project definition. 
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1745
     Return false if fix fails, true otherwise"
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1746
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1747
    | superclass superclassDef|
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1748
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1749
    superclass := (Smalltalk at: className) superclass.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1750
    superclassDef := ProjectDefinition definitionClassForPackage:superclass package createIfAbsent:true.
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1751
    superclassDef isNil ifTrue:[^ false].
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1752
    ^true
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1753
! !
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1754
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1755
!ProjectProblem::MethodCompilabilityIssue1 methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1756
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1757
severity
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1758
    ^ errors notNil ifTrue:[#error] ifFalse:[#warning]
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1759
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1760
    "Modified: / 11-04-2012 / 15:40:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1761
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1762
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1763
!ProjectProblem::MethodCompilabilityIssue1 methodsFor:'accessing-description'!
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1764
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1765
description
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1766
    "Return a (HTML) describing the problem."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1767
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1768
    | issuePrinter |
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1769
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1770
    issuePrinter := 
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1771
        [:stream :issue|
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1772
            stream nextPutAll:'<li>'.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1773
            issue descriptionOn: stream.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1774
            stream nextPutAll:'</li>'.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1775
            stream cr.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1776
        ].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1777
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1778
    ^ String streamContents:[:s|
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1779
        s
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1780
            nextPutAll: 'The following problems have been found in ';
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1781
            nextPutAll: self linkToMethod;
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1782
            nextPutAll: ':'; cr;
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1783
            nextPutAll: '<ul>'.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1784
        errors ? #() do:[:issue|issuePrinter value: s value: issue].
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1785
        warnings ? #() do:[:issue|issuePrinter value: s value: issue].
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1786
        s
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1787
            nextPutAll: '</ul>'.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1788
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1789
        errors notNil ifTrue:[
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1790
            s nextPutAll:
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  1791
'STC won''t compile such code, therefore you must fix it before committing'
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  1792
        ].
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1793
    ]
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1794
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1795
    "Modified: / 11-04-2012 / 15:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1796
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1797
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1798
label
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1799
    "Return the label (possibly instance if a Text) shortly describing the problem"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1800
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1801
    ^ (errors notNil 
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1802
        ifTrue:[ 'Uncompilable method %1 >> %2' ]
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1803
        ifFalse:[ 'Warnings for method %1 >> %2' ]) bindWith: className allBold with: selector allBold
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1804
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1805
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1806
    "Modified: / 11-04-2012 / 16:04:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1807
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1808
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1809
!ProjectProblem::MethodCompilabilityIssue1 methodsFor:'error handling'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1810
3162
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1811
addError:aMessage from: position to: endPos
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1812
    errors isNil ifTrue:[ errors := OrderedCollection new].
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1813
    errors add: (Error message: aMessage from: position to: endPos)
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1814
!
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1815
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1816
addWarning:aMessage from: position to: endPos
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1817
    warnings isNil ifTrue:[ warnings := OrderedCollection new].
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1818
    warnings add: (Warning message: aMessage from: position to: endPos)
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1819
!
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1820
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1821
correctableError:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1822
    "error notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1823
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1824
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1825
    self error:aMessage position:position to:endPos from:aCompiler.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1826
    ^ false. "/ no correction
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1827
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1828
    "Created: / 30-07-1999 / 18:11:15 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1829
    "Modified: / 02-11-2010 / 12:58:54 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1830
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1831
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1832
correctableSelectorWarning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1833
    "warning notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1834
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1835
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1836
    self warning:aMessage position:position to:endPos from:aCompiler.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1837
    ^ false. "/ no correction
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1838
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1839
    "Modified: / 02-11-2010 / 12:59:04 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1840
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1841
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1842
correctableWarning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1843
    "error notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1844
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1845
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1846
    self warning:aMessage position:position to:endPos from:aCompiler.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1847
    ^ false
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1848
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1849
    "Created: / 02-11-2010 / 13:29:40 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1850
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1851
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1852
error:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1853
    "error notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1854
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1855
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1856
    "Argh!!!!!!!! If its an ignorable error, why signal error!!!!!! Bad design,
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1857
    even worse workaround. Sigh."
3162
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1858
    (thisContext findNextContextWithSelector:#ignorableParseError: or:nil or:nil) notNil
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1859
    "/ thisContext sender sender sender sender selector == #ignorableParseError:
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1860
        ifTrue:[ ^ self ].
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1861
3162
cca29c5533fd class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3160
diff changeset
  1862
    self addError:aMessage from: position to: endPos
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1863
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1864
    "Created: / 30-07-1999 / 18:10:30 / cg"
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1865
    "Modified: / 10-09-2012 / 11:32:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1866
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1867
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1868
unusedVariableWarning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1869
    "warning notification during fileIn.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1870
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1871
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1872
    ^ self warning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1873
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1874
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1875
warning:aMessage position:position to:endPos from:aCompiler
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1876
    "warning notification during fileIn - ignore it.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1877
     This is sent by the compiler/evaluator if it detects errors."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1878
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  1879
"/    No, do not show warnings now, too many false positives
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1880
"/    warnings isNil ifTrue:[ warnings := OrderedCollection new].
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1881
"/    warnings   add: (Warning message: aMessage from: position to: endPos).
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1882
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1883
    "Created: / 30-07-1999 / 18:11:05 / cg"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1884
    "Modified (comment): / 12-04-2012 / 18:19:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1885
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1886
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1887
!ProjectProblem::MethodCompilabilityIssue1 methodsFor:'queries'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1888
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1889
hasIssue
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1890
    ^ (errors ? warnings) notNil
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1891
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1892
    "Created: / 11-04-2012 / 15:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1893
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1894
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1895
!ProjectProblem::MethodCompilabilityIssue1::Error class methodsFor:'instance creation'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1896
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1897
message: message from: startPosition to: endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1898
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1899
    ^self new
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1900
        message: message;
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1901
        startPosition: startPosition;
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1902
        endPosition: endPosition;
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1903
        yourself.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1904
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1905
    "Created: / 11-04-2012 / 15:38:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1906
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1907
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1908
!ProjectProblem::MethodCompilabilityIssue1::Error methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1909
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1910
endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1911
    ^ endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1912
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1913
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1914
endPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1915
    endPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1916
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1917
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1918
message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1919
    ^ message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1920
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1921
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1922
message:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1923
    message := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1924
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1925
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1926
startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1927
    ^ startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1928
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1929
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1930
startPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1931
    startPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1932
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1933
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1934
!ProjectProblem::MethodCompilabilityIssue1::Error methodsFor:'accessing-description'!
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1935
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1936
descriptionOn: stream
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1937
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1938
    stream nextPutAll: message; space; nextPutAll:'(error)'
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1939
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1940
    "Created: / 11-04-2012 / 15:52:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1941
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1942
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1943
!ProjectProblem::MethodCompilabilityIssue1::Warning class methodsFor:'instance creation'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1944
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1945
message: message from: startPosition to: endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1946
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1947
    ^self new
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1948
        message: message;
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1949
        startPosition: startPosition;
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1950
        endPosition: endPosition;
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  1951
        yourself.
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1952
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1953
    "Created: / 11-04-2012 / 15:38:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1954
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1955
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1956
!ProjectProblem::MethodCompilabilityIssue1::Warning methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1957
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1958
endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1959
    ^ endPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1960
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1961
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1962
endPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1963
    endPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1964
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1965
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1966
message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1967
    ^ message
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1968
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1969
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1970
message:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1971
    message := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1972
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1973
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1974
startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1975
    ^ startPosition
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1976
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1977
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1978
startPosition:something
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1979
    startPosition := something.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1980
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  1981
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1982
!ProjectProblem::MethodCompilabilityIssue1::Warning methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1983
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1984
descriptionOn: stream
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1985
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1986
    stream nextPutAll: message; space"/; nextPutAll:'(warning)'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  1987
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1988
    "Created: / 11-04-2012 / 15:52:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1989
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  1990
3562
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1991
!ProjectProblem::MethodCompilabilityIssue2 methodsFor:'accessing'!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1992
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1993
severity
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1994
    | severities |
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1995
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1996
    severities := rules collect:[ :rule | rule severity ].
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1997
    (severities includes: #error) ifTrue:[ ^ #error ].
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1998
    ^ #warning
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  1999
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2000
    "Modified: / 29-05-2014 / 15:41:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2001
! !
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2002
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2003
!ProjectProblem::MethodCompilabilityIssue2 methodsFor:'accessing-description'!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2004
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2005
description
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2006
    "Return a (HTML) describing the problem."
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2007
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2008
    | issuePrinter |
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2009
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2010
    issuePrinter := 
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2011
        [:stream :rule|
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2012
            stream nextPutAll:'<li>'.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2013
            stream nextPutAll: rule name.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2014
            stream nextPutAll: '<br></br>'.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2015
            stream nextPutAll:'<p>'.            
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2016
            stream nextPutAll: rule rationale.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2017
            stream nextPutAll:'</p>'.            
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2018
            stream nextPutAll:'</li>'.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2019
            stream cr.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2020
        ].
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2021
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2022
    ^ String streamContents:[:s|
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2023
        s
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2024
            nextPutAll: 'The following problems have been found in ';
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2025
            nextPutAll: self linkToMethod;
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2026
            nextPutAll: ':'; cr;
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2027
            nextPutAll: '<ul>'.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2028
        rules ? #() do:[:rule|issuePrinter value: s value: rule].
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2029
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2030
        s
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2031
            nextPutAll: '</ul>'.
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2032
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2033
        errors notNil ifTrue:[
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2034
            s nextPutAll:
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2035
'STC won''t compile such code, therefore you must fix it before committing'
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2036
        ].
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2037
    ]
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2038
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2039
    "Modified: / 29-05-2014 / 16:26:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2040
!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2041
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2042
label
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2043
    "Return the label (possibly instance if a Text) shortly describing the problem"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2044
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2045
    ^ ((self severity == #error) 
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2046
        ifTrue:[ 'Uncompilable method %1 >> %2' ]
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2047
        ifFalse:[ 'Warnings for method %1 >> %2' ]) bindWith: className allBold with: selector allBold
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2048
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2049
    "Modified: / 29-05-2014 / 15:39:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2050
! !
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2051
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2052
!ProjectProblem::MethodCompilabilityIssue2 methodsFor:'adding & removing'!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2053
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2054
addViolation: anRBLintRule
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2055
    rules isNil ifTrue:[ rules := OrderedCollection new ].
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2056
    rules add: anRBLintRule
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2057
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2058
    "Created: / 29-05-2014 / 15:42:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2059
! !
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2060
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2061
!ProjectProblem::MethodCompilabilityIssue2 methodsFor:'queries'!
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2062
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2063
hasIssue
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2064
    ^ rules notEmptyOrNil
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2065
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2066
    "Created: / 11-04-2012 / 15:43:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2067
    "Modified: / 29-05-2014 / 15:41:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2068
! !
a16bc9e17d35 Added lint-based check for stc bugs to ProjectChecker (#checkMethodSTCCompilability2:)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 3550
diff changeset
  2069
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2070
!ProjectProblem::MethodInNoPackage methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2071
3217
bdb39c2074e7 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3204
diff changeset
  2072
alreadyFixed
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  2073
    | m |
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  2074
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  2075
    "/ One may "fix" the problem by actually removing the method. 
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2076
    "/ In this case, also consider problem as "fixed".
3933
f7cd19b621fb #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3932
diff changeset
  2077
    m := self method.
f7cd19b621fb #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3932
diff changeset
  2078
    ^ m isNil or:[m package ~= PackageId noProjectID]
3449
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  2079
f56d3fc6a39d merged in jv's changes
Claus Gittinger <cg@exept.de>
parents: 3431
diff changeset
  2080
    "Modified (format): / 19-12-2013 / 15:38:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3217
bdb39c2074e7 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3204
diff changeset
  2081
!
bdb39c2074e7 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3204
diff changeset
  2082
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2083
description
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2084
    "Return a (HTML) describing the problem."
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2085
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2086
    ^
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2087
'Method %1 does not belong to any package. Such methods
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2088
are not committed and will be lost when you restart/recompile.
3342
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  2089
Especially, it will not be included when you generate a compiled class library.
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  2090
However, it will be kept in the changes file, so it is not completely lost.
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  2091
The method should be moved to some package, %2 maybe?'
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2092
    bindWith: (self linkToMethod)
3342
c8ff65be73c0 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3225
diff changeset
  2093
        with: package
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2094
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2095
    "Modified: / 23-02-2012 / 14:21:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2096
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2097
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2098
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2099
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2100
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2101
    ^'Unpackaged method %1 >> %2' bindWith: className allBold with: selector allBold
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2102
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2103
    "Modified: / 23-02-2012 / 14:19:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2104
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2105
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2106
!ProjectProblem::MethodInNoPackage methodsFor:'fixing'!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2107
3932
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2108
doMoveAllListedMethodsToClassPackage
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2109
    "move all listed methods to their corresponding classes package.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2110
     Return false if fix fails, true otherwise"
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2111
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2112
    | mth cls any |
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2113
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2114
    any := false.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2115
    self allUnfixedProblemsOfMyKindDo:[:p |
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2116
        cls := p klass.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2117
        cls notNil ifTrue:[
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2118
            mth := p method.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2119
            mth notNil ifTrue:[
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2120
                cls package ~= PackageId noProjectID ifTrue:[
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2121
                    mth package:(cls package).
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2122
                    any := true.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2123
                ]
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2124
            ]
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2125
        ]
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2126
    ].
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2127
    ^ any
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2128
!
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2129
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2130
doMoveAllListedMethodsToPackage
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2131
    "move all listed methods to the package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2132
     Return false if fix fails, true otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2133
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2134
    | m any |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2135
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2136
    any := false.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2137
    self allUnfixedProblemsOfMyKindDo:[:p |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2138
        m := p method.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2139
        m notNil ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2140
            m package: package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2141
            any := true.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2142
        ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2143
    ].
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2144
    ^ any
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2145
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2146
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2147
doMoveMethodToPackage
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2148
    "move the method to the package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2149
     Return false if fix fails, true otherwise"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2150
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2151
    | m |
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2152
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2153
    m := self method.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2154
    m notNil ifTrue:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2155
        m package: package.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2156
        ^ true
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2157
    ] ifFalse:[
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2158
        ^ false
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2159
    ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2160
!
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2161
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2162
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2163
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2164
3932
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2165
    |ops|
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2166
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2167
    ops := OrderedCollection new.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2168
    
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2169
    ops add:{                        
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  2170
            ('Move method to package "%1"' bindWith:package) .
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2171
            [ self doMoveMethodToPackage ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2172
        }.
3932
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2173
    
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2174
    self countOtherProblemsOfThisKind > 0 ifTrue:[
3932
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2175
        ops add:{
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2176
                ('Move all listed unpackaged methods to their class package') .
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2177
                [ self doMoveAllListedMethodsToClassPackage ]
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2178
            }.
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2179
            
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2180
        ops add:{
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  2181
                ('Move all listed unpackaged methods to package "%1"' bindWith:package) .
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2182
                [ self doMoveAllListedMethodsToPackage ]
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2183
            }.
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2184
    ].
3932
ff45df4a8398 #FEATURE
Claus Gittinger <cg@exept.de>
parents: 3894
diff changeset
  2185
    ^ ops
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2186
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2187
    "Created: / 26-07-2012 / 09:53:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2188
! !
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2189
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2190
!ProjectProblem::MethodListedInOtherPackage methodsFor:'accessing'!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2191
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2192
otherProjectDefinitionClasses
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2193
    ^ otherProjectDefinitionClasses
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2194
!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2195
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2196
otherProjectDefinitionClasses:aCollectionOfClasses
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2197
    otherProjectDefinitionClasses := aCollectionOfClasses.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2198
! !
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2199
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2200
!ProjectProblem::MethodListedInOtherPackage methodsFor:'accessing-description'!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2201
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2202
alreadyFixed
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2203
    | m |
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2204
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2205
    "/ One may "fix" the problem by actually removing the method. 
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2206
    "/ In this case, also consider problem as "fixed".
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2207
    m :=  self method.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2208
    ^ m isNil 
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2209
        or:[otherProjectDefinitionClasses isEmptyOrNil
3809
4e3d2e37a7d3 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3806
diff changeset
  2210
        or:[(otherProjectDefinitionClasses contains:[:cls | cls extensionMethods includes:m]) not]]
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2211
!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2212
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2213
description
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2214
    "Return a (HTML) describing the problem."
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2215
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2216
    ^
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2217
'Method "%1" is also listed in "%2". 
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2218
The method may only be present in exactly one package, "%3" perhaps?'
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2219
    bindWith: (self linkToMethod)
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2220
        with: (otherProjectDefinitionClasses size == 1
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2221
                ifTrue:[ self linkToPackage: (otherProjectDefinitionClasses first package) ]
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2222
                ifFalse:[ '%1 other packages' bindWith:otherProjectDefinitionClasses size ])
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2223
        with: (self linkToPackage:package)
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2224
!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2225
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2226
label
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2227
    "Return the label (possibly instance if a Text) shortly describing the problem"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2228
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2229
    ^'Method %1 >> %2 also present in other pacakge(s)' bindWith: className allBold with: selector allBold
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2230
! !
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2231
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2232
!ProjectProblem::MethodListedInOtherPackage methodsFor:'fixing'!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2233
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2234
doRemoveMethodFromOtherPackages
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2235
    "remove the method to the other package(s).
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2236
     Return false if fix fails, true otherwise"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2237
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2238
    | m |
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2239
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2240
    m := self method.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2241
    m isNil ifTrue:[^ false].
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2242
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2243
    m package: package.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2244
    otherProjectDefinitionClasses do:[:each |
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2245
        each excludeMethods:(Array with:m) usingCompiler:nil.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2246
    ].
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2247
    UserNotification notify: ('Other ProjectDefinition updated. Do not forget to check that one in also!!').
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2248
    ^ true.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2249
!
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2250
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2251
fixes
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2252
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2253
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2254
    |removeThisFromOtherPackages|
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2255
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2256
    removeThisFromOtherPackages :=
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2257
        {
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2258
            ('Remove method from other package(s)') .
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2259
            [ self doRemoveMethodFromOtherPackages ]
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2260
        }.
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2261
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2262
    ^ {
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2263
        removeThisFromOtherPackages
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2264
      }
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2265
! !
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2266
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2267
!ProjectProblem::ExtensionMethodListedButDoesNotExist methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2268
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2269
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2270
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2271
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  2272
^'Method %1 listed in %3 but does not exist.
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  2273
The package will compile but may fail to (auto)load from sources.
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2274
3166
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  2275
It is recommended to remove the method from the list (%3).'
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  2276
    bindWith: (self linkToClass: (Smalltalk classNamed: className) selector: selector) "className"        
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  2277
        with: selector
42bf0adbded2 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3162
diff changeset
  2278
        with: (self linkToClass: self packageDefinitionClass class selector: #extensionMethodNames)
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2279
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2280
    "Modified: / 23-02-2012 / 15:18:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2281
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2282
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2283
label
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2284
    "Return the label (possibly instance if a Text) shortly describing the problem"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2285
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2286
    ^'Extension method %1 >> %2 listed but not existing' bindWith: className allBold with: selector allBold
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2287
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2288
    "Modified: / 23-02-2012 / 14:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2289
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2290
3549
4f2f1be5b4bc class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3547
diff changeset
  2291
!ProjectProblem::ExtensionMethodListedButDoesNotExist methodsFor:'fixing'!
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  2292
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  2293
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2294
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2295
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2296
    ^ {
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2297
        { 
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2298
          'Remove from the extensionMethodNames list' .
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2299
          [ self doRemoveNamedMethodFromExtensionsList ]
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2300
        }
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2301
    }
3204
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  2302
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  2303
    "Created: / 26-07-2012 / 10:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  2304
! !
96c6fe5845bf class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3200
diff changeset
  2305
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2306
!ProjectProblem::MethodSourceCorrupted methodsFor:'accessing'!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2307
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2308
severity
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2309
    "Return a severity - one of #error, #warning, #info"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2310
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2311
    ^#error
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2312
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2313
    "Created: / 11-04-2012 / 12:47:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2314
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2315
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2316
!ProjectProblem::MethodSourceCorrupted methodsFor:'accessing-description'!
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2317
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2318
description
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2319
    "Return a (HTML) describing the problem."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2320
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2321
    ^
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2322
'Source code for %1 is <b>corrupted</b>. This is likely because
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2323
the binary class version does not match the source file. This may happen,
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2324
for instance, if you compile a class library and then edit the ".st" file,
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2325
or you have checked out from the SCM into the file system over the existing source code,
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2326
from which the class was compiled.
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2327
<P>Be very careful with checkin or fileOut (do NOT save over any existing file), 
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2328
and check the results for currupt source code,
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2329
<P>Sometimes, you can fix this by disabling the "Use Local Source" in the SCM manager''s settings
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2330
dialog. If that does not help, it is recommended to leave ST/X, restore the old source or compile a system
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2331
based on the current source, restart ST/X, reapply the changes via the Changebrowser and commit then.'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  2332
    bindWith: (self linkToMethod)
3488
9a9a7d10aff1 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3449
diff changeset
  2333
        with: package
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2334
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2335
    "Modified: / 11-04-2012 / 12:47:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2336
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2337
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2338
label
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2339
    "Return the label (possibly instance if a Text) shortly describing the problem"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2340
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2341
    ^ 'Corrupted source code for %1 >> %2' bindWith: className allBold with: selector allBold
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2342
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2343
    "Modified: / 11-04-2012 / 12:42:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2344
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2345
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2346
!ProjectProblem::MethodSourceNotAvailable methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2347
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2348
severity
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2349
    "Return a severity - one of #error, #warning, #info"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2350
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2351
    ^#error
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2352
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2353
    "Created: / 11-04-2012 / 12:47:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2354
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2355
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2356
!ProjectProblem::MethodSourceNotAvailable methodsFor:'accessing-description'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2357
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2358
description
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2359
    "Return a (HTML) describing the problem."
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2360
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2361
    ^
3147
115c192388ea class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3144
diff changeset
  2362
'Source code for %1 is not available. Check your package path
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2363
and/or source code management settings.
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2364
'
2911
fec187eef58d - new classes for pool and class ordering problems
vrany
parents: 2855
diff changeset
  2365
    bindWith: (self linkToMethod)
3779
a642b81f46d4 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3778
diff changeset
  2366
        with: package
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2367
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2368
    "Modified: / 11-04-2012 / 12:44:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2369
!
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2370
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2371
label
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2372
    "Return the label (possibly instance if a Text) shortly describing the problem"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2373
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2374
    ^ 'Unavailable source code for %1 >> %2' bindWith: className allBold with: selector allBold
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2375
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2376
    "Modified: / 11-04-2012 / 12:41:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2377
! !
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2378
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2379
!ProjectProblem::ProjectDefinitionDoesNotExist methodsFor:'accessing'!
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2380
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2381
severity
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2382
    "Return a severity - one of #error, #warning, #info"
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2383
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2384
    ^#error
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2385
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2386
    "Created: / 11-04-2012 / 12:48:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2387
! !
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2388
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2389
!ProjectProblem::ProjectDefinitionDoesNotExist methodsFor:'accessing-description'!
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2390
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2391
description
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2392
    "Return a (HTML) describing the problem."
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2393
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2394
    package = 'stx' ifTrue:[
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2395
        ^
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  2396
'Move your code to another package.
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2397
<br>The package name "stx" is reserveed for exept''s ST/X development.'
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2398
    ].
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2399
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2400
    ^
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2401
'A project definition class for package "%1" does not exist.
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2402
<br>Project definition classes keep the meta information of a package,
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2403
such as contents and build parameters.
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2404
You <b>must</b> create it, otherwise package management won''t work,
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2405
and the package cannot be compiled to a binary dll.'
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2406
    bindWith: package
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2407
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2408
    "Modified: / 23-02-2012 / 13:29:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2409
!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2410
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2411
label
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2412
    ^'Project definition class for "%1" does not exist' bindWith: package
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2413
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2414
    "Modified: / 23-02-2012 / 13:21:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2415
! !
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2416
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2417
!ProjectProblem::ProjectDefinitionDoesNotExist methodsFor:'fixing'!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2418
3225
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2419
alreadyFixed
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2420
    ^ (ProjectDefinition definitionClassForPackage:package) notNil        
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2421
!
33d97afaea88 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3217
diff changeset
  2422
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2423
doCreateAs:whatType
3198
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2424
    |prjDef|
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2425
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2426
    prjDef := ProjectDefinition
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2427
        definitionClassForPackage:package
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2428
        projectType: whatType
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2429
        createIfAbsent:true.
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2430
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2431
    prjDef
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2432
        updateMethodsCodeUsingCompiler:Compiler 
74cd57db7717 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
  2433
        ignoreOldDefinition:true
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2434
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2435
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2436
doCreateAsGUIApplication
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2437
    self doCreateAs:ProjectDefinition guiApplicationType
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2438
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2439
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2440
doCreateAsLibrary
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2441
    self doCreateAs:ProjectDefinition libraryType
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2442
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2443
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2444
doCreateAsNonGUIApplication
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2445
    self doCreateAs:ProjectDefinition nonGuiApplicationType
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2446
!
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2447
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2448
fixes
3790
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2449
    "return a list of description-actionBlock pairs for possible fixes"
51aee735f8e6 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3779
diff changeset
  2450
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2451
    package = 'stx' ifTrue:[ ^ #() ].
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2452
3154
72ca7e81fbbf *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3152
diff changeset
  2453
    ^ Array
3792
0aedc1a9ba73 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3790
diff changeset
  2454
        with: (Array with: 'Create as Library'             with: [ self doCreateAsLibrary ]               )
0aedc1a9ba73 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3790
diff changeset
  2455
        with: (Array with: 'Create as GUI Application'     with: [ self doCreateAsGUIApplication ]        )
0aedc1a9ba73 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3790
diff changeset
  2456
        with: (Array with: 'Create as non-GUI Application' with: [ self doCreateAsNonGUIApplication ]     )
3152
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2457
! !
1bef57aa5c95 class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3147
diff changeset
  2458
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2459
!ProjectProblem class methodsFor:'documentation'!
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2460
2912
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  2461
version
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  2462
    ^ '$Header$'
2912
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  2463
!
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  2464
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  2465
version_CVS
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  2466
    ^ '$Header$'
2912
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  2467
!
bae30e419d21 fixes in descriptions
vrany
parents: 2911
diff changeset
  2468
2854
b92e9c1273b9 updates
vrany
parents: 2798
diff changeset
  2469
version_SVN
3894
5ace68ac540e class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3816
diff changeset
  2470
    ^ '$Id$'
2798
24f170d78e3b initial checkin
vrany
parents:
diff changeset
  2471
! !
3160
67e03d5fd83a class: ProjectProblem
Claus Gittinger <cg@exept.de>
parents: 3154
diff changeset
  2472