--- a/tools/JavaSourceDocument.st Mon Sep 09 01:27:53 2013 +0100
+++ b/tools/JavaSourceDocument.st Mon Sep 09 10:33:09 2013 +0100
@@ -176,88 +176,90 @@
keysAndValuesDo: [:selector :method |
| descriptor methodName methodNodes methodNode source |
- descriptor := method descriptor.
- methodName := descriptor name.
- methodName = '<init>' ifTrue: [
- methodName := typeName.
- ].
- methodNodes := typeNode methods
- select: [:each |
- each selector = methodName
- and: [ each arguments size == descriptor parameters size ]
- ].
- methodNodes notEmptyOrNil ifTrue: [
- methodNodes size == 1 ifTrue: [
- methodNode := methodNodes anElement.
- ] ifFalse: [
- method hasLineNumberInformation ifTrue: [
- | line0 offset0 |
+ method isJavaMethod ifTrue:[
+ descriptor := method descriptor.
+ methodName := descriptor name.
+ methodName = '<init>' ifTrue: [
+ methodName := typeName.
+ ].
+ methodNodes := typeNode methods
+ select: [:each |
+ each selector = methodName
+ and: [ each arguments size == descriptor parameters size ]
+ ].
+ methodNodes notEmptyOrNil ifTrue: [
+ methodNodes size == 1 ifTrue: [
+ methodNode := methodNodes anElement.
+ ] ifFalse: [
+ method hasLineNumberInformation ifTrue: [
+ | line0 offset0 |
- line0 := method lineNumberForPC: 1.
- offset0 := self sourceLineToOffset: line0.
- methodNodes := typeNode methods
- select: [:each |
- offset0 between: each declarationSourceStart
- and: each declarationSourceEnd + 1
- ].
- methodNodes size == 1 ifTrue: [
- methodNode := methodNodes anElement.
- ]
- ].
- methodNode isNil ifTrue: [
- |
- "/ OK, search by parameter types...
- i |
+ line0 := method lineNumberForPC: 1.
+ offset0 := self sourceLineToOffset: line0.
+ methodNodes := typeNode methods
+ select: [:each |
+ offset0 between: each declarationSourceStart
+ and: each declarationSourceEnd + 1
+ ].
+ methodNodes size == 1 ifTrue: [
+ methodNode := methodNodes anElement.
+ ]
+ ].
+ methodNode isNil ifTrue: [
+ |
+ "/ OK, search by parameter types...
+ i |
- i := 1.
- [
- (methodNodes size > 1) and: [ i <= descriptor parameters size ]
- ] whileTrue: [
- | descr descrArgTypeName descrArgDimensions |
+ i := 1.
+ [
+ (methodNodes size > 1) and: [ i <= descriptor parameters size ]
+ ] whileTrue: [
+ | descr descrArgTypeName descrArgDimensions |
- descr := descriptor parameters at: i.
- descrArgTypeName := descr javaClassName.
- descrArgDimensions := descr dimensions.
- descrArgTypeName first == $[ ifTrue: [
- descrArgTypeName := (JavaDescriptor baseTypes at: descrArgTypeName second)
- javaName.
- descrArgDimensions := descrArgDimensions + 1.
+ descr := descriptor parameters at: i.
+ descrArgTypeName := descr javaClassName.
+ descrArgDimensions := descr dimensions.
+ descrArgTypeName first == $[ ifTrue: [
+ descrArgTypeName := (JavaDescriptor baseTypes at: descrArgTypeName second)
+ javaName.
+ descrArgDimensions := descrArgDimensions + 1.
+ ].
+ methodNodes := methodNodes
+ select: [:each |
+ | nodeArgType nodeArgDimensions |
+
+ nodeArgType := (each arguments at: i) type getTypeName asStringWith: $/.
+ nodeArgDimensions := (each arguments at: i) type dimensions.
+ descrArgDimensions == nodeArgDimensions
+ and: [ descrArgTypeName includesSubString: nodeArgType ]
+ ].
+ i := i + 1.
].
- methodNodes := methodNodes
- select: [:each |
- | nodeArgType nodeArgDimensions |
-
- nodeArgType := (each arguments at: i) type getTypeName asStringWith: $/.
- nodeArgDimensions := (each arguments at: i) type dimensions.
- descrArgDimensions == nodeArgDimensions
- and: [ descrArgTypeName includesSubString: nodeArgType ]
- ].
- i := i + 1.
+ methodNodes isEmpty ifTrue: [
+ self error: 'No matching method node!!'.
+ ].
+ methodNodes size > 1 ifTrue: [
+ self error: 'Cannot determine method!!'.
+ ].
+ methodNode := methodNodes anElement.
].
- methodNodes isEmpty ifTrue: [
- self error: 'No matching method node!!'.
- ].
- methodNodes size > 1 ifTrue: [
- self error: 'Cannot determine method!!'.
- ].
- methodNode := methodNodes anElement.
].
+ methodNode notNil ifTrue: [
+ source := JavaSourceRef new.
+ source offset: methodNode declarationSourceStart.
+ source
+ length: methodNode declarationSourceEnd - methodNode declarationSourceStart
+ + 1.
+ method setSource: source.
+ ] ifFalse: [
+ self error: 'Cannot determine method!!'.
+ ]
].
- methodNode notNil ifTrue: [
- source := JavaSourceRef new.
- source offset: methodNode declarationSourceStart.
- source
- length: methodNode declarationSourceEnd - methodNode declarationSourceStart
- + 1.
- method setSource: source.
- ] ifFalse: [
- self error: 'Cannot determine method!!'.
- ]
].
]
"Created: / 07-09-2013 / 01:43:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 09-09-2013 / 00:55:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 09-09-2013 / 10:28:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
initializeSourceTree