.kotlin.kotlin-compiler.1.3.11.source-code.AstUtil Maven / Gradle / Ivy
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package org.jetbrains.kotlin.js.util;
import com.intellij.util.SmartList;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.js.backend.ast.JsBinaryOperation;
import org.jetbrains.kotlin.js.backend.ast.JsBinaryOperator;
import org.jetbrains.kotlin.js.backend.ast.JsExpression;
import org.jetbrains.kotlin.js.backend.ast.JsNode;
import java.util.ArrayList;
import java.util.List;
public final class AstUtil {
private AstUtil() {
}
@Nullable
public static T deepCopy(@Nullable T node) {
if (node == null) return null;
//noinspection unchecked
return (T) node.deepCopy();
}
@NotNull
public static List deepCopy(@Nullable List nodes) {
if (nodes == null) return new SmartList<>();
List nodesCopy = new ArrayList<>(nodes.size());
for (T node : nodes) {
nodesCopy.add(deepCopy(node));
}
return nodesCopy;
}
}