JS Fix marker interface filtering
This commit is contained in:
committed by
Sergey Mashkov
parent
2e687fde6b
commit
a6bed4f623
@@ -552,27 +552,3 @@ native public open class WebGLContextEventInit : EventInit() {
|
||||
var statusMessage: String
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -216,27 +216,3 @@ native public trait PseudoElement {
|
||||
native public trait CSS {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -233,27 +233,3 @@ native public open class MutationEvent : Event(noImpl, noImpl) {
|
||||
}
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -4854,12 +4854,6 @@ native public marker trait UnionElementOrMouseEvent {
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait RenderingContext {
|
||||
}
|
||||
|
||||
|
||||
@@ -25,27 +25,3 @@ native public open class XMLSerializer {
|
||||
fun serializeToString(root: Node): String = noImpl
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -111,27 +111,3 @@ native public open class ResponseInit {
|
||||
var headers: dynamic
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -106,27 +106,3 @@ native public open class FileReaderSync {
|
||||
native public trait URL {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -98,27 +98,3 @@ native public open class NotificationEventInit : ExtendableEventInit() {
|
||||
var notification: Notification
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -264,24 +264,6 @@ native public trait CacheStorage {
|
||||
native public open class FunctionalEvent : ExtendableEvent(noImpl, noImpl) {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -128,27 +128,3 @@ native public open class ProgressEventInit : EventInit() {
|
||||
var total: Long = 0
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrHTMLCollection {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrRadioNodeList {
|
||||
}
|
||||
|
||||
native public marker trait UnionHTMLOptGroupElementOrHTMLOptionElement {
|
||||
}
|
||||
|
||||
native public marker trait UnionAudioTrackOrTextTrackOrVideoTrack {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrMouseEvent {
|
||||
}
|
||||
|
||||
native public marker trait UnionElementOrProcessingInstruction {
|
||||
}
|
||||
|
||||
native public marker trait UnionMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
native public marker trait UnionClientOrMessagePortOrServiceWorker {
|
||||
}
|
||||
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
grammar test;
|
||||
|
||||
testme
|
||||
: namespace? declarations EOF
|
||||
;
|
||||
|
||||
declarations
|
||||
: declaration*
|
||||
;
|
||||
|
||||
namespace
|
||||
: 'namespace' IDENTIFIER ';'
|
||||
;
|
||||
|
||||
declaration
|
||||
: 'interface' IDENTIFIER
|
||||
;
|
||||
|
||||
IDENTIFIER
|
||||
: [A-Za-z_][A-Za-z_0-9]*
|
||||
;
|
||||
|
||||
WHITESPACE_WEBIDL
|
||||
: [\t\n\r ]+ -> channel(HIDDEN)
|
||||
;
|
||||
@@ -8,7 +8,7 @@ private fun <O : Appendable> O.indent(level: Int) {
|
||||
}
|
||||
}
|
||||
|
||||
private fun Appendable.renderAttributeDeclaration(allTypes: Set<String>, arg: GenerateAttribute, override: Boolean, level: Int = 1) {
|
||||
private fun Appendable.renderAttributeDeclaration(arg: GenerateAttribute, override: Boolean, level: Int = 1) {
|
||||
indent(level)
|
||||
|
||||
if (override) {
|
||||
@@ -117,7 +117,7 @@ fun Appendable.render(allTypes: Map<String, GenerateTraitOrClass>, typeNamesToUn
|
||||
val superSignatures = superAttributes.map { it.signature } merge superFunctions.map { it.signature }
|
||||
|
||||
iface.memberAttributes.filter { it !in superAttributes }.map { it.dynamicIfUnknownType(allTypes.keySet()) }.groupBy { it.signature }.reduceValues().values().forEach { arg ->
|
||||
renderAttributeDeclaration(allTypes.keySet(), arg, arg.signature in superSignatures)
|
||||
renderAttributeDeclaration(arg, arg.signature in superSignatures)
|
||||
}
|
||||
iface.memberFunctions.filter { it !in superFunctions }.map { it.dynamicIfUnknownType(allTypes.keySet()) }.groupBy { it.signature }.reduceValues(::betterFunction).values().forEach {
|
||||
renderFunctionDeclaration(allTypes.keySet(), it, it.signature in superSignatures)
|
||||
@@ -127,7 +127,7 @@ fun Appendable.render(allTypes: Map<String, GenerateTraitOrClass>, typeNamesToUn
|
||||
indent(1)
|
||||
appendln("companion object {")
|
||||
iface.constants.forEach {
|
||||
renderAttributeDeclaration(allTypes.keySet(), it, override = false, level = 2)
|
||||
renderAttributeDeclaration(it, override = false, level = 2)
|
||||
}
|
||||
indent(1)
|
||||
appendln("}")
|
||||
@@ -172,11 +172,11 @@ fun Appendable.render(namespace: String, ifaces: List<GenerateTraitOrClass>, typ
|
||||
render(allTypes, typeNamesToUnions, it)
|
||||
}
|
||||
|
||||
anonymousUnionTypeTraits.forEach {
|
||||
anonymousUnionTypeTraits.filter { it.namespace == "" || it.namespace == namespace }.forEach {
|
||||
render(allTypes, emptyMap(), it, markerAnnotation = true)
|
||||
}
|
||||
|
||||
typedefsMarkerTraits.values().forEach {
|
||||
typedefsMarkerTraits.values().filter { it.namespace == "" || it.namespace == namespace }.forEach {
|
||||
render(allTypes, emptyMap(), it, markerAnnotation = true)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,5 +112,12 @@ private fun collectUnionTypes(allTypes: Map<String, GenerateTraitOrClass>) =
|
||||
.map { splitUnionType(it) }
|
||||
.filter { it.all { unionMember -> unionMember in allTypes } }
|
||||
.toSet()
|
||||
.map { UnionType("", it) }
|
||||
.map { UnionType(guessPackage(it, allTypes), it) }
|
||||
|
||||
private fun guessPackage(types : List<String>, allTypes: Map<String, GenerateTraitOrClass>) =
|
||||
types.map { allTypes[it] }
|
||||
.map { it?.namespace }
|
||||
.filterNotNull()
|
||||
.filter { it != "" }
|
||||
.distinct()
|
||||
.minBy { it.split('.').size() } ?: ""
|
||||
|
||||
Reference in New Issue
Block a user