Tools__CompilerWarningToDoListEntry.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Nov 2006 22:32:32 +0100
changeset 7529 ad533058030a
parent 7511 02f65c9a5d2e
child 7645 6c31c0308af0
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libtool' }"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Tools }"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
ToDoListEntry subclass:#CompilerWarningToDoListEntry
7511
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
     6
	instanceVariableNames:'checkAction className class selector position equalityParameter'
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'Interface-Smalltalk-ToDo'
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
7529
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    13
!CompilerWarningToDoListEntry class methodsFor:'instance creation'!
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    14
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    15
new
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    16
    ^ self basicNew initialize
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    17
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    18
    "Created: / 20-11-2006 / 14:58:52 / cg"
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    19
! !
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
    20
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!CompilerWarningToDoListEntry methodsFor:'accessing'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
    ^ className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
    "Created: / 22-10-2006 / 01:39:43 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
className:classNameArg selector:selectorArg checkAction:checkActionArg equalityParameter:equalityParameterArg 
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
    checkAction := checkActionArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
    className := classNameArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
    selector := selectorArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
    equalityParameter := equalityParameterArg.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
    "Created: / 22-10-2006 / 01:38:26 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
equalityParameter
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
    ^ equalityParameter
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
    "Created: / 21-10-2006 / 21:57:01 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
methodOrClassName
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
    selector isNil ifTrue:[^ className ].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
    ^ className,' ',selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
    "Created: / 22-10-2006 / 11:05:21 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
7511
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    51
position
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    52
    ^ position
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    53
!
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    54
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    55
position:something
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    56
    position := something.
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    57
!
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
    58
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
problemClass
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    ^ Smalltalk classNamed:className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    "Created: / 21-10-2006 / 21:50:38 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    "Modified: / 22-10-2006 / 01:39:39 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
problemClassName
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    ^ className
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
    "Created: / 22-10-2006 / 01:40:11 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
problemMethod
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
    |cls|
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
    selector isNil ifTrue:[^ nil].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    cls := self problemClass.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
    cls isNil ifTrue:[^ nil].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    ^ cls compiledMethodAt:selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    "Created: / 22-10-2006 / 02:42:39 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
problemSelector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    ^ selector
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "Created: / 21-10-2006 / 21:50:58 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
update:something with:aParameter from:changedObject
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
    self revalidate.
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    "Created: / 21-10-2006 / 21:28:35 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
!CompilerWarningToDoListEntry methodsFor:'duplicate detection'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
sameAs:anotherEntry
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    ^ anotherEntry sameAsCompilerWarningToDoListEntry:self
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    "Created: / 21-10-2006 / 21:38:15 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
sameAsCompilerWarningToDoListEntry:anotherEntry
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    anotherEntry problemClassName = className ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    anotherEntry problemSelector = selector ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
    anotherEntry equalityParameter = equalityParameter ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    ^ true
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    "Created: / 21-10-2006 / 21:41:57 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    "Modified: / 22-10-2006 / 01:40:03 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
!CompilerWarningToDoListEntry methodsFor:'misc'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
browse
7511
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   118
    |brwsr|
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   119
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   120
    brwsr := UserPreferences browserClass 
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   121
        openInClass:(self problemClass) selector:selector.
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   122
    brwsr codeView cursorToCharacterPosition:position.
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   123
"/    brwsr codeView selectLine:(brwsr codeView cursorLine).
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
    "Created: / 22-10-2006 / 01:38:11 / cg"
7511
02f65c9a5d2e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7446
diff changeset
   126
    "Modified: / 11-11-2006 / 14:49:35 / cg"
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
!CompilerWarningToDoListEntry methodsFor:'validation'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
checkIfClassIsStillValid
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
    className notNil ifTrue:[
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
        (Smalltalk classNamed:className) isNil ifTrue:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    ].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
    ^ true
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
    "Created: / 21-10-2006 / 21:58:26 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    "Modified: / 22-10-2006 / 01:41:53 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
checkIfSelectorIsStillValid
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    selector notNil ifTrue:[
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
        (self problemClass compiledMethodAt:selector) isNil ifTrue:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    ].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    ^ true
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    "Created: / 21-10-2006 / 21:58:44 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
    "Modified: / 22-10-2006 / 01:40:40 / cg"
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
checkIfStillValid
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
    self checkIfClassIsStillValid ifFalse:[^ false].
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    self checkIfSelectorIsStillValid ifFalse:[^ false].
7529
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
   154
    checkAction isNil ifTrue:[
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
   155
        self halt.
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
   156
    ].
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    ^ (checkAction value:self)
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    "Created: / 21-10-2006 / 21:31:27 / cg"
7529
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
   161
    "Modified: / 20-11-2006 / 15:34:29 / cg"
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
! !
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
!CompilerWarningToDoListEntry class methodsFor:'documentation'!
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
version
7529
ad533058030a *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7511
diff changeset
   167
    ^ '$Header: /cvs/stx/stx/libtool/Tools__CompilerWarningToDoListEntry.st,v 1.3 2006-11-20 21:32:32 cg Exp $'
7446
008ffff0126e initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
! !