wrap-java: Circular references with javaparser-core-3.28.0.jar
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
调研方向
使用 javaparser-core-3.28.0.jar 重现 wrap-java,并检查生成的 Swift Node wrapper 以及报告的循环引用诊断信息。跟踪 wrapper generator 如何处理这些引用;当此输入生成时不再出现循环引用错误,即表示完成。
由索引模型根据 Issue 内容生成。
描述
Here's one of the cycles being complained about:
// Auto-generated by Java-to-Swift wrapper generator.
import CSwiftJavaJNI
import SwiftJava
@JavaClass("com.github.javaparser.ast.Node", implements: HasParentNode<Node>.self, Visitable.self, NodeWithRange<Node>.self, NodeWithTokenRange<Node>.self)
open class Node: JavaObject {
/**
* Java method `getMetaModel`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.metamodel.NodeMetaModel com.github.javaparser.ast.Node.getMetaModel()
* ```
*/
@JavaMethod
open func getMetaModel() -> NodeMetaModel!
/**
* Java method `setParentNode`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setParentNode(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
open func setParentNode(_ newParentNode: Node?) -> Node!
/**
* Java method `getPrinter`.
*
* ### Java method signature
* ```java
* protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.getPrinter()
* ```
*/
@JavaMethod
open func getPrinter() -> Printer!
/**
* Java method `getPrinter`.
*
* ### Java method signature
* ```java
* protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.getPrinter(com.github.javaparser.printer.configuration.PrinterConfiguration)
* ```
*/
@JavaMethod
open func getPrinter(_ configuration: PrinterConfiguration?) -> Printer!
/**
* Java method `setTokenRange`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setTokenRange(com.github.javaparser.TokenRange)
* ```
*/
@JavaMethod
open func setTokenRange(_ tokenRange: TokenRange?) -> Node!
/**
* Java method `setRange`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setRange(com.github.javaparser.Range)
* ```
*/
@JavaMethod
open func setRange(_ range: Range?) -> Node!
/**
* Java method `setLineComment`.
*
* ### Java method signature
* ```java
* public final com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setLineComment(java.lang.String)
* ```
*/
@JavaMethod
open func setLineComment(_ comment: String) -> Node!
/**
* Java method `setData`.
*
* ### Java method signature
* ```java
* public <M> void com.github.javaparser.ast.Node.setData(com.github.javaparser.ast.DataKey<M>,M)
* ```
*/
@JavaMethod
open func setData<M: AnyJavaObject>(_ key: DataKey<M>?, _ object: M?)
/**
* Java method `containsData`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.containsData(com.github.javaparser.ast.DataKey<?>)
* ```
*/
@JavaMethod
open func containsData(_ key: DataKey<JavaObject>?) -> Bool
/**
* Java method `removeData`.
*
* ### Java method signature
* ```java
* public void com.github.javaparser.ast.Node.removeData(com.github.javaparser.ast.DataKey<?>)
* ```
*/
@JavaMethod
open func removeData(_ key: DataKey<JavaObject>?)
/**
* Java method `removeForced`.
*
* ### Java method signature
* ```java
* public void com.github.javaparser.ast.Node.removeForced()
* ```
*/
@JavaMethod
open func removeForced()
/**
* Java method `removeComment`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.removeComment()
* ```
*/
@JavaMethod
open func removeComment() -> Node!
/**
* Java method `findRootNode`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.findRootNode()
* ```
*/
@JavaMethod
open func findRootNode() -> Node!
/**
* Java method `isAncestorOf`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.isAncestorOf(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
open func isAncestorOf(_ descendant: Node?) -> Bool
/**
* Java method `hasScope`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.hasScope()
* ```
*/
@JavaMethod
open func hasScope() -> Bool
/**
* Java method `isPhantom`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.isPhantom()
* ```
*/
@JavaMethod
open func isPhantom() -> Bool
/**
* Java method `registerForSubtree`.
*
* ### Java method signature
* ```java
* public void com.github.javaparser.ast.Node.registerForSubtree(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
open func registerForSubtree(_ observer: AstObserver?)
/**
* Java method `customInitialization`.
*
* ### Java method signature
* ```java
* protected void com.github.javaparser.ast.Node.customInitialization()
* ```
*/
@JavaMethod
open func customInitialization()
/**
* Java method `setAsParentNodeOf`.
*
* ### Java method signature
* ```java
* protected void com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.NodeList<? extends com.github.javaparser.ast.Node>)
* ```
*/
@JavaMethod
open func setAsParentNodeOf(_ list: NodeList<Node>?)
/**
* Java method `setAsParentNodeOf`.
*
* ### Java method signature
* ```java
* protected void com.github.javaparser.ast.Node.setAsParentNodeOf(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
open func setAsParentNodeOf(_ childNode: Node?)
/**
* Java method `createDefaultPrinter`.
*
* ### Java method signature
* ```java
* protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.createDefaultPrinter(com.github.javaparser.printer.configuration.PrinterConfiguration)
* ```
*/
@JavaMethod
open func createDefaultPrinter(_ configuration: PrinterConfiguration?) -> Printer!
/**
* Java method `createDefaultPrinter`.
*
* ### Java method signature
* ```java
* protected com.github.javaparser.printer.Printer com.github.javaparser.ast.Node.createDefaultPrinter()
* ```
*/
@JavaMethod
open func createDefaultPrinter() -> Printer!
/**
* Java method `setBlockComment`.
*
* ### Java method signature
* ```java
* public final com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setBlockComment(java.lang.String)
* ```
*/
@JavaMethod
open func setBlockComment(_ comment: String) -> Node!
/**
* Java method `addOrphanComment`.
*
* ### Java method signature
* ```java
* public void com.github.javaparser.ast.Node.addOrphanComment(com.github.javaparser.ast.comments.Comment)
* ```
*/
@JavaMethod
open func addOrphanComment(_ comment: Comment?)
/**
* Java method `removeOrphanComment`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.removeOrphanComment(com.github.javaparser.ast.comments.Comment)
* ```
*/
@JavaMethod
open func removeOrphanComment(_ comment: Comment?) -> Bool
/**
* Java method `getSymbolResolver`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.resolution.SymbolResolver com.github.javaparser.ast.Node.getSymbolResolver()
* ```
*/
@JavaMethod
open func getSymbolResolver() -> SymbolResolver!
/**
* Java method `getParentNodeForChildren`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.getParentNodeForChildren()
* ```
*/
@JavaMethod
open func getParentNodeForChildren() -> Node!
/**
* Java method `getDefaultPrinterConfiguration`.
*
* ### Java method signature
* ```java
* protected com.github.javaparser.printer.configuration.PrinterConfiguration com.github.javaparser.ast.Node.getDefaultPrinterConfiguration()
* ```
*/
@JavaMethod
open func getDefaultPrinterConfiguration() -> PrinterConfiguration!
/**
* Java method `remove`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.remove()
* ```
*/
@JavaMethod
open func remove() -> Bool
/**
* Java method `remove`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.remove(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
open func remove(_ node: Node?) -> Bool
/**
* Java method `equals`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.equals(java.lang.Object)
* ```
*/
@JavaMethod
open override func equals(_ obj: JavaObject?) -> Bool
/**
* Java method `toString`.
*
* ### Java method signature
* ```java
* public final java.lang.String com.github.javaparser.ast.Node.toString()
* ```
*/
@JavaMethod
open override func toString() -> String
/**
* Java method `toString`.
*
* ### Java method signature
* ```java
* public final java.lang.String com.github.javaparser.ast.Node.toString(com.github.javaparser.printer.configuration.PrinterConfiguration)
* ```
*/
@JavaMethod
open func toString(_ configuration: PrinterConfiguration?) -> String
/**
* Java method `hashCode`.
*
* ### Java method signature
* ```java
* public final int com.github.javaparser.ast.Node.hashCode()
* ```
*/
@JavaMethod
open override func hashCode() -> Int32
/**
* Java method `clone`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.clone()
* ```
*/
@JavaMethod
open override func clone() -> Node!
/**
* Java method `replace`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.replace(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
open func replace(_ node: Node?) -> Bool
/**
* Java method `replace`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.replace(com.github.javaparser.ast.Node,com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
open func replace(_ node: Node?, _ replacementNode: Node?) -> Bool
/**
* Java method `isRegistered`.
*
* ### Java method signature
* ```java
* public boolean com.github.javaparser.ast.Node.isRegistered(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
open func isRegistered(_ observer: AstObserver?) -> Bool
/**
* Java method `register`.
*
* ### Java method signature
* ```java
* public void com.github.javaparser.ast.Node.register(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
open func register(_ observer: AstObserver?)
/**
* Java method `unregister`.
*
* ### Java method signature
* ```java
* public void com.github.javaparser.ast.Node.unregister(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
open func unregister(_ observer: AstObserver?)
/**
* Java method `setComment`.
*
* ### Java method signature
* ```java
* public com.github.javaparser.ast.Node com.github.javaparser.ast.Node.setComment(com.github.javaparser.ast.comments.Comment)
* ```
*/
@JavaMethod
open func setComment(_ comment: Comment?) -> Node!
/**
* Java method `getData`.
*
* ### Java method signature
* ```java
* public <M> M com.github.javaparser.ast.Node.getData(com.github.javaparser.ast.DataKey<M>)
* ```
*/
@JavaMethod(typeErasedResult: "M!")
open func getData<M: AnyJavaObject>(_ key: DataKey<M>?) -> M!
}
extension JavaClass<Node> {
@JavaStaticField(isFinal: true)
public var ABSOLUTE_BEGIN_LINE: Int32
@JavaStaticField(isFinal: true)
public var ABSOLUTE_END_LINE: Int32
@JavaStaticField(isFinal: true)
public var SYMBOL_RESOLVER_KEY: DataKey<SymbolResolver>!
@JavaStaticField(isFinal: true)
public var PRINTER_KEY: DataKey<Printer>!
}
// Auto-generated by Java-to-Swift wrapper generator.
import CSwiftJavaJNI
import SwiftJava
@JavaInterface("com.github.javaparser.HasParentNode", extends: Observable.self)
public struct HasParentNode<T: AnyJavaObject> {
/**
* Java method `setParentNode`.
*
* ### Java method signature
* ```java
* public abstract T com.github.javaparser.HasParentNode.setParentNode(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod(typeErasedResult: "T!")
public func setParentNode(_ parentNode: Node?) -> T!
/**
* Java method `hasParentNode`.
*
* ### Java method signature
* ```java
* public default boolean com.github.javaparser.HasParentNode.hasParentNode()
* ```
*/
@JavaMethod
public func hasParentNode() -> Bool
/**
* Java method `isDescendantOf`.
*
* ### Java method signature
* ```java
* public default boolean com.github.javaparser.HasParentNode.isDescendantOf(com.github.javaparser.ast.Node)
* ```
*/
@JavaMethod
public func isDescendantOf(_ ancestor: Node?) -> Bool
/**
* Java method `getParentNodeForChildren`.
*
* ### Java method signature
* ```java
* public abstract com.github.javaparser.ast.Node com.github.javaparser.HasParentNode.getParentNodeForChildren()
* ```
*/
@JavaMethod
public func getParentNodeForChildren() -> Node!
/**
* Java method `isRegistered`.
*
* ### Java method signature
* ```java
* public abstract boolean com.github.javaparser.ast.observer.Observable.isRegistered(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
public func isRegistered(_ observer: AstObserver?) -> Bool
/**
* Java method `register`.
*
* ### Java method signature
* ```java
* public abstract void com.github.javaparser.ast.observer.Observable.register(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
public func register(_ observer: AstObserver?)
/**
* Java method `unregister`.
*
* ### Java method signature
* ```java
* public abstract void com.github.javaparser.ast.observer.Observable.unregister(com.github.javaparser.ast.observer.AstObserver)
* ```
*/
@JavaMethod
public func unregister(_ observer: AstObserver?)
}
- 主要语言
- Swift
- 星标
- 1.3k
- 派生
- 127
- 平均合并
- 2 天 14 小时
- 30 天内合并 PR
- 5
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
swiftlang/swift-java 的其他 Issue
-
wrap-java: Optional convenience methods can fail to compile when a parameter shadows the method name未关闭
难度 2/5 1-3 小时 新手友好度 70/100
swiftlang/swift-java#945 ·
维护者通常 1 天内回复
-
android
难度 2/5 1-3 小时 新手友好度 75/100
swiftlang/swift-java#663 · 4 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 56/100
swiftlang/swift-java#949 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 35/100
swiftlang/swift-java#948 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 54/100
swiftlang/swift-java#947 ·
维护者通常 1 天内回复
查看 swiftlang/swift-java 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
apple/container#2474 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
AttilaTheFun/visor#244 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 66/100
abue-ammar/tinycast#1819 · 1 条评论 ·
维护者通常 1 天内回复
-
Trace URLSession tracking drops SDK `baggage` values when the request already has a `baggage` header未关闭
难度 2/5 1-3 小时 新手友好度 78/100
DataDog/dd-sdk-ios#3408 ·
维护者通常 2 天内回复
-
[Bug]: cua-driver skill fails Agent Skills frontmatter validation可能已有人在做 @Mearman 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复