Found it! I was accidentally writing a class as the method class literal into a compiled method. This is usually an association (or ClassBinding). This explains the segfault upon super send.

The reason this only showed up in trunk is that i had a correct Environment>>associationAt:ifAbsent: but not for #bindingOf:ifAbsent:, which, in trunk, is the new message send in Class>>binding.

I'm closing this issue. Here's an MWE in case you want to do something with the segfault:

| class method |
Object subclass: #Foo
	instanceVariableNames: 'env'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Bar'.

class := Smalltalk at: #Foo.
class compile: 'printString super prinstString'.

method := (Smalltalk at: #Foo) compiledMethodAt: #printString.
method
	literalAt: method numLiterals
	put: class.
	
class new printString


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.