Tcl Source Code

View Ticket
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.
Ticket UUID: d06b029d9d0fc9e68288f1a4f5b8635016fdb905
Title: documentation: oo::define instead of oo::objdefine in example for next
Type: Bug Version: 8.6.4
Submitter: peterlewerin Created on: 2015-07-27 14:17:17
Subsystem: 35. TclOO Package Assigned To: dkf
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2015-08-18 12:50:59
Resolution: Fixed Closed By: dkf
    Closed on: 2015-08-18 12:50:59

In the documentation for next, in the first example oo::define is called to configure the obj object: this should be oo::objdefine. Similarly in the second example, the demo object is configured using oo::define instead of oo::objdefine.

Corrected code:

oo::objdefine obj method example args {
    puts "per-object method, args = $args"
    next x {*}$args y


oo::objdefine demo {
    mixin cache
    method compute {a b c} {
        after 3000 ;# Simulate deep thought
        return [expr {$a + $b * $c}]
    method compute2 {a b c} {
        after 3000 ;# Simulate deep thought
        return [expr {$a * $b + $c}]

User Comments: dkf added on 2015-08-18 12:48:12:

Silly mistake on my part. Might date from when there was no separate oo::objdefine command and oo::define would just magically "do the right thing".