[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gambas-bugtracker] Bug #2902: Dynamically creating classes using inheritance and parameters now fails


http://gambaswiki.org/bugtracker/edit?object=BUG.2902&from=L21haW4-

Brian G reported a new bug.

Summary
-------

Dynamically creating classes using inheritance and parameters now fails

Type             : Bug
Priority         : High
Gambas version   : Master
Product          : Language


Description
-----------

In the past if _new(p1 as integer, p2 as integer) was defined for a class 1

and and class 2 inherits class 1  and defines _new() then I can do

xx = new class2(1,3) no problem it respects the inherited class parameters.

I could also do the following ..  where me is a class 2 object

xx = object.class(me).new(1,2)

But recently this fails with a too many parameters error, I seems to no longer call the super._new or respect the parameters.

There seems to no longer be any way to dynamically create an instance of an inherited class.

If I try to define class 2 with the parameters, then it just tacks them to the end of the class one parameters as it should

something seems to have broken. This was working in 19.1 In believe.

Here is a sample script

----------------------------------------------------------------------------------------------------

#!/usr/bin/env gbs3
' Gambas Script File Created 06/05/2024 08:54:06

Class Adds
   Property Read sum As Integer
   iA As Integer
   iB As Integer

   Public Sub _new(a As Integer, b As Integer)
     iA = a
     iB = b
   End

   Private Function sum_read() As Integer
    Return iA + iB
   End
End Class

Class Mults
   Inherits Adds
   Property Read Mult As Integer
   iC As Integer

   Public Sub _new(c As Integer)
     iC = c
   End

   Private Function mult_read() As Integer
     Return Super.sum * ic
   End
End Class

Dim s1 As New Adds(1, 2)
Dim m1 As New Mults(1, 2, 3)
Print s1.sum, m1.mult
Print object.class(m1).name
Dim m2 As Variant = object.class(m1).new(1, 3, 4) '< fails here with too many parameters error
Print m2.mult

Quit 0
Catch
Error "Script Error >";; error.text & "\n" & error.where

------------------------------------------------------------------------------------------------------------------------

-- 
~~~~ Brian


System information
------------------

[System]
Gambas=3.19.90
OperatingSystem=Linux
Distribution=Linux Mint 21.3 (Virginia)
Kernel=6.5.0-35-generic
Architecture=x86_64
Cores=8
Memory=13918M
Language=en_US.UTF-8
Platform=x11
Desktop=MATE
DesktopResolution=96
DesktopScale=7
WidgetTheme=proxy
Font=Ubuntu,10
[Programs]
appimage-builder=appimage-builder: 1.1.0
clang=Ubuntu clang version 14.0.0-1ubuntu1.1
dpkg=Debian 'dpkg' package management program version 1.21.1 (amd64).
gcc=gcc (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
git=git version 2.34.1
msgmerge=msgmerge (GNU gettext-tools) 0.21
rpmbuild=RPM version 4.17.0
[Libraries]
Cairo=libcairo.so.2.11600.0
Curl=libcurl.so.4.7.0
DBus=libdbus-1.so.3.19.13
GDK2=libgdk-x11-2.0.so.0.2400.33
GDK3=libgdk-3.so.0.2404.29
GStreamer=libgstreamer-1.0.so.0.2003.0
GTK+2=libgtk-x11-2.0.so.0.2400.33
GTK+3=libgtk-3.so.0.2404.29
OpenGL=libGL.so.1.7.0
Poppler=libpoppler.so.118.0.0
Poppler=libpoppler.so.97.0.0
QT5=libQt5Core.so.5.15.3
QT6=libQt6Core.so.6.2.4
RSvg=librsvg-2.so.2.48.0
SDL=libSDL2-2.0.so.0.18.2
SQLite3=libsqlite3.so.0.8.6
[Environment]
CLUTTER_BACKEND=x11
CLUTTER_IM_MODULE=ibus
COMPIZ_CONFIG_PROFILE=mint
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
DESKTOP_SESSION=mate
DISPLAY=:0
EDIGB_GUI=gb.qt5
EDITOR=pluma
GB_GUI=gb.qt5
GDMSESSION=mate
GDM_LANG=en_US
GIO_LAUNCHED_DESKTOP_FILE_PID=896055
GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
GTK3_MODULES=xapp-gtk3-module
GTK_IM_MODULE=ibus
GTK_MODULES=gail:atk-bridge
GTK_OVERLAY_SCROLLING=0
HOME=<home>
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_ALL=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_TIME=en_US.UTF-8
LIBVIRT_DEFAULT_URI=qemu:///system
LOGNAME=<user>
MATE_DESKTOP_SESSION_ID=this-is-deprecated
PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket
PAPERSIZE=a4
PATH=<home>/.config/emacs/bin:<home>/.local/bin:<home>/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
PICO_SDK_PATH=<home>/Projects/picomite/pico/pico-sdk
PWD=<home>
QT_ACCESSIBILITY=1
QT_FONT_DPI=96
QT_IM_MODULE=ibus
QT_LOGGING_RULES=*.debug=false
QT_QPA_PLATFORMTHEME=qt5ct
QT_SCALE_FACTOR=1
SESSION_MANAGER=local/<hostname>:@/tmp/.ICE-unix/895368,unix/<hostname>:/tmp/.ICE-unix/895368
SHELL=/usr/bin/gsh
SHLVL=0
SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
TZ=:/etc/localtime
USER=<user>
XAUTHORITY=<home>/.Xauthority
XDG_CONFIG_DIRS=/etc/xdg/xdg-mate:/etc/xdg
XDG_CURRENT_DESKTOP=MATE
XDG_DATA_DIRS=/usr/share/mate:/usr/share/mate:/usr/share/gnome:<home>/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/<user>
XDG_RUNTIME_DIR=/run/user/1000
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=mate
XDG_SESSION_ID=c4
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
XDG_SESSION_TYPE=x11
XDG_VTNR=7
XMODIFIERS=@im=ibus
gshlibrary=<home>/Projects/gshlibrary
gshproject=<home>/Projects/gsh


----[ Gambas bugtracker-list is hosted by https://www.hostsharing.net ]----