Bug correction for classes with private methods
svn: r1920
This commit is contained in:
parent
2577fe88f3
commit
cbb9f7bdf6
|
@ -509,7 +509,7 @@
|
||||||
(restricted-methods (make-method-names ;(append (accesses-package methods)
|
(restricted-methods (make-method-names ;(append (accesses-package methods)
|
||||||
(accesses-protected methods);)
|
(accesses-protected methods);)
|
||||||
overridden-methods))
|
overridden-methods))
|
||||||
#;(make-gen-name
|
(make-gen-name
|
||||||
(lambda (m)
|
(lambda (m)
|
||||||
(build-generic-name (class-name)
|
(build-generic-name (class-name)
|
||||||
((if (constructor? (id-string (method-name m))) build-constructor-name mangle-method-name)
|
((if (constructor? (id-string (method-name m))) build-constructor-name mangle-method-name)
|
||||||
|
@ -520,7 +520,7 @@
|
||||||
(append (accesses-public methods)
|
(append (accesses-public methods)
|
||||||
(accesses-package methods)
|
(accesses-package methods)
|
||||||
(accesses-protected methods))))
|
(accesses-protected methods))))
|
||||||
#;(private-generics (map make-gen-name (accesses-private methods)))
|
(private-generics (map make-gen-name (accesses-private methods)))
|
||||||
(names-for-dynamic (generate-dynamic-names (append (accesses-public methods)
|
(names-for-dynamic (generate-dynamic-names (append (accesses-public methods)
|
||||||
(accesses-package methods)
|
(accesses-package methods)
|
||||||
(accesses-protected methods))
|
(accesses-protected methods))
|
||||||
|
@ -660,7 +660,7 @@
|
||||||
(define private-methods
|
(define private-methods
|
||||||
,(if (null? (accesses-private methods))
|
,(if (null? (accesses-private methods))
|
||||||
'(make-hash-table)
|
'(make-hash-table)
|
||||||
(build-method-table (accesses-private methods) null #;private-generics)))
|
(build-method-table (accesses-private methods) private-generics)))
|
||||||
|
|
||||||
,@(map (lambda (i) (translate-initialize (initialize-static i)
|
,@(map (lambda (i) (translate-initialize (initialize-static i)
|
||||||
(initialize-block i)
|
(initialize-block i)
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
(prepare-for-tests "Advanced")
|
(prepare-for-tests "Advanced")
|
||||||
|
|
||||||
;;Execution tests without errors
|
;;Execution tests without errors
|
||||||
|
|
||||||
(interact-test
|
(execute-test
|
||||||
'advanced
|
"public class X {
|
||||||
'("null.m()")
|
private int x() { return 3; }
|
||||||
'(error)
|
}"
|
||||||
"Calling a method on null")
|
'advanced #f "Class with private method")
|
||||||
|
|
||||||
(execute-test
|
(execute-test
|
||||||
"public class Something {
|
"public class Something {
|
||||||
|
@ -228,6 +228,20 @@ class WeeklyPlanner{
|
||||||
|
|
||||||
;;Interaction tests, mix of right and error
|
;;Interaction tests, mix of right and error
|
||||||
|
|
||||||
|
(interact-test
|
||||||
|
"public class X {
|
||||||
|
private int x() { return 3; }
|
||||||
|
}"
|
||||||
|
'advanced '("X y = new X();" "y.x()")
|
||||||
|
'((void) error) "Creating class with private method, and trying to access the method")
|
||||||
|
|
||||||
|
|
||||||
|
(interact-test
|
||||||
|
'advanced
|
||||||
|
'("null.m()")
|
||||||
|
'(error)
|
||||||
|
"Calling a method on null")
|
||||||
|
|
||||||
(interact-test 'advanced
|
(interact-test 'advanced
|
||||||
(list "new int[3] instanceof int[] && true"
|
(list "new int[3] instanceof int[] && true"
|
||||||
"((int[]) new int[3])[1]" "3/2")
|
"((int[]) new int[3])[1]" "3/2")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user