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