This is the mail archive of the
kawa@sourceware.org
mailing list for the Kawa project.
Re: Android REPL - add* syntax-sugar not available in constructor
I'm not sure if the call stack for this REPL is helpful or not. It appears
that the expression still evaluates to a ClassType.
(define x (kawa.android.SomeWidget some-listener: (lambda (x) (display x)))
SchemeCompilation(Compilation).mustCompileHere() line: 2386
ChainLambdas.visitScopeExp(ScopeExp, ScopeExp) line: 24
ChainLambdas.visitClassExp(ClassExp, ScopeExp) line: 70
ChainLambdas.visitClassExp(ClassExp, Object) line: 9
ChainLambdas(ExpVisitor).visitObjectExp(ObjectExp, Object) line: 104
ObjectExp.visit(ExpVisitor, Object) line: 15
ChainLambdas(ExpVisitor).visit(Expression, Object) line: 53
ChainLambdas(ExpVisitor).visitAndUpdate(Expression, Object) line: 143 <--
compiledType=ClassType
ChainLambdas(ExpVisitor).visitExps(Expression[], int, Object) line: 157
ApplyExp.visitChildren(ExpVisitor, Object) line: 444
ChainLambdas(ExpVisitor).visitExpression(Expression, Object) line: 29
ChainLambdas(ExpVisitor).visitApplyExp(ApplyExp, Object) line: 67
ApplyExp.visit(ExpVisitor, Object) line: 432
ChainLambdas(ExpVisitor).visit(Expression, Object) line: 57
ChainLambdas(ExpVisitor).visitAndUpdate(Expression, Object) line: 143
ChainLambdas(ExpVisitor).visitExps(Expression[], int, Object) line: 157
BeginExp.visitChildren(ExpVisitor, Object) line: 166
ChainLambdas(ExpVisitor).visitExpression(Expression, Object) line: 29
ChainLambdas(ExpVisitor).visitBeginExp(BeginExp, Object) line: 115
BeginExp.visit(ExpVisitor, Object) line: 156
ChainLambdas(ExpVisitor).visit(Expression, Object) line: 57
ChainLambdas(ExpVisitor).visitAndUpdate(Expression, Object) line: 143
LetExp.visitChildren(ExpVisitor, Object) line: 221
ChainLambdas.visitScopeExp(ScopeExp, ScopeExp) line: 21
ChainLambdas.visitScopeExp(ScopeExp, Object) line: 9
ChainLambdas(ExpVisitor).visitLetExp(LetExp, Object) line: 101
LetExp.visit(ExpVisitor, Object) line: 206
ChainLambdas(ExpVisitor).visit(Expression, Object) line: 53
ChainLambdas(ExpVisitor).visitAndUpdate(Expression, Object) line: 143
ChainLambdas(ExpVisitor).visitSetExp(SetExp, Object) line: 109
SetExp.visit(ExpVisitor, Object) line: 433
ChainLambdas(ExpVisitor).visit(Expression, Object) line: 53
ModuleExp(LambdaExp).visitChildrenOnly(ExpVisitor, Object) line: 1694
ChainLambdas.visitLambdaExp(LambdaExp, ScopeExp) line: 39
ChainLambdas.visitLambdaExp(LambdaExp, Object) line: 9
ChainLambdas(ExpVisitor).visitModuleExp(ModuleExp, Object) line: 105
ModuleExp.visit(ExpVisitor, Object) line: 462
ChainLambdas(ExpVisitor).visit(Expression, Object) line: 53
ChainLambdas.chainLambdas(Expression, Compilation) line: 15
SchemeCompilation(Compilation).walkModule(ModuleExp) line: 927
SchemeCompilation(Compilation).process(int) line: 1900
ModuleInfo.loadByStages(int) line: 305
ModuleExp.evalModule1(Environment, Compilation, URL, OutPort) line: 223
ModuleExp.evalModule(Environment, CallContext, Compilation, URL, OutPort)
line: 195
Shell.run(Language, Environment, InPort, Consumer, OutPort, URL,
SourceMessages) line: 279
Shell.run(Language, Environment, InPort, OutPort, OutPort, SourceMessages)
line: 194
Shell.run(Language, Environment) line: 175
TelnetRepl.apply0() line: 23
RunnableClosure.run() line: 78
Future.run() line: 44
I traced it further, putting a breakpoint on your latest change on
InlineCalls, and I suspect it has something to do with
InlineCalls.visit(Expression, Type) has set the required type as a
ClassType.
InlineCalls.visit(Expression, Type) line: 54
CompileInvoke.validateApplyInvoke(ApplyExp, InlineCalls, Type, Procedure)
line: 297
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean)
line: not available [native method]
Method.invoke(Object, Object...) line: 511
InlineCalls.maybeInline(ApplyExp, Type, Procedure) line: 730
but things started getting a little too hairy. Any suggestions where to
look?
--
View this message in context: http://old.nabble.com/Android-REPL---add*-syntax-sugar-not-available-in-constructor-tp33222365p33243252.html
Sent from the Sourceware - kawa list mailing list archive at Nabble.com.